Seguimi su Youtubue
Iscriviti
Se desideri, puoi effettuare un'iscrizione gratuita al forum per entrare nella nostra community.
Ricerca Avanzata
Pubblicità Google AdSense
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
Ultimi argomenti
» DUE SKETCH INSIEME? SI PUO' FARE?
Da Alessandro2003 Ieri alle 6:51 pm

» programma arduino
Da Poderak Gio Mag 25, 2017 3:12 pm

» pilotare 5 matrix: max7219
Da Poderak Gio Mag 25, 2017 3:10 pm

» orologio con LCD.
Da fulvio Lun Mag 22, 2017 12:51 am

» rilevare/intercettare solo la chiusura di una pagina web
Da Poderak Sab Mag 20, 2017 9:36 pm

» Arduino Create
Da Poderak Dom Mag 14, 2017 6:42 pm

» Dove acquistare relè arduino
Da Ilfalco78 Gio Mag 04, 2017 7:43 am

» Comprata Scorpion King Farming Simulator 2017 - Mappa Sosnovka
Da Poderak Lun Mag 01, 2017 7:25 pm

» Live di 1 ora su Farming Simulator 2017
Da Poderak Lun Mag 01, 2017 7:23 pm

I postatori più attivi del mese
Poderak
 
brody09
 
fulvio
 
Ilfalco78
 
luigiaguilar
 
Alessandro2003
 

Errore compilazione Arduino

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso

Errore compilazione Arduino

Messaggio Da Guido Laferrari il Lun Giu 06, 2016 5:05 pm

Ciao a tutti,
sono un pensionato principiante,dopo essermi documentato con i vari esempi ,ho provato realizzare  uno sketch da solo. Si tratta di far lampeggiare uno o più led mediante un lampeggio variabile tramite un potenziometro. La compilazione mi dice che c'è un errore e non riesco a risolverlo,l'errore dice questo:


Compilatore Arduino ha scritto:C:\Users\Vista\Documents\Arduino\Lampeggio_variabile_di_4_led\Lampeggio_variabile_di_4_led.ino: In function 'void loop()':


Lampeggio_variabile_di_4_led:24: error: invalid conversion from 'int (*)()' to 'long unsigned int' [-fpermissive]


   delay(ritardo);                     // ritardo

Codice:


// Lampeggio variabile di 1 led tramite un ponteziometro  

#define led_verde 2                   // led verde collegato al pin digitale 2
#define pot       0                   // potenziometro collegato al pin analogico 0
 
 int ritardo()
 {
 int v;                               // varibile temporanea intera 
 v = analogRead(pot);                 // lettura del valore del potenziometro 
 v /= 4;                              // conversione da 0-1023 a 0-255 
 return  v;                           // restituisce il valore finale 
 }
 
void setup() {
 pinMode(led_verde,OUTPUT);           // inposta il pin 2 come output
 int ritardo = 0;                     // fissare un valore di ritardo da un potenziometro
 int v = 0;                           // variabile temporanea
 
 }
 void loop(){
 
  digitalWrite(led_verde,HIGH);       // accendo led verde
  delay(ritardo);                     // ritardo
  digitalWrite(led_verde,LOW);        // spengo led verde
  delay(ritardo);                     // ritardo
 
 } 


Non riesco a venirne a capo,qualcuno è in grado di aiutarmi?
Vi ringrazio anticipatamente.
Guido
avatar
Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Vedere il profilo dell'utente

Tornare in alto Andare in basso

Re: Errore compilazione Arduino

Messaggio Da Poderak il Lun Giu 06, 2016 9:40 pm

Ciao @Guido Laferrari, hai mai pensato di "semplificarti" la vita organizzando una struttura di codice durante la programmazione?  Smile Ho visto che il codice ed è piuttosto mischiato e questo potrebbe causarti confusione.  cyclops

Un consiglio personale è quello di utilizzare solo due funzioni e di strutturare il codice in questo modo:

Codice:
//VARIABILI E DICHIARAZIONE PIN CHE TI SERVONO NEL CODICE

void setup () {
//qui imposti i componenti ed il tuo Arduino
}

void loop() {
//qui inserisci le istruzioni
}

Tornando al tuo codice, ho risolto il problema rimuovendo la funzione "ritardo" che hai creato, inserendola direttamente nel void loop come segue:
Codice:

// Lampeggio variabile di 1 led tramite un ponteziometro  

#define led_verde 2                   // led verde collegato al pin digitale 2
#define pot       0                   // potenziometro collegato al pin analogico 0

 
void setup() {
 pinMode(led_verde,OUTPUT);           // inposta il pin 2 come output
 int ritardo = 0;                     // fissare un valore di ritardo da un potenziometro
 int v = 0;                           // variabile temporanea
 
 }
 void loop(){
  int ritardo = analogRead(pot); //raccolgo valori dal potenziometro
  ritardo = map(ritardo, 0, 1023, 0, 255); //la funzione map fa la proporzione, facendo la conversione da 0-1023 a 0-255
  digitalWrite(led_verde,HIGH);       // accendo led verde
  delay(ritardo);                     // ritardo
  digitalWrite(led_verde,LOW);        // spengo led verde
  delay(ritardo);                     // ritardo
 
 }

Per la conversione da 0-1023 a 0-255 ho usato una metodo molto interessante già presente all'interno della programmazione di Arduino, ovvero il map. Non preoccuparti, è molto semplice da comprendere e se ti interessa, qui trovi una spiegazione dettagliata su come funziona.

Comunque ho voluto fare di più! Very Happy Ti ho anche sistemato il codice per renderlo più leggibile, seguendo le istruzioni che ti ho indicato all'inizio:
Codice:
// Lampeggio variabile di 1 led tramite un ponteziometro  

int led_verde = 2;                  // led verde collegato al pin digitale 2
int pot = A0;                 // potenziometro collegato al pin analogico 0
int ritardo = 0;                     // fissare un valore di ritardo da un potenziometro
 
void setup() {
 pinMode(led_verde,OUTPUT);           // imposta il pin 2 come output
 }
 
 void loop(){
  ritardo = analogRead(pot); //raccolgo valori dal potenziometro
  ritardo = map(ritardo, 0, 1023, 0, 255); //la funzione map fa la proporzione, facendo la conversione da 0-1023 a 0-255
  digitalWrite(led_verde,HIGH);       // accendo led verde
  delay(ritardo);                     // ritardo
  digitalWrite(led_verde,LOW);        // spengo led verde
  delay(ritardo);                     // ritardo
 
 }


Spero di esserti stato di aiuto! Fammi sapere Ciao!
avatar
Poderak
♔ Amministratore

Messaggi Messaggi : 4184
Crediti Crediti : 11706
Reputazione Reputazione : 186
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

Vedere il profilo dell'utente http://www.wikiinfo.net

Tornare in alto Andare in basso

Re: Errore compilazione Arduino

Messaggio Da Guido Laferrari il Mar Giu 07, 2016 9:20 am

Ciao Admin,è la risposta che aspettavo,sei stato molto chiaro. è da poco che sto studiando Arduino e ho le idee molto confuse mi hai aiutato moltissimo, grazie grazie ancora.
Alla prossima
Guido
avatar
Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Vedere il profilo dell'utente

Tornare in alto Andare in basso

Re: Errore compilazione Arduino

Messaggio Da Poderak il Mar Giu 07, 2016 1:45 pm

E' stato un piacere. cheers

Benvenuto nel forum! Ciao!
avatar
Poderak
♔ Amministratore

Messaggi Messaggi : 4184
Crediti Crediti : 11706
Reputazione Reputazione : 186
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

Vedere il profilo dell'utente http://www.wikiinfo.net

Tornare in alto Andare in basso

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto


 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum