diumenge, 30 de juny del 2013

Connectar un fotoresistor a l'Arduino

Aquest sensor bàsic venía amb el pack inicial d'Arduino. El tutorial on explica com fer-lo servir és de la pàgina oficial d'Arduino. Encara que hi ha altres tutorials com aquest altre.


Un fotoresistor és un element que varia la seva resistència segons la llum que rep. A nivell bàsic pot ser entès com un element que deixa passar més corrent com més llum li arriba i, per tant, ens pot servir per la mesurar quantitat de llum.

Connexió del sensor (amb el fotoresistor a seques)

La connexió del sensor recorda a la del led, però és un xic diferent. Com que quan li toqui la llum deixarà passar la corrent lliurement, és necessari posar unaresistència de 10K entre el GND i els +5V. Tot i això, 

Connexió del fotoresistor (via Nakkaya.com)

A la imatge es pot veure que la connexió és peculiar. Una de les potes del fotoresistor va directe al GND de l'Arduino i l'altre al pin analògic que volguem (A0 per exemple), però per evitar curtcircuits, afegim una resistència de 10K que va als 5V.

Connexió del sensor (amb la versió ja montada en una placa)

Al pack de sensors (aquest) em venia algun fotoresistor ja montat en una placa. La avantatge de la placa és que ja ve amb la resistència marcada. El problema és que la placa està mal etiquetada i els pins reals són (via DxArduinoModulePack):
  • GND:
  • +5V:
  • S: sortida analògica (per exemple al pin A0)
Si voleu fer servir la versió de placa, el meu consell és que re-etiqueteu directament a la placa, sinó correu el risc d'equivocar-vos cada cop.

Les connexión de la versió amb placa

Codi d'exemple

El següent codi llegeix el valor del fotoresistor del pin analògic A0 i el treu pel port serie (per veure el valor cal prèmer Control+Shift+M o bé anar a "Herramientas -> Monitor serial").

int photoresistor = A0;//pin A0

void setup(){
    Serial.begin(9600);
}

void loop(){
    Serial.println(analogRead(photoresistor));
    //els valors van de 0 (maxima llum) o 1023 (foscor)
    delay(100);
}