dimecres, 19 de juny de 2013

Connectar un potenciòmetre a l'Arduino

A nivell pràctic, un potenciòmetre no és més que una roda que retorna un valor analògic. Un exemple fàcil d'entendre és una roda de volum de qualsevol cadena de música.

El tutorial l'he tret d'aquí: http://arduino.cc/en/Tutorial/AnalogReadSerial. Aquí s'explica com llegir un valor de l'Arduino des de la consola de l'entorn, però en el meu cas faré que la intensitat d'un led al pin 9 vingui donada pel potenciòmetre del pin A0.

La idea és que l'Arduino té una sèrie de ports anomenats Analog IN que són capaços de llegir valors analògics com els d'un potenciòmetre i convertir-los en nombres enters.

Connexió del potenciòmetre (via http://arduino.cc/en/Tutorial/AnalogReadSerial)

Bàsicament, el potenciòmetre té 3 pins. El del mig retorna el valor (per això es posa al pin A0), el de l'esquerra va al 5V i el de la dreta al GND.

Codi del programa

El codi del programa és una variació de l'original que fa una regla de tres del valor del potenciòmetre (que va de 0 a 1023) al màxim del led (que va de 0 a 255)

int led = 9; // el pin del led

void setup()  { 
  // declarem el pin 9 com de sortida
  pinMode(led, OUTPUT);
  Serial.begin(9600);

void loop()  {
  // llegim el potenciometre
  int sensorValue = analogRead(A0);
  //fem una regla de 3 (1023 - 255)
  int brightness = (sensorValue/10)*255/102;
  // set the brightness of pin 9:
  analogWrite(led, brightness);
  // esperem 30 milisegons
  delay(30);        
}

Com queda tot plegat