Probleme mit Tutorial

Hallo,

ich habe gerade erst angefangen mit Arduino. Ich habe mir zum Start ein einfach Startkit geholt mit einen Arduino UNO. Nachdem ich mit dem Tutorial vom Kit nicht so wirklich gut arbeiten konnte habe ich mit dem Tutorial hier angefangen. Nun bin ich bin ich bei der Übung DigitalReadSerial (ja ich weiß ist wirklich erst der anfang^^).

Ich wollte nun ganz normal den Wert über den Monitor anzeigen lassen, doch kann ich diesen nicht wirklich beeinflussen. Das Problem ist, dass er ohne das ich den Taster betätige manchmal ein HIGH Signal ließt und manchmal einfach LOW. Obwohl ich den Aufbau orginal nachgebaut habe und auch noch zur kontrolle den vorgefertigten CODE verwendet, doch nichts hat sich geändert.

/*
  DigitalReadSerial
 Reads a digital input on pin 2, prints the result to the serial monitor

 This example code is in the public domain.
 */

// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2;

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  // make the pushbutton's pin an input:
  pinMode(pushButton, INPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input pin:
  int buttonState = digitalRead(pushButton);
  // print out the state of the button:
  Serial.println(buttonState);
  delay(500);        // delay in between reads for stability
}

Was mache ich falsch?

Habe nun wirklich alles mit verschiedenen Tastern, Widerständen und auch Pins probiert.

PS: einzige Änderung ist, dass ich in diesem Beispiel den delay auf 500ms gesetzt habe.

DigitalReadSerial.ino (735 Bytes)

Ich kann die Datei am Handy nicht öffnen.
Magst Du sie bitte in Codetags </> posten ?

Stefan

kann leider am smart phone deinen Sketch nicht anschauen. Deswegen bitte in Code Tags

Tut mir leid, dass ich das erst als Datei gemacht habe, dachte, dass dies dann als Code angezeigt wird. Habe ihn nun nachträglich hinzugefügt.

du musst den Taster von Pin zwei nach Masse anschließen, nicht gegen 5V

Hab meine fehler selber gefunden, hatte den beim Steckbrett einen kurzen an der einen stelle. Das Steckbrett ist leider ein altes gewesen und verwende es da es größer ist.

Tut mir leid, das ich euch deswegen gefragt habe :cold_sweat:

Boneclaw:
dubios:
pinMode(pushButton, INPUT);

Hast Du am pushButton einen pull-down Widerstand gegen GND geschaltet?

<<<<<<<<<<<<<<<wenn nicht, dann floatet der Pin und liefert beim Auslesen zufällige (!)Ergebnisse.

ups, da hab ich doch glatt nicht gemerkt, dass pullup fehlt

Dann kannst Du ja gleich zum nächsten übergehen: Sketch Nr.6: Eine LED per Tastendruck aktivieren

Viel Spaß bei den Grundlagen.

PS: Konstanten als solche zu deklarieren spart Speicher und ist bei komplizierteren Programmen besser lesbar:

const int pushButton = 2;

oder

const unsigned int pushButton = 2;

oder

const byte pushButton = 2;

Konstanten können vom Kompiler optimierend behandelt werden.

Ich habe einen 10K Widerstand verwendet, der zwischen den 5V Eingangspannung und GND ist. Die Eingangsspannung ist auch gleichzeitig mit dem Taster verbunden, welche dann beim anderen Pin vom Taster (wenn gedruck) mit Pin 2 vom Board verbunden ist.

Hat jetzt auch relative gut funktioniert. Das einzige was mich etwas stört ist, dass ich ledier nciht dieses Flakern des Wertes wegbekomme. Damit mein ich, dass ich zwar dauerhaft das HIGH Signal an Pin 2 habe, wenn der Taster gedrückt ist, aber wenn dieser nciht gedrückt wurde, dann wechselt der Wert leider immer zwischen HIGH und LOW....

der Widerstand muß zwischen Pin 2 und Gnd. oder du schaltest den Taster zwischen Pin 2 und GND und verwendest den folgenden Sketch

/*
  DigitalReadSerial
 Reads a digital input on pin 2, prints the result to the serial monitor

 This example code is in the public domain.
 */

// digital pin 2 has a pushbutton attached to it. Give it a name:
const int pushButton = 2;

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  // make the pushbutton's pin an input:
  pinMode(pushButton, INPUT_PULLUP);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input pin:
  int buttonState = digitalRead(pushButton);
  // print out the state of the button:
  Serial.println(buttonState);
  delay(500);        // delay in between reads for stability
}

|421x500

Wenn das die Schaltung ist wie du meinst, dann kommt nur noch ein HIGH signal. Egal ob ich die vorgefertigte Lösung nehme, meinen eigenen Code oder den von dir erstellten. Keine Ahnung wieso.

das ist doch aber eine Schaltung mit korrektem Pulldown

Versteh jetzt gar nichts mehr....

In dem Tutorial steht ja, dass man dies so aufbauen soll, wenn ich aber das mache kommt halt nur ein HIGH Signal. Wenn ich denWiderstandt nicht am Taster anschließe sondern an 5V kommt wenigstens das Signal vom Taster, aber immer mit dem Flackern.

Über den Plotter sieht das meistens so aus, manchmal auch nur HIGH Signal, ohne das ich den Taster drücke. (der Widerstand hier zwischen 5V und GND)

|500x205

Bei der Variante mit Widewrstand an Pin 2 kommt nur HIGH, wie bereits beschrieben.

Davon ausgehend dass Du an der Lösung des Problems interessiert bist, lies doch bitte nochmal Beitrag #10 durch. Ich denke, wir reden die ganze Zeit aneinander vorbei, was den Pull-Down und / oder den Pull-Up Widerstand betrifft.

(der Widerstand hier zwischen 5V und GND)

Macht keinen Sinn. Evtl. geht es deswegen nicht.

Hier: Klick mich ! gibt es einen Beitrag, in welchem eine ähnliche Frage gestellt wurde. Vieleicht hilft Dir die Erklärung "von der anderen Seite" an das Problem heranzugehen?!

Stefan

Hab den Hauptfehler gefunden, einfach nur den falschen Pin am board genommen. -.-! Bin neben den GND gekommen und da liegt der VIN Pin, was das falsche Ergebniss geliefert hat. Jetzt funktionieren auch die Codes.....

@Stefan hatte beuides getestet war einfach nur viel weiter am Anfang der Fehler....

Auf jeden Fall vielen Dank an euch alle, hätte bestimmt noch viel länger gesucht wenn ich alleine wäre^^

“Kaum macht man es richtig, funktioniert es auch!”
Spruch aus diesem Forum

Mein Ausbilder hat immer wenn jemand so einen dummen Fehler gemascht gesagt: "Einmal mit Profis arbeiten"

:) Ich freue mich für Dich. Ein holpriger Anfang spricht eigentlich für lange Freude :D

Ein Foto vom Aufbau hätte den freundlichen Antwortern eine Chance gegeben den Fehler zu finden. ;)