ARDUINO: DALLA TEORIA ALLA PRATICA IMPARIAMO A COLLEGARE I SENSORI PASSI - Riassunto giornata precedente - Condizioni “if” e “for” - Colleghiamo un pulsante al led - Leggiamo in analogico - Colleghiamo il sensore di temperatura - Costruiamo un termometro RIASSUNTO GIORNATA PRECEDENTE La volta scorsa abbiamo imparato: - cosa sono le variabili; - come si inseriscono le funzioni; - la struttura del programma! MICA MALE PER ESSERE LA PRIMA LEZIONE FUNZIONI IF E FOR if(variabile condizione variabile) { } esempio: if(pippo = 10) { digitalWrite(led, HIGH); } la funzione FOR è praticamente uguale alla funzione LOOP, cioè ripete sempre quello che scriviamo alle parentesi graffe fino al conseguimento di un azione. for(i ; i<10 ; i++) { } esempio: for(i;i<10;i++) { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); } COLLEGHIAMO UN PULSANTE AL LED int pulsante = 2; int led = 13 int statoPulsante = 0; void setup() { pinMode(led, OUTPUT); pinMode(pulsante, INPUT); } void loop(){ statoPulsante = digitalRead(pulsante); if (statoPulsante == HIGH) { digitalWrite(led, HIGH); } digitalWrite(led, LOW); } LEGGIAMO IN ANALOGICO Finora abbiamo utilizzato le funzioni digitalRead e digitalWrite per leggere o scrivere il valore su un pin digitale di arduino, praticamente vediamo se arrivano 5V oppure 0, e mandiamo 5V piuttosto che 0. Se invece volessimo leggere un valore analogico dovremmo innanzitutto collegare il nostro sensore su uno dei pin che iniziano con A (A0, A1, A2, ecc…) Il nostro pin analogico ci permette di inserire valori che sono compresi tra 0 e 5V come per esempio 3,7V. Per fare questo utilizziamo la funzione: analogRead() esempio: pippo= analogRead(A0); all’interno di pippo abbiamo il valore del pin A0. Se noi mettiamo 3,7V sul pin A0 però non troviamo il valore 3,7 all’interno di pippo… e cosa troviamo? Troviamo un valore compreso tra 0 e 1024. Se diamo 0 sul pin A0 troviamo 0 su pippo Se diamo 5V sul pin A0 troviamo 1024 su pippo Se diamo 3,7V sul pin A0 troviamo (1024/5)*3,7= 758 su pippo COLLEGHIAMO IL SENSORE DI TEMPERATURA float tempC; int tempPin = 0; void setup() { Serial.begin(9600); } void loop() { tempC = analogRead(tempPin); tempC = (5.0 * tempC * 100.0)/1024.0; Serial.println(tempC); Serial.print(" Celsius, "); delay(1000); } COSTRUIAMO UN TERMOMETRO Oggetti: - 3 led (1 verde, 1 giallo, 1 rosso); - 1 sensore di temperatura LM35DZ. Scopo: SE la temperatura è < 24°C si accende il led verde, SE la temperatura è compresa tra 24°C e 28°C si accende quello giallo, SE la temperatura è >28°C si accende il led rosso. SUGGERIMENTI if(temp < 24) // 24°C = 49 come valore di ingresso { } if(28 > temp > 24) { } if(temp > 28) { } // 28°C = 57 come valore di ingresso