Buongiorno a tutti.. alle mie prime prove chiedo:
ho notato dagli esempi che si usano variabili tipo int per contenere i valore HIGH oppure LOW. Ma la int non dovrebbe contenere numeri? Non si dovrebbero usare variabili tipo boolean?
Altra domanda:
esiste la possibilità durante l'esecuzione del codice di farlo "passo passo"? Cioè che in fase di debug di poter vedere i vari contenuti delle variabili del programma e di eseguire un passo alla volta?
HIGH e LOW sono solo due #defines che valgono 1 e 0, quindi, qualsiasi variabile numerica può contenerle. Quella più "economica" in termini di occupazione di memoria è la variabile di tipo "byte" che, appunto, occupa UN solo byte. Usare "int" è uno spreco inutile.
NO, Arduino IDE NON prevede alcuna possibilità di debug ... devi passare ad altri ambienti o provare a vedere cosa offrirà il nuovo IDE Pro (ma è ancora in fase di sviluppo).
Roby101:
Non si dovrebbero usare variabili tipo boolean?
Premesso che HIGH e true corrispondono a 1, e che LOW e false corrispondono a 0, per chiarezza (anche se sono quasi sempre interscambiabili) si usa HIGH/LOW quando si trattano livelli di ingresso/uscita, numeri quando si stanno maneggiando numeri, e true/false quando si sta rispondendo a una domanda (e sempre per chiarezza il nome della variabile booleana dovrebbe essere la domanda stessa... immaginiamolo seguito da un punto interrogativo).
Ad esempio per sapere se un pulsante che chiude verso GND è premuto:
le variabili dichiarate const occupano come le loro sorelle non const
le costanti simboliche dipende da come vengono usate
per intenderci
const int costante=5;
// occupa due byte (su arduino)
#define COSTANTE 63
// se usata in un
if ('A'==COSTANTE) .....;
// capace che usa un solo byte
// potrebbe anche non occupare memoria statica
int array[COSTANTE];
//potrebbe essere risolto a compile-time e non occupare memoria
// il 5 non occupa memoria, l'array sì
Roby101:
esiste la possibilità durante l'esecuzione del codice di farlo "passo passo"? Cioè che in fase di debug di poter vedere i vari contenuti delle variabili del programma e di eseguire un passo alla volta?
Ad integrazione dei consigli che già ti hanno dato, se sei in fase di apprendimento e/o test e non usi componenti particolari, puoi usare su web il sito Tinkercad Circuits nel quale, dopo che ti sarai registrato (è gratuito.), puoi "disegnare" il tuo circuito, compreso Arduino, e di quest'ultimo accedere al codice e scrivere (o incollare) lì il tuo programma: poi attivi la simulazione ed oltre a vedere il comportamento (simula non solo Arduino ma anche la parte circuitale esterna, dove puoi mettere oltre a resistenze, led, potenziometri, encoder, eccetera, anche cose come alimentatori, multimetri, eccetera...) puoi impostare dei breakpoint, eseguire passo-passo, e visualizzare il contenuto delle variabili!
Molto utile per iniziare, ed a volte anche dopo, ogni tanto lo uso anche io per verificare/testare codice senza dover necessariamente realizzare fisicamente il circuito! Come detto, ha qualche limitazione