habe die Vermutung das meine Hardware defekt ist. Habe einen Arduino Mega 2560.
Ich wollte Softwaremäßig einen Taster entprellen. Allerdings bin ich schon beim einlesen nicht weiter gekommen. Nach dem Upload wird mir über den Serial Monitor sowohl logisch 1 als auch logisch 0 beim einlesen des Tasters ohne betätigen ausgegeben. Die LED blinkt ganz schnell wenn ich keine delay Zeit eingebe. Wenn ich eine delay Zeit eingebe, leuchtet die LED mal nicht und mal leuchtet sie, das passiert wenn ich den Taster nicht drücke.
/*
Taster einlesen und entprellen
*/
// Konstanten
const int tasterPin = 30; // Pin Nummer des Tasters
const int ledPin = 52; // Pin Nummer der LED des Arduinos
// Variablen
int tasterStatus = 0; // Variable für den Taster Status
int sensorValue;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT); // LED Pin wird als Ausgang gesetzt
pinMode(tasterPin, INPUT); // Taster Pin wird als Eingang gesetzt
}
void loop()
{
tasterStatus = digitalRead(tasterPin); // Lesen des Status des Taster Pins
sensorValue = digitalRead(tasterPin);
Serial.println(sensorValue);
if (tasterStatus == 1) // Prüfen ob der Taster gedrückt ist -- Wenn der TasterState HIGH ist, dann:
{
digitalWrite(ledPin, HIGH);
}
else
{
digitalWrite(ledPin, LOW);
}
delay(200);
}
Habe den Schaltplan nun mal von einer Website genommen.
Folgende Unterschiede:
Kein Uno sondern Mega, daher LED an Pin 52 und Taster an Pin 30
Noch dazu sagen sollte ich, das ich gestern ein Poti über Analog Pin A0 und analogRead eingelesen habe. Es kamen Werte zwischen 0 bis 1023. Das hat funktioniert. Wenn ich den Taster über analogRead einlese am Pin A0 kommt die 0 vor, das ist ja richtig. Dann Werte zwischen 1 - 1022 und die volle Spannung also 1023.
Um einen Taster sauber an einem digitalen Pin zu erkennen, musst du einen Pullup oder Pulldown-Widerstand einsetzen. Dadurch erhält der Pin einen definierten Zustand, wenn der Taster nicht gedrückt ist.
habe einen Pull Up Widerstand angeschlossen. Also von GND zum Widerstand, dann aufgeteilt zu 5V und zum Taster.
Es ändert nichts. Die LED geht an und aus wie sie lustig ist..
Diese Beschreibung kann man nicht verstehen.
Warum machst du es nicht so, wie du es gepostet hast ?
Dann heißt das Ding auch Pulldown-Widerstand, weil dieser gegen GND geschaltet ist.
Es ist grundsätzlich schlecht, ein Schaltbild zu posten, beizuschreiben,, so habe ich es gemacht. Allerdings sieht der Aufbau gemäß deiner Beschreibung anders aus.
Da soll einer draus schlau werden.
Edit:
Wenn du es nach Schaltbild aufbaust und statt des Tasters eine Drahtbrücke verwendest, geht es auch.
Wenn nicht, machst du einen Fehler.
Und das liest sich so, als ob dein Eingang allein an dem Taster hängt und damit völlig offen für alle Störungen.
Teste einen anderen Pin des Mega.
Es werden nicht alle defekt sein.
habe einen Pull Up Widerstand angeschlossen. Also von GND zum Widerstand, dann aufgeteilt zu 5V und zum Taster.
Es ändert nichts. Die LED geht an und aus wie sie lustig ist..
So wie ich das verstehe ist das ein Widerstand den Du zwischen GND und +5V geklemmt hast und kein Pullup oder Pulldown Widerstand. Ein Pullup oder Pulldown Widerstand ist ein Widerstand zwischen dem Pin und GND oder +5V. https://playground.arduino.cc/CommonTopics/PullUpDownResistor
// Konstanten
const int tasterPin = 40; // Pin Nummer des Tasters
const int ledPin = 45; // Pin Nummer der LED des Arduinos
Im Anhang befindet sich der Stromlaufplan und die Übersicht.
Ich habe keinen PullUp sondern einen PullDown Widerstand gesetzt, in Ordnung.
Dennoch bleibt der Fehler, auch wenn ich andere Digitale Ein-Ausgänge verwende.
Wenn ich den Eingang direkt an 5 V setze bleibt die LED an. Wenn ich den Eingang an 0V setze, bleibt die LED aus. Wenn ich den Eingang in der Luft lasse, geht die LED an und aus. Wenn ich den 10k Widerstand auswechsel passiert das gleiche. Wenn ich den Taster wechsle folgt auch der selbe Konflikt.
uwefed:
So wie ich das verstehe ist das ein Widerstand den Du zwischen GND und +5V geklemmt hast und kein Pullup oder Pulldown Widerstand. Ein Pullup oder Pulldown Widerstand ist ein Widerstand zwischen dem Pin und GND oder +5V. Arduino Playground - HomePage
Uwe hat das Problem erkannt und dein Schaltplan im letzter Post zeigt immer noch genau diesen Fehler. So kann das nicht funktionieren.
Um die Schaltung zu korrigieren müsstest du den 5V-Anschluss und den Pin des Arduinos am Schalter tauschen. Also das Ende des Widerstands, wo du 5V anschließt, mit dem Arduino-Eingang verbinden und am Schalter den Anschluss, den du mit dem Eingang verbunden hast, an 5V anschließen.
Kennst du das Gefühl, wenn du mehrere Stunden an einer Arbeit sitzt und dich nicht mehr so richtig konzentrieren kannst, das du auf die einfachsten Dinge nicht mehr kommst?
So ging es mir gestern. Ich habe es nicht mehr verarbeiten können was mir als Hilfe angeboten wurde.
Entschuldigt bitte meine Unaufmerksamkeit..
Chris89:
Kennst du das Gefühl, wenn du mehrere Stunden an einer Arbeit sitzt und dich nicht mehr so richtig konzentrieren kannst, das du auf die einfachsten Dinge nicht mehr kommst?
So ging es mir gestern. Ich habe es nicht mehr verarbeiten können was mir als Hilfe angeboten wurde.
Entschuldigt bitte meine Unaufmerksamkeit..
Ok, wir sind ja auch froh, dass es jetzt funktioniert.