cR_17_lezione 04

by / lunedì, 21 Novembre 2016 / 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=2;

int  urtoDX=7;

int  led_urtoSX=6;

int  led_urtoDX=5;

int  led_urtoCX=8;

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 = A4;

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

AGGIUNGERE L’ACCENSIONE DEL LED

 

 

 

listato programma esempio numero 7:

/*

contatore secondo urto

*/

 

int soglia_luce = 700;

int luce;

int LedPin=6;          // 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(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  “);

 

delay(tempo_attesa);

digitalWrite(LedPin,LOW);

}

}

 

Modifiche proposte:

Accendere il LED secondo la luce letta

Accendere il led VERDE se la luce è sopra la SOGLIA altrimenti accendere quello ROSSO

 

 

 

 

di seguito le slide della lezione

 

 

(69)

Tagged under: , ,
TOP