Archivi tag: segui linea

Esercizio Arduino in 5 minuti – usare un Sensor Tracking

Continuo la recensione del kit sensori di cui avevo parlato qualche giorno fa con questo breve post che nasce dall’esigenza di un lettore del blog che mi ha chiesto come utilizzare il sensor tracking incluso nella confezione. Il sensore si presenta come una piccola scheda elettronica i cui componenti principali sono costituiti da un led emettitore ad infrarossi ed un ricevitore.
Un’applicazione in cui io sfrutto questo sensore è ad esempio per la realizzazione di robot segui linea o ancora per realizzare un contagiri e controllare la velocità di rotazione dei miei prototipi robotico.
Potrete ad esempio di distinguere, per brevi distanza dal sensore, le differenze bianco/nero incontrate su una superficie. Su un apposito pin verrà emesso un segnale di tipo TTL che andremo a leggere con Arduino.

Il sensore è costituito da tre pin, GND, OUT (il segnale) e Vcc.
La sensibilità del sensore può essere regolata mediante un apposito trimmer.

Sensor-Tracking-03

Nell’esempio descritto, per avere percezione visiva e sonora della transizione tra bianco e nero ho utilizzato un led connesso al pin 12 ed buzzer connesso al pin 7. Utilizzerò un foglio bianco su cui ho disegnato due strisce nere.

Sensor-Tracking-01

Sensor-Tracking-02

Collegamenti:

Sensore – Arduino:

pin segnale OUT -> pin digitale 7
– negativo -> GND
+ positivo -> 5V

Buzzer – Arduino

pin segnale S -> pin digitale 4
+ positivo -> 5V
– negativo -> GND

Lo sketch è estremamente semplice è dovrete semplicemente verificare la presenza dello stato HIGH sul pin 7 di Arduino, accendere il led se si è sulla linea nera ed emettere un suono, oppure se si è sul bianco spegnere il led e non emettere suono.

// Prof. Michele Maffucci
// 25.01.15
// Utilizzo di un Sensor Tracking e di un buzzer passivo

const int pinSensore = 7;
// pin a cui è collegato il sensore

const int pinLed = 12;
// pin a cui è collegato il led

const int pinBuzzer = 4;
// pin a cui è collegato il buzzer

const int frequenza = 440;
// frequenza emessa dal buzzer (440 Hz)

void setup()
{
  // inizializzazione del pin sensore, led e buzzer
  pinMode(pinSensore, INPUT);
  pinMode(pinLed, OUTPUT);
  pinMode(pinBuzzer,OUTPUT);
}

void loop()
{
  // conserviamo nella variabile var lo stato del sensore
  int val = digitalRead(pinSensore);

  // verifichiamo se viene letto "NERO"
  // se vero accendiamo il led
  if(val == HIGH)
  {
    digitalWrite(pinLed, HIGH);   // accende il led
    tone(pinBuzzer, frequenza);   // viene emesso dal buzzer un suono a frequenza fissata
    delay(5);                     // attesa di 5 millisecondi (in modo da percepire il suono emesso)   
  }
  // altrimenti spegniamo il led
  else
  {
    digitalWrite(pinLed, LOW);   // spegne il led
    noTone(pinBuzzer);           // non viene emesso nessun suono dal buzzer
  }
}