
LEZIONE n° 4 – URTI / LUCI
La lezione è sui sensori e sugli attuatori e sulla loro gestione. Si useranno i sensori (LED) in modo evoluto rispetto alla lezione precedente e si leggerà e gestirà la luce acquisita.
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 5:
// urti con led
int urtoSX=6;
int urtoDX=5;
int led_urtoSX=9;
int led_urtoDX=8;
int led_urtoCX=2;
int tempo_led;
int val_urtoSX;
int val_urtoDX;
void setup()
{
Serial.begin(9600);
pinMode (urtoSX,INPUT);
pinMode (urtoDX,INPUT);
pinMode (led_urtoSX,OUTPUT);
pinMode (led_urtoDX,OUTPUT);
pinMode (led_urtoCX,OUTPUT);
digitalWrite(led_urtoSX,LOW); // SPEGNI LED
digitalWrite(led_urtoDX,LOW); // SPEGNI LED
digitalWrite(led_urtoCX,LOW); // SPEGNI LED
delay(500);
}
void loop()
{
val_urtoSX=digitalRead(urtoSX);
val_urtoDX=digitalRead(urtoDX);
tempo_led=250;
if ((val_urtoSX==HIGH)&&(val_urtoDX==HIGH))
{
digitalWrite(led_urtoCX,HIGH); // ACCENDI LED
Serial.println(“Urto centro”);
delay(tempo_led);
digitalWrite(led_urtoCX,LOW); // SPEGNI LED
}
if ((val_urtoSX==HIGH)&&(val_urtoDX==LOW))
{
digitalWrite(led_urtoSX,HIGH); // ACCENDI LED
Serial.println(“Urto sinistro”);
delay(tempo_led);
digitalWrite(led_urtoSX,LOW); // SPEGNI LED
}
if ((val_urtoSX==LOW)&&(val_urtoDX==HIGH))
{
digitalWrite(led_urtoDX,HIGH); // ACCENDI LED
Serial.println(“Urto destro”);
delay(tempo_led);
digitalWrite(led_urtoDX,LOW); // SPEGNI LED
}
}
Modifiche proposte:
-
- CAMBIARE COLORE AI LED
- FARLI LAMPEGGIARE PER 3 VOLTE
listato programma esempio numero 6:
/*
lettura sensore di luce
*/
int sensorPin = A5;
int sensorValue = 0; // variable to store the value coming from the sensor
int soglia = 500; //soglia
int TEMPO = 500; //soglia
void setup()
{
Serial.begin(9600);
}
void loop()
{
// read the state of the pushbutton value:
sensorValue = analogRead(sensorPin);
// print the results to the serial monitor:
Serial.print(” sensor = ” );
Serial.print(sensorValue);
Serial.print(“\n “);
// Serial.println(outputValue);
delay(10);
delay(TEMPO);
}
Modifiche proposte:
- TROVARE LA SOGLIA A 20 cm
-
SCRIVERE sul MONITOR quando viene TROVATA la LUCE
listato programma esempio numero 7:
/*
leggere la luce e segnalare quando supera la soglia
*/
int soglia_luce = 300;
int luce;
int LedPin=2; // the number of the LED pin
int tempo_attesa=750;
void setup()
{
Serial.begin(9600);
// initialize the pin:
pinMode(LedPin, OUTPUT);
digitalWrite(LedPin,LOW);
}
void loop()
{
luce = analogRead(A5); // 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 “);
delay(tempo_attesa);
digitalWrite(LedPin,LOW);
}
}
Modifiche proposte:
-
accendere il LED VERDE se la luce è SOTTO la soglia, se la luce è SOPRA accendere il LED ROSSO
-
Accendere il LED secondo la luce letta
di seguito le slide della lezione
(54)