
LEZIONE n° 5 – URTI e LUCI
La lezione è sui sensori digitali ed analogici e la loro gestione.
Nell’esempio n° 7, come già visto, si gestiscono gli urti e si accendono i LED secondo essi. In più si introduco le VARIABILI che ci servono per contare gli urti.
Per provare a fare le modifiche proposte copiare il listato (colorato in rosso) ed incollarlo in un editor di solo testo [Notepad ad esempio]
listato programma esempio numero 7:
contare GLI URTI
*/
int urto_DX = 7;
int val_urto_SX;
int val_urto_DX;
int contatore_urti = 0; // contatore per gli urti
{
Serial.begin(9600);
pinMode(urto_DX, INPUT);
pinMode(urto_SX, INPUT);
}
{
// read the state of the pushbutton value:
val_urto_SX = digitalRead(urto_SX);
val_urto_DX = digitalRead(urto_DX);
delay(10);
if ((val_urto_SX==HIGH)&&(val_urto_DX==HIGH))
{
// print the results to the serial monitor:
Serial.print(” URTO CENTRO numero = ” );
Serial.print(contatore_urti);
Serial.print(“\n “);
delay(10);
contatore_urti=contatore_urti+1;
}
if ((val_urto_SX==HIGH)&&(val_urto_DX==LOW))
{
// print the results to the serial monitor:
Serial.print(” URTO SINISTRO numero = ” );
Serial.print(contatore_urti);
Serial.print(“\n “);
delay(250);
contatore_urti=contatore_urti+1;
}
if ((val_urto_SX==LOW)&&(val_urto_DX==HIGH))
{
// print the results to the serial monitor:
Serial.print(” URTO DESTRO numero = ” );
Serial.print(contatore_urti);
Serial.print(“\n “);
delay(250);
contatore_urti=contatore_urti+1;
}
delay(loop_speed);
}
LE MODIFICHE PROPOSTE SONO:
CONTARE SOLO GLI URTI A SINISTRA
CONTARE SEPARATAMENTE I DIVERSI TIPO DI URTI
CONTARE ED ACCENDERE UN LED SECONDO L’URTO
Nell’esempio n° 8, come già visto, si gestisce un sensore analogico e si accende un LED secondo il valore letto.
listato programma esempio numero 8:
contatore secondo urto
*/
int luce;
int LedPin=6; // the number of the LED pin
int tempo_attesa=750;
{
Serial.begin(9600);
pinMode(LedPin, OUTPUT);
digitalWrite(LedPin,LOW);
}
{
luce = analogRead(A4); // read the light
delay(10);
Serial.print(” valore luce = ” );
Serial.print(luce);
Serial.print(“\n “);
if (luce<=soglia_luce)
{
digitalWrite(LedPin,HIGH);
// print the results to the serial monitor:
Serial.print(“\n “);
Serial.print(” TROVATA LUCE ” );
Serial.print(“\n “);
digitalWrite(LedPin,LOW);
}}
LE MODIFICHE PROPOSTE SONO:
Accendere il led VERDE se la luce è sopra la SOGLIA altrimenti accendere quello ROSSO
di seguito le slide della lezione
(28)