Analoge input (potmeter) | |||
Leerdoelen
| Functies en libraries
| Elektrische componenten
| |
Voorkennis
| |||
Inleiding In deze opdracht maak je kennis met een potmeter die je gebruikt voor een analoge dimmer. | Met een potmeter kun je een spanning instellen. Deze spanning lezen we in via de analoge input van de Arduino. Het resultaat gebruiken we om de lichtsterkte van een LED te regelen. | ||
Opbouwen van de schakeling De schakeling bestaat uit een LED-schakeling, en een potmeter-schakeling. De LED met serieweerstand verbind je aan pin 9 (een PWM-pin). De buitenste aansluitingen van de potmeter verbind je met 5V en 0V (GND). De middelste aansluiting verbind je met pin A0 van de Arduino. De 0V en 5V van de Arduino verbind je met het breadboard. | |||
Uitleg van het schema De middenaftakking van de potmeter is verbonden met de analoge input van de Arduino. Deze middenaftakking vormt een "spanningsdeler" van de weerstand onder en boven de aftakking. Het resultaat is een spanning die varieert tussen 0 en 5V. | |||
Uitleg programma De potmeter is verbonden met A0. De LED is verbonden met pin 9. In setup initialiseren we de led-pin als output. Een analoge input hoef je niet te initialiseren. We gebruiken in dit programma ook de seriële output: in de Serial Monitor in de Arduino IDE kun je dan volgen wat er gebeurt. De baudrate moet in de Arduino en in de Serial Monitor gelijk ingesteld zijn. De waarde die je leest van de sensor is een getal 0..1023; dit komt overeen met een spanning 0..5V. We passen deze waarde aan voor de analoge output: die verwacht een waarde tussen 0..255. Voor deze aanpassing gebruiken we de functie map. Een versie van dit programma vind je ook in de Arduino IDE, via Voorbeelden->Analog->AnalogInOutSerial | const int sensor = A0; const int led = 9; int sensorValue = 0; int outputValue = 0; void setup() { pinMode(led, OUTPUT); Serial.begin(9600); } void loop() { sensorValue = analogRead(sensor); outputValue = map(sensorValue, 0, 1023, 0, 255); analogWrite(led, outputValue); Serial.print("sensor = "); Serial.print(sensorValue); Serial.print("\t output = "); Serial.println(outputValue); delay(2); } | ||
Vragen en opdrachten
| Antwoorden: |