ich spiele seit zwei Wochen mit dem Arduino herum und komme bei einem Problem nicht weiter.
Folgende Aufgabenstellung:
Ich habe mehrere Taster, deren Aktivierung mit einem Analog-Pin abgefragt wird. Google ist mein Freund und so habe ich bereits im Netz ein paar Hinweise bekommen. Allerdings funktioniert keines davon so richtig. Also habe ich meine Rübe angestrengt und mir einen eigenen Plan erdacht.
Grundidee ist, jeweils einen Widerstand mit unterschiedlichem Wirkungsgrad vor den 5V Eingangsspannung anzulegen.
Das Ganze sieht etwa so aus:
Ich wollte programmäßig erst einmal überprüfen, welche Werte ich denn erhalte. Also sieht mein Sketch wie folgt aus:
die analogen pins lösen werte von gnd bis 5V (oder bei einigen arduinos 3,3V) in einen wert zwischen 0 und 1023 auf.
für dein problem solltest du soweit ich deine aufgabenstellung verstanden habe digital pins verwenden:
int pinwert;
int pinnummer = 3;
.
.
.
pinwert = digitalRead(pinnummer);
if(pinwert == HIGH) doSometing();
dann sollte es klappen denn ein taster kann nur gedrückt oder nicht gedrückt werden also HIGH oder LOW sein...
die analogen pins kannst du zb für potentiometer oder analoge sensoren verwenden...
nur zur info:
du musst nicht unbedingt wirkliche widerstände verwenden sondern kannst die im arduino vorhandenen pullUP-DOWN widerstände verwenden indem du bei der setup() funktion
den die pinnummer HIGH oder LOW setzt (digitalWrite(pinnummer, LOW oder HIGH)
@Hoonse
Er will ja mehrere Taster mit einem Pin abfragen, somit ist der analoge Eingang schon richtig.
Ich verwende für so etwas allerdings immer einen 74HC165. Damit brauche ich zwar drei (digitale) Pins, kann aber dafür bis zu acht Taster abfragen. Und wenns mehr sein müssen, kann man mehrere 74HC165 einfach verbinden (2 für 16 Taster, 3 für 24, ...). Der große Vorteil: es können beliebig viele Taster gleichzeitig gedrückt werden.
Hallo fullArduinoNoop
Ich weiß nicht wie Du die Taster ins Steckbrett gesteckt hast. Die Tster haben jeweils 2 Füßchen intern verbunden und wenn Du den Taster betätigst werden alle die 2 Füßchen mit den anderen 2 Füßchen verbunden.
Wenn Du den Taster waagerecht einsteckst dann ist der Widerstand immer mit Masse verbunden und Du liest am Eingang einen unbestimmten wert weil de Eingang in der Luft hängt und wenn Du den Taster betätigst liest Du 0.
Hast Du den Taster um 90 Grad gedreht hast Du am eingang immer Masse anliegen und wenn Du den Taster betätigst fliest zusätzlich ein strom über den Widerstand , andert aber nichts am Eingang.
Die 3 Taster sind paralellgeschaltet darum ändert sich nichts.
so ist es richtig: Beispiel mit 2 Taster:
Du machst einen Spannungsteiler mit 2 Widerständen und einen dritten um den Eingang eine Spannungswert zu geben wenn kein Taster gedrückt ist.
Wenn kein Taster gedrückt ist dann hast Du 5V am Eingang.
Wenn Taster 1 gedrückt ist dann hast Du 2,5V am Eingang.
Wenn Taster 2 gedrückt ist dann hast Du 0 V am Eingang.
Wenn Du beide Taster gleichzeitig drückst, dann hast Du 0V am Eingang.
Es können alle Widerstände den gleichen Wert besitzen. Bei einer entsprechenden Verschaltung können gleichzeitig gedrückte Taster erkannt werden.
Werde morgen mal eine entsprechende Schaltung posten.
Vielen Dank für die schnelle Reaktion und die ausführlichen Antworten! Das ist nicht selbstverständlich. Ich werde mir alles genau durchlesen und es entsprechend in mein Projekt verwursten.