10. Potentiometer¶
Med en potentiometer kan du skicka en spänning till Arduino. Du kan använda denna som till exempel en volymratt.

I den här lektionen kommer du att lära dig:
- Vad en potentiometer är
- Hur man använder en potentiometer
10.1 Anslut¶
Först ansluter vi bara en Arduino:

Jag tycker att det här borde fungera :-)
10.2 Kod: avläs potentiometer med seriell monitor¶
Vi mäter potentiometerns position med denna kod:
void setup()
{
pinMode(A0, INPUT);
Serial.begin(9600);
}
void loop()
{
Serial.println(analogRead(A0));
delay(100);
}
Detta är vad koden gör:
- Två saker händer i "setup"-funktionen
pinMode(A0, INPUT): stiftetA0är ett stift som läser, en ingångSerial.begin(9600): den seriella monitorn skickar 9600 bitar ('nollor och ettor') per sekund
- Två saker händer i 'loop'-funktionen
Serial.println(analogRead(A0)): läs stiftA0och skriv det till seriell monitordelay(100): vänta hundra millisekunder
10.3 Uppgifter¶
- Ladda upp programmet. I Arduino IDE, klicka på "Serial Monitor" uppe till höger. Vad ser du?
- Vrid potentiometern hela vägen åt vänster (moturs). Vilket värde ser du på den seriella monitorn?
- Vrid potentiometern hela vägen åt höger (medurs). Vilket värde ser du på den seriella monitorn?
10.4 Lösningar¶
- Du ser ett tal från noll till 1024, beroende på potentiometerns position
- Du ser siffran noll
- Du ser numret 1023
10.5 Anslutningspotentiometer med LED¶
Nu ansluter vi även en LED:

OBS:
- resistorn på lysdioden är tusen ohm (brun-svart-röd-guld)
- LED-lampan måste vara på ett stift med PWM ('a wave')
Svara på potentiometern¶
Nu ska vi få lysdioden att reagera på potentiometern:
void setup()
{
pinMode(A0, INPUT);
pinMode(9, OUTPUT);
}
void loop()
{
analogWrite(9, analogRead(A0) / 8);
delay(100);
}
Detta är vad koden gör
- Tre saker händer i "setup"-funktionen:
pinMode(A0, INPUT): stiftetA0är ett stift som läser, en ingångpinMode(9, OUTPUT): stift9är ett stift där ström kommer ut, en utgång
- Två saker händer i "loop"-funktionen:
analogWrite(9, analogRead(A0) / 8): sätt en spänning på stift 9analogRead(A0) / 8.analogRead(A0) / 8betyder: läs värdet från A0 dividerat med åtta ('/' är en divisionsstapel).delay(100): vänta hundra millisekunder
10.6 Uppdrag¶
- Vad händer om du ändrar divisionsnumret?
- Vilket är det bästa värdet av talet för division/
10.7 Lösningar¶
- Med en högre siffra går ljuset mindre och mindre snabbt i fullt läge. Om siffran är lägre än fyra kommer ljuset att reagera konstigt: ljuset kommer först att gå snabbare, sedan av och högre igen osv
- Bästa siffran är fyra. Eftersom från
analogReadkommer som mest 1023, medan medanalogWritekan skriva högst 255. 1023 dividerat med 4 är 255 resterande 3. Ardiono gör 255 av det
10.8 Slutuppgift¶
- Anslut fyra lysdioder: en röd, gul, grön och blå
- Om potentiometern är ända till vänster ska ingen lysdiod lysa.
- När potentiometern vrids mer åt höger tänds den gröna lysdioden
- Om potentiometern vrids ännu mer åt höger, tänds den gula lysdioden
- Om potentiometern vrids ännu mer åt höger, tänds den röda lysdioden
- Den blå lysdioden lyser långsamt när du svänger mer åt höger