Taster/Led problem

Hallo, ich bin noch Neuling im Programmieren und Versuche gerade was zu bauen. Hierfür möchte ich eine Led mittels Taster anschalten und mit einem anderen ausschalten. Mein Problem ist, dass die Led sich schon wieder ausschaltet wenn ich den Taster los lasse.

Hat jemand da evtl. einen Lösungsvorschlag ?

Vielen Dank

Mfg

Solange Du Deinen Sketch geheim hälst, wird Dir keiner helfen können.
Setze Deinen Sketch bitte in Codetags (</>-Button oben links im Forumseditor).

Gruß Tommy

Ups sry mache ich natürlich:

<
int taster2 = 5;
int taster2stat = 0;
int taster3 = 7;
int taster3stat = 0;
int Led = 8;
int Ledstat = 0;

void setup() {

pinMode(Led, OUTPUT);
pinMode(taster2, INPUT);
pinMode(taster3, INPUT);

Serial.begin(9600);

}

void loop() {
taster2stat = digitalRead(taster2);
taster3stat = digitalRead(taster2);

if (taster2stat == HIGH)
{
Ledstat = 1;
digitalWrite(Led, Ledstat);
delay(2000);

}

if (taster3stat == HIGH)
{
Ledstat = 0;
digitalWrite(Led, Ledstat);
}

}

Was ich mich frage, warum die Led überhaupt wieder aus geht, da ich mit der einen Taste ja nur sage: geh an

xmanxman:
Was ich mich frage, warum die Led überhaupt wieder aus geht, da ich mit der einen Taste ja nur sage: geh an

Und setze deinen Sketch in Code-Tags, wie Tommy es beschrieben hat.

Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Dazu den Sketch markieren und die Schaltfläche klicken.

Damit wird dieser für alle besser lesbar, auch mobile Geräte.

Und das hier sollte bestimmt anders aussehen.

taster2stat = digitalRead(taster2);
taster3stat = digitalRead(taster2);
int taster2 = 5;
int taster2stat = 0;
int taster3 = 7;
int taster3stat = 0;
int Led = 8;
int Ledstat = 0;


void setup() {

 pinMode(Led, OUTPUT);
 pinMode(taster2, INPUT);
 pinMode(taster3, INPUT);

 Serial.begin(9600);

}

void loop() {
 taster2stat = digitalRead(taster2);
 taster3stat = digitalRead(taster3);

if (taster2stat == HIGH)
 {
   Ledstat = 1;
   digitalWrite(Led, Ledstat);
   delay(2000);

 }

 if (taster3stat == HIGH)
 {
   Ledstat = 0;
   digitalWrite(Led, Ledstat);
 }

}

oh jetzt habe ich es auch gefunden sry und scheinbar war es schon die Kleinigkeit die HotSystems entdeckt hat. (Peinlich :-[ )

Danke euch.

Warum hast du in einer Schleife ein delay und in der anderen nicht? Wofür Serialbegin? Hast du die Widerstände bei den Buttons richtig?

Johannes81: Warum hast du in einer Schleife ein delay und in der anderen nicht? ....

Welche Schleife meinst du ? Ich sehe nur eine Schleife (loop).

und scheinbar war es schon die Kleinigkeit

Ich habe den Programm mal so aufgeräumt, dass es meinen Ansprüchen genüge tut.

Und auch deine Anforderungen erfüllt:

Hierfür möchte ich eine Led mittels Taster anschalten und mit einem anderen ausschalten.

const byte einTaster = 5;
const byte ausTaster = 7;
const byte led       = 8;


void setup() 
{
 pinMode(led, OUTPUT);
 pinMode(einTaster, INPUT);
 pinMode(ausTaster, INPUT);
}

void loop() 
{
  if(digitalRead(einTaster)) digitalWrite(led,HIGH);
  if(digitalRead(ausTaster)) digitalWrite(led,LOW);
}
  • Überflüssige Merker entfernt
  • Variablen/Konstanten Bezeichner klein geschrieben
  • Konstante Dinge konstant gemacht
  • Datentypen angepasst
  • Überflüssige Delay entfernt
  • Durchnummerierung der Bezeichner eliminiert