venerdì 13 gennaio 2012

Digital input

Abbiamo visto nei precedenti post come utilizzare i pin digital I/O per generare un'uscita digitale.
Vediamo ora come utilizzare questi pin come ingresso. In particolare utilizzeremo un ingresso digitale per accendere un LED...nei prossimi post renderò l'esempio più interessante.

Cosa ci serve:

  • Board Arduino
  • 1 resistenza 1K
  • 1 resistenza 100 Ohm
  • 1 LED


Sketch

/*
 *  Ingressi digitali
*/
 
int ledPin = 12;                // Pin a cui connettere il led
int InPin = 2;              // Pin a cui connettere il pulsante
int val;                        // variabile per leggere lo stato del pulsante


void setup() {
  pinMode(ledPin, OUTPUT);      // Imposta il pin del LED come uscita
  pinMode(InPin, INPUT);    // Imposta il pin del pulsante come ingresso
}


void loop(){
  val = digitalRead(InPin);   // legge l'input e lo inserisce in una variabile
  if (val == LOW) {               // se il pulsante è premuto
    digitalWrite(ledPin, HIGH);   // accende il LED
  }
  if (val == HIGH) {              // se il pulsante è premuto
    digitalWrite(ledPin, LOW);    // spegne il LED
  }
}


Con pinMode(InPin, INPUT) abbiamo definiti il pin 2 come ingresso digitale e con val = digitalRead(InPin); possiamo leggerne lo stato e attribuirlo alla variabile val.
A questo punto connettendo il pin 2 a massa = LOW (pin GND) il pin 12 andrà in stato LOW e il LED si spegnerà mentre collegandolo a 5v = HIGH (pin 5v)  il pin 12 andrà in stato HIGH e il LED si accenderà.

ATTENZIONE!

Come nel caso del Digital output dobbiamo prestare attenzione a non bruciare il pin di I/O evitando sovratensioni (>5v) o correnti troppo alte.
Possiamo porre una resistenza da 100 ohm prima del pin di INPUT per evitare cortocircuiti. Se per errore definiamo un pin come output e lo colleghiamo a +5v ..... il corto brucerebbe l'ingresso!!!


Nessun commento:

Posta un commento