Curseur

FunduinoDernière mise à jour le

Analoge Werte einlesen und damit eine LED steuern

Ein Schieberegler ist ein Potentiometer in anderer Bauform – statt zu drehen, schiebst du. Der Mikrocontroller liest daraus einen Wert zwischen 0 und 1023.

In diesem Einsteigerprojekt steuert dieser Wert die Blinkgeschwindigkeit der LED, die auf jedem Board fest an Pin 13 sitzt. Gleichzeitig wandert er in den Seriellen Monitor – die Grundlage dafür, später beliebige Funktionen an bestimmte Reglerstellungen zu knüpfen.

Schiebepotentiometer auf dem Steckbrett am Funduino UNO R3
Der Versuchsaufbau

Wie ein Schieberegler funktioniert

Ein Schieberegler ist nichts anderes als ein Potentiometer in anderer Bauform. Zwei seiner Anschlüsse gehen an Plus und Minus, der dritte an einen analogen Eingang des Mikrocontrollers.

Je nachdem, wie weit du den Regler verschiebst, gibt dieser dritte Pin eine Spannung zwischen 0 und 5 Volt aus. Der Mikrocontroller liest daraus einen Wert zwischen 0 und 1023. Ob ganz links 0 oder 1023 steht, hängt davon ab, wie herum du Plus und Minus anschließt.

Die Schaltung aufbauen

Der Mittelabgriff des Schiebereglers kommt an A0, die beiden äußeren Anschlüsse an 5V und GND.

Eine eigene LED brauchst du nicht: Das Programm nutzt die LED, die auf jedem Board fest an Pin 13 sitzt.

Schiebepotentiometer auf dem Steckbrett am Funduino UNO R3
Der Versuchsaufbau

Das Programm

Der Sketch liest den Reglerwert ein und verwendet ihn direkt als Wartezeit für das Blinken. Ganz nebenbei schickt er den Wert an den Seriellen Monitor – den brauchst du, sobald du weitere Funktionen an bestimmte Reglerstellungen knüpfen willst.

Schiebst du den Regler ganz an den Anschlag, wird der Sensorwert 0 und damit auch delay(0). Die LED blinkt dann so schnell, dass sie dauerhaft zu leuchten scheint. Das ist kein Fehler, steht aber nicht in der Anleitung.

Blinkgeschwindigkeit über den Schieberegler steuern
int eingang= A0; // Port A0 wird nun mit dem Wort "eingang" gleichgesetzt
int sensorwert = 0; // "sensorwert" wird als Variable für den Wert des Schiebereglers verwendet
void setup()
{
pinMode (13, OUTPUT); // Pin 13 wrd als Ausgang festgelegt, damit die dort angeschlossene LED genutzt werden kann
Serial.begin (9600); // Starten der Datenverbindung zum serial monitor
}
void loop()
{
sensorwert =analogRead(eingang); //Der Wert des Schiebereglers wird ausgelesen und unter der Variable "sensorwert" gespeichert
Serial.println (sensorwert); // Der Wert wird an den serial Monitor übermittelt
digitalWrite (13, HIGH); // Einschalten der LED an Pin13
delay (sensorwert); // LED leuchtet für die Dauer des Sensorwerts (in millisekunden)
digitalWrite (13, LOW); // Ausschalten der LED an Pin13
delay (sensorwert); // LED bleibt für die Dauer des Sensorwerts aus (in millisekunden)
}
Évaluer le guide

Commentaires

Poser une question ou partager une expérience

Écris-nous si quelque chose ne fonctionne pas. Indique-nous ton modèle de carte et le message d’erreur.

Nous vérifions chaque commentaire avant sa publication. Ton adresse e-mail reste chez nous.