Lezione 5

by / mercoledì, 09 Dicembre 2015 / Published in Archivio Robotica

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_SX = 2;
int urto_DX = 7;
int val_urto_SX;
int val_urto_DX;
int loop_speed = 200;          //soglia
int contatore_urti =  0;       // contatore per gli urti
void setup()
 {
   Serial.begin(9600);
   // initialize the LED pin as an output:
   pinMode(urto_DX, INPUT);     
   pinMode(urto_SX, INPUT);     
}
void loop()
{
    // 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 soglia_luce = 400;
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);
}}

LE MODIFICHE PROPOSTE SONO:

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

di seguito le slide della lezione

(27)

Tagged under: , ,
TOP