le funzioni nel linguaggio c++ (che è quello usato in arduinese
) come anche in C standard
prevedono:
assegnazioneDelTipoDiParametroDiRitornoDellaFunzione nomeDellaFunzione(TipoParametro nomeParametro) {
corpoDellaFunzione
...
...
}
praticamente per esempio nella funzione setup trovi:
void setup() {
...
...
}
dove void significa che non restituisce nessun valore al termine
setup è il nome della funzione
() le parentesi non contengono nulla perchè non richiede parametri
{ graffa aperta = inizio funzione
} graffa chiusa = fine funzione
ci sono ovviamente altri comandi che prevedono apertura e chiusura delle graffe
come ad esempio
if () {
} else {
}
for(){
}
swich (){
}
ma nel tuo caso non stai usando nessuno di questi e quindi
void setup() {
myservo.attach(9); // attaches servo al pin 9
{
Serial.begin (9600);
lcd.begin(16, 2);
anche se praticamente viene ignorata dal compilatore in effetti è un errore
è meglio se le elimini anche perchè anche qui fanno confusione
ricordati comunque di levarle a coppie perchè se ne dimentichi una ti si incasina tutto ![]()
lcd.begin(parametri)
questa riga inizializza, attiva, fa funzionare (diciamo così) il tuo lcd, è come quando giri la chiave per accendere il motore, non è che lo fai ad ogni cambio marcia
quando è partito, è partito!
idem per Serial.begin() e per tutti gli altri begin() che potrai trovare
sul fatto che puoi trovare dei programmi scritti in un modo o in un altro, è normale e abbastanza personale, ogniuno scrive come vuole ![]()
ovvio che se io trovo un programma dove c'è scritto
if (digitalRead(4)) {
int x=analogRead(A0);
if (x< 100) {
digitalWrite(5,HIGH);
}
}
ti sfido a capire cosa fa (non le singole istruzioni, ma la logica)
mentre se scrivo
if (PulsanteAvvioPremuto) {
int luminosita = AnalogRead(pinFotodiodo);
if (luminosita < 100) {
digitalWrite(luceDelleScale,HIGH);
}
}
è molto più comprensibile no?
ovviamente in testa al programma avrai messo o i define:
#define PulsanteAvvioPremuto 4
#define pinFotodiodo A0
#define luceDelleScale 5
oppure
const byte PulsanteAvvioPremuto=4;
const byte pinFotodiodo=A0;
const byte luceDelleScale=5;
ma non entrambi anche se qui almeno il nome è lo stesso ![]()