Analog Taster abfrage. Immer der gleiche Wert ?

Hallo,

Für ein größeres Projekt brauche ich viele Taster. Jetzt habe ich immer 5 Taster hintereinander mit 1k

Ohm Widerständen verbunden.

Ungefähr so:


|
Taster
|
Widerstand
|

...

Natürlich richtig verkabelt und mit E-Smok Schutzwiderstand. Jetzt habe ich mit diesem kleinen

Programm die Werte ausgelsen:

int taster = 5;
int val = 0;
void setup(){
Serial.begin(9600);
}
void loop(){
val = analogRead(taster);
Serial.println(val);
}

Und es wurden im Serial Monitor Werte von 0-509 ausgegeben, diese habe ich mir notiert.

Jetzt meine Frage wenn ich genau die gleiche Schaltung baue nur längeren Kabeln für die Taster

( Taster sind in diesem Fall nicht auf der Platine) sind es dann genau die gleichen Werte ?

Und bei den ersten Taster wurden Werte von 0 bis 65 ausgegeben. Beim letzten Taster der Wert 0,

wie muss ich das dann im Code machen wenn beide 0 haben ? Wie unterscheidet der Arduino jetzt

ob es der Taster mit den werten 0-65 ist oder den Taster mit den Wert 0 ?

Danke!

MFG

Ostfront

Also...
Taster würde ich nicht analog auslesen.
Es sei denn, es sind mehrere Taster an 1 Pin. (das LCD-Key Shield tut das)

Für kurze Leitungen tuts der innere Pullup gut genug.

Bei langen (3m?) Leitungen (Klingeldraht) würde ich ca 1K Pulldown verwenden.
Aber auch digital lesen.

Nachtrag:
Offensichtlich tust du das, was ich nicht tun würde!

combie:
Nachtrag:
Offensichtlich tust du das, was ich nicht tun würde!

Ja leider. Aber danke für deinen Rat!

Mir stehen die Pins nicht zur Verfügung... Ich habe insgesamt ca. 11 Taster und muss noch ein LCD und

Led´s anschließen und die Verwendung von einen IC geht im Moment nicht. Ich weiß das es mit einer

I2C Port Expander leichter wäre doch das geht im Moment nicht.

MFG

Ostfront

Ostfront:
Ungefähr so:


|
Taster
|
Widerstand
|

...

Ich sehe nur einen Taster und nicht fünf.
Und ich sehe auch nicht, wie die Verschaltung mit dem Arduino ist.

Ostfront:
Natürlich richtig verkabelt und mit E-Smok Schutzwiderstand.

Was auch immer ein "E-Smok Schutzwiderstand" sein mag.
Das muss wohl irgendein Zubehör für die Raucher von "Elektronischen Zigraretten" sein, damit der Raucher keinen elektrischen Schlag bekommt.

Ostfront:
Jetzt habe ich mit diesem kleinen

Programm die Werte ausgelsen:

int taster = 5;

Wenn das ein Analog-Pin sein soll, würde ich den mal lieber als 'A5' deklarieren statt als '5', sonst ist der Code nicht zu allen Arduino-Boards und -versionen kompatibel.

Ostfront:
Jetzt meine Frage wenn ich genau die gleiche Schaltung baue nur längeren Kabeln für die Taster

( Taster sind in diesem Fall nicht auf der Platine) sind es dann genau die gleichen Werte ?

Nein, natürlich nicht. Du bekommst ja nicht mal genau die gleichen Werte wenn es mal 10 Grad wärmer oder kälter ist als zum Zeitpunkt Deiner Testmessung.

Geschweige denn wenn Du Widerstände mit 5% Toleranz in der Schaltung verbaust oder auch Widerstände mit 1% Toleranz.

Analog-Buttonschaltungen mußt Du natürlich bereichsweise auswerten, also nicht genau auf den Wert, sondern ein Button ist dann gedrückt, wenn der Messwert innerhalb eines bestimmten Bereichs liegt.

Zum "LCD-Keypad-Shield", das seine fünf Buttons an einem Widerstandsnetzwerk am A0 Pin hängen hat, gibt es Beispielcode für einfache Abfragen.

Ostfront:
Und bei den ersten Taster wurden Werte von 0 bis 65 ausgegeben. Beim letzten Taster der Wert 0,

wie muss ich das dann im Code machen wenn beide 0 haben ?

Wenn Du zwei Buttons hast, die teilweise dieselben Werte liefern, ohne dass dies durch Kontaktprellen erklärt werden kann (also nur extrem kurzfristig während einiger Mikrosekunden auftritt), kannst Du mit Code nichts machen, dann mußt Du erstmal die Schaltung korrigieren.