corso 2018 L4

by / venerdì, 01 dicembre 2017 / Published in Archivio Robotica

 

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

(42)

Tagged under: , ,

Lascia un commento

TOP