5 Semester frustriert, Arduino Uno scheint magische Fähigkeiten zu haben

Hallo zusammen!

ich habe mir vor kurzem einen Arduino Uno angeschafft, um ein kleines Projekt zu realisieren. Um in die Sprache etc reinzukommen habe ich mir Mithilfe des wunderbaren Internets ein Programm gebastelt, welches eine LED einschalten soll, wenn ich einen Taster drücke. (dieser Taster: https://www.amazon.de/gp/product/B00URDCBB6/ref=oh_aui_detailpage_o03_s01?ie=UTF8&psc=1)

Jetzt ist das Problem:
Taster nicht gedrückt: LED schaltet sich random ein und aus (flackern), wenn man am Kabel wackelt
Taster nicht mit der Masse verbunden: Man kann den Taster drücken und das Programm tut es auch

Also ich habe Kenntnisse in der Elektrotechnik (ich studiere den Scheiß), habe ich etwas in der Benutzung des Arduinos falsch verstanden?
Wenn ja, könnte mich bitte jemand aufklären? :slight_smile:

LG

Hier der Code:

#define LED_GRUEN 13
#define TASTER 2

int merker = 0;
int buttonState = 0;

void setup() {
 // put your setup code here, to run once:

 pinMode(LED_GRUEN, OUTPUT);
 pinMode(TASTER, INPUT);
 Serial.begin(9600);

}

void loop() {
 // put your main code here, to run repeatedly:
 //digitalWrite(TASTER_OUT, HIGH);

 buttonState = digitalRead(TASTER);

 if ((buttonState == HIGH)&&(merker==0)) 
   {   
     digitalWrite(LED_GRUEN, HIGH); 
     merker=1;
   } 
  
 if ((buttonState == LOW)&&(merker==1)) 
   {   
     merker=2;
   } 
   
 if ((buttonState == HIGH)&&(merker==2)) 
   {
      digitalWrite(LED_GRUEN, LOW); 
      merker=3;
   }
  if ((buttonState == LOW)&&(merker==3)) 
   {   
      merker=0;
   } 
      
   Serial.print("Merker= ");
   Serial.println(merker);
}

Pullup-Widerstand eingebaut? Wenn nein musst du INPUT_PULLUP statt INPUT verwenden

Du bist ein Gott. Die Macht sei mit Dir!

Also es funktioniert tadellos, kannst du mir vllt den Unterschied erklären? :slight_smile:

Ohne Pullup hängt er Eingang in der Luft. Dann hast du mehr oder weniger willkürliche Werte.

maltevdh:
Also es funktioniert tadellos, kannst du mir vllt den Unterschied erklären? :slight_smile:

Ein Eingang ist hochohmig und unbeschaltet ein Elektronenfänger mit daraus resultierendem zufälligen Zustand. Ein PullUp, intern oder extern, auch ein PullDown macht einen definierten Zustand, den Du mittels Taster in die jeweils andere Richtung veränderst. Klar?

Also ich habe Kenntnisse in der Elektrotechnik (ich studiere den Scheiß), habe ich etwas in der Benutzung des Arduinos falsch verstanden?

Ich mache mir ernsthafte Sorgen - wenn solches Basiswissen nicht vermittelt oder sich im Laufe der Zeit selbst angeeignet wird ....

Offene Eingänge zu vermeiden habe ich schon mit 14 gelernt :o
Aber egal, Hauptsache es fluppt jetzt.

Praktisches Wissen geht in einem Elektrotechnik Studium leider oft etwas unter. Gerade an Unis (im Gegensatz zu Fachhochschulen) ist das extrem theoretisch mit sehr viel höherer Mathematik.

Bin ja schon wieder lieb :kissing:

Hey! also mir ist jetzt einiges klarer, Dankeschön!!

und ja, wir lernen nur Theorie und hochmathematische Sachverhalte :confused: :smiley:

hi,

Du bist ein Gott. Die Macht sei mit Dir!

gilt für uns alle. und damit herzlich willkommen im forum :slight_smile: :slight_smile: :slight_smile:

gruß stefan