INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Blutiger Anfänger/ Projekt: Visuelle Takthilfe
20.02.2020, 18:26
Beitrag #9
RE: Blutiger Anfänger/ Projekt: Visuelle Takthilfe
Weil Du in dieser Zeile noch einen Fehler hast:
Code:
if (tasterstatus== LOW); (LED1= HIGH);

Also das ; weg und was soll das (LED1= HIGH); bedeuten? Auch weg.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2020, 18:26
Beitrag #10
RE: Blutiger Anfänger/ Projekt: Visuelle Takthilfe
Ja, das "LED1=HIGH;" ist da noch zu viel bzw. falsch eingebaut.
Das muss mit einer And-Verknüpfung eingebaut werden.
Auch da ist dann das Semikolon falsch.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.02.2020, 18:06 (Dieser Beitrag wurde zuletzt bearbeitet: 28.02.2020 18:27 von bencha.)
Beitrag #11
RE: Blutiger Anfänger/ Projekt: Visuelle Takthilfe
Vielen Dank für eure schnellen Antworten!

Das ist jetzt der aktuelle Sketch:
Code:
int LED1=3;
int LED2=4;
int LED3=5;
int LED4=6;
int taster=8;
int tasterstatus=0;

void setup()
{
pinMode (LED1, OUTPUT);
pinMode (LED2, OUTPUT);
pinMode (LED3, OUTPUT);
pinMode (LED4, OUTPUT);
pinMode (taster, INPUT);
}

void loop()
{
  if (digitalRead (taster))
  {delay (5);
  }
  
tasterstatus= digitalRead (taster);
if (tasterstatus == HIGH)
{
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED4, LOW);
}
else
{
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED4, LOW);
}


if (tasterstatus == LOW)
{
  digitalWrite (LED1, LOW);
  digitalWrite (LED2, HIGH);
  digitalWrite (LED3, LOW);
  digitalWrite (LED4, LOW);
}

else
{
digitalWrite (LED1, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED4, LOW);
}

if (tasterstatus == HIGH)
{
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED3, HIGH);
digitalWrite (LED4, LOW);
}

else
{
digitalWrite (LED1, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED4, LOW);
}

if (tasterstatus == LOW)
{
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED4, HIGH);
}

else
{
digitalWrite (LED1, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED4, LOW);
}

}

Leider läuft es noch nicht wie gewollt. Wenn ich den Taster nicht berühre, leuchten LED2 und LED4 gleichzeitig. Wenn ich den Taster berühre leuchten LED1 und LED3 schwach auf. Habe euch mal Bilder dazu hochgeladen..
Habe die Anschlüsse mehrfach kontrolliert...
Meine Vermutung ist, dass ich zu jeder if-Abfrage als Bedingung hinzufügen muss, welche LED aktuell leuchtet? Kann mir jemand weiterhelfen? (:


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.02.2020, 20:54
Beitrag #12
RE: Blutiger Anfänger/ Projekt: Visuelle Takthilfe
und hier der nächste Versuch...

Code:
int LED1=3;
int LED2=4;
int LED3=5;
int LED4=6;
int taster=8;
int tasterstatus=0;

void setup()
{
pinMode (LED1, OUTPUT);
pinMode (LED2, OUTPUT);
pinMode (LED3, OUTPUT);
pinMode (LED4, OUTPUT);
pinMode (taster, INPUT);
}

void loop()
{
  if (digitalRead (taster))
  {delay (50);
  }
  
tasterstatus= digitalRead (taster);
if (tasterstatus == LOW && LED1 == LOW && LED2 == LOW &&
LED3== LOW && LED4 == LOW) // Zu Beginn sollen alle LEDs aus sein
{
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED4, LOW);
}
else
{
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED4, LOW);
}



if (tasterstatus == HIGH  && LED1 == LOW && LED2 == LOW &&
LED3== LOW && LED4 == LOW) // Wenn alle LEDs aus sind, und der Taster betätigt wird..
{
  digitalWrite (LED1, HIGH);//...soll LED1 angehen
  digitalWrite (LED2, LOW);
  digitalWrite (LED3, LOW);
  digitalWrite (LED4, LOW);
}

else
{
digitalWrite (LED1, LOW);//..ansonsten sollen alle ausbleiben
digitalWrite (LED3, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED4, LOW);
}

if (tasterstatus == HIGH && LED1 == HIGH && LED2 == LOW &&
LED3== LOW && LED4 == LOW) //..wenn nur LED1 an ist, und der Taster nochmals betätigt wird..
{
digitalWrite (LED1, LOW);//...soll LED1 ausgehen
digitalWrite (LED2, HIGH);//...und LED2 angehen
digitalWrite (LED3, LOW);
digitalWrite (LED4, LOW);
}

else
{
digitalWrite (LED1, HIGH);//..ansonsten soll LED1 anbleiben
digitalWrite (LED2, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED4, LOW);
}

if (tasterstatus == HIGH && LED1 == LOW && LED2 == HIGH &&
LED3== LOW && LED4 == LOW) //wenn der Taster betätigt wird, während LED 2 an ist..
{
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);//...soll LED 2 aus,
digitalWrite (LED3, HIGH);//....und LED 3 angehen
digitalWrite (LED4, LOW);
}

else
{
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);//ansonsten soll LED2 anbleiben
digitalWrite (LED3, LOW);
digitalWrite (LED4, LOW);
}

if (tasterstatus == HIGH && LED1 == LOW && LED2 == LOW &&
LED3== HIGH && LED4 == LOW) //wenn der Taster betätigt wird, während LED 3 an ist..
{
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED3, LOW);//...soll LED3 aus
digitalWrite (LED4, HIGH);//..und LED4 angehen
}

else
{
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED3, HIGH);//..ansonsten soll LED 3 anbleiben
digitalWrite (LED4, LOW);
}

if (tasterstatus == HIGH && LED1 == LOW && LED2 == LOW &&
LED3== HIGH && LED4 == LOW) //wenn der Taster betätigt wird, während LED 4 an ist..
{
digitalWrite (LED1, HIGH);//..soll LED 1 angehen
digitalWrite (LED2, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED4, LOW);//..und LED4 ausgehen
}

else
{
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED4, HIGH);//..ansonsten soll LED4 anbleiben
}
}

Jetzt gehen gleichzeitig alle vier LEDS an und aus bei Tasterbetätigung...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.02.2020, 18:17 (Dieser Beitrag wurde zuletzt bearbeitet: 29.02.2020 18:30 von db91595.)
Beitrag #13
RE: Blutiger Anfänger/ Projekt: Visuelle Takthilfe
Ich versuche es mal mit "Logik"


Was soll passieren?
1 Taster
4 LED
Anfang: alle LED aus
Taster 1x drücken: LED1 an (alle Anderen aus)
Taster 1x drücken: LED2 an (alle Anderen aus)
Taster 1x drücken: LED3 an (alle Anderen aus)
Taster 1x drücken: LED4 an (alle Anderen aus)
Taster 1x drücken: alle LED aus

int Zaehler = 0; // Variable vom Typ int anlegen und gleich mit 0 initialisieren

Code:
void setup
Taster_Status = 0
LED1 aus; LED2 aus; LED3 aus; LED4 aus

void loop
  if Taster gedrückt Zaehler = Zaehler + 1 // Zaehler wird um 1 erhöht
  {
    if zaehler > 4 Zaehler = 0 // wenn max (hier 4) erreicht reset auf Anfang
  }

  if Zaehler == 0 // was passiert bei Zaehler-Stand 0
  {
    LED1 aus
    ...
    LED4 aus
  }

  if Zaehler == 1 // was passiert bei Zaehler-Stand 1
  {
    LED1 an
    LED2..4 aus
  }
  ...
  if Zaehler == 4 // was passiert bei Zaehler-Stand 4

//void loop ende

Das ist jetzt nur die Struktur (und noch nicht mal komplett). Die solltest du verstehen (was passiert wenn das läuft).

Das gewinnt keinen Design-Preis. Aber wenn du es verstehst & es macht was du willst ...

ESP32 Anfänger mit Migrations-Hintergrund (komme von RasPi & Python) Cool
Gruß aus Franken
Dietmar
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.02.2020, 18:27 (Dieser Beitrag wurde zuletzt bearbeitet: 29.02.2020 18:41 von Tommy56.)
Beitrag #14
RE: Blutiger Anfänger/ Projekt: Visuelle Takthilfe
@db91595: Du hattest Code-Tags auch schon mal verstanden.
Bitte korrigiere das noch.

Gruß Tommy

Edit:
@TO: Etwas denken ist nicht schädlich. Lasse Dir doch mal (nur als Beispiel) diesen Codeteil durch den Kopf gehen:
Code:
if (tasterstatus == LOW && LED1 == LOW && LED2 == LOW &&
LED3== LOW && LED4 == LOW) // Zu Beginn sollen alle LEDs aus sein
{
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED4, LOW);
}
else
{
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);
digitalWrite (LED3, LOW);
digitalWrite (LED4, LOW);
}
Kurz gefasst: Wenn Bedingung erfüllt, mache das, ansonsten mache das Gleiche. Klingt irgendwie nach Unsinn.

Ändere mal folgendes:
Code:
int LED1=3;
int LED2=4;
int LED3=5;
int LED4=6;
int taster=8;
Der Arduino hat nicht mehr als 256 Beine, also reicht byte. Diese Anschlüsse ändern sich auch nicht während des Programmlaufs, also kann man const nehmen. Die haben außerdem keinen Sinn in irgendwelchen Bedingungen. LEDx == LOW (oder HIGH) ist immer false.
Code:
const byte LED1=3;
const byte LED2=4;
const byte LED3=5;
const byte LED4=6;
const byte taster=8;


Noch ein Tipp: Nicht jedes if muss ein else haben. Das else tut selten, was Du Dir vorstellst.
Ich habe den Eindruck, dass Du nochmal ein paar Schritte zurück zum Lernen der Grundlagen gehen solltest.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.02.2020, 18:34
Beitrag #15
RE: Blutiger Anfänger/ Projekt: Visuelle Takthilfe
(29.02.2020 18:27)Tommy56 schrieb:  Bitte korrigiere das noch.

Mein lieber Tommy,
erledigt!

Wobei das Absicht war: ich würde so was NIE als Code bezeichnen.
Es soll eine Hilfe sein WIE ein Code aufgebaut ist.

ESP32 Anfänger mit Migrations-Hintergrund (komme von RasPi & Python) Cool
Gruß aus Franken
Dietmar
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.02.2020, 18:44
Beitrag #16
RE: Blutiger Anfänger/ Projekt: Visuelle Takthilfe
(29.02.2020 18:34)db91595 schrieb:  Wobei das Absicht war: ich würde so was NIE als Code bezeichnen.
Es soll eine Hilfe sein WIE ein Code aufgebaut ist.
Auch Fehlermeldungen sind kein Code, sollten aber in Codetags. Da geht es um die Lesbarkeit, besonders auf portablen Geräten. Außerdem werden so manche Zeichenfolgen verstümmelt, z.B. 8 ) ohne Leerzeichen dazwischen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Projekt Stellwerk Arduino DB Nico 17 1.383 01.07.2020 13:27
Letzter Beitrag: DB Nico
  Projekt: Bewegunsmeldung per Lorawan Bodycocoon 23 1.616 19.05.2020 14:05
Letzter Beitrag: GuaAck
  Kleines Projekt mit RFID Stefu1987 31 1.996 11.05.2020 20:24
Letzter Beitrag: Retian
  Neuling mit Fragen für sein Projekt Inferno481 8 1.090 19.04.2020 20:53
Letzter Beitrag: Tommy56
  Erstes Projekt Ampelsteuerung HankfromHell 13 1.175 02.04.2020 21:56
Letzter Beitrag: hotsystems
  Projekt Haushaltsplaner Eisverkäufer 1 676 06.11.2019 13:00
Letzter Beitrag: Tommy56
  Anfänger braucht Hilfe Schrittmotorsteuerung für den Hund dg8ngj 4 1.085 25.08.2019 17:00
Letzter Beitrag: dg8ngj
  Hilfe für Kita-Projekt gesucht. cyberiss 8 2.128 06.08.2019 07:57
Letzter Beitrag: Der Hobbyelektroniker
  Anfänger: Fehlermeldung expected primary-expression before Reiseeck 5 1.872 31.05.2019 12:09
Letzter Beitrag: amithlon
  Kann auf A.Uno nichts hochladen - Anfänger sucht Hilfe ardeche 25 3.880 21.01.2019 22:06
Letzter Beitrag: ardeche

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste