#1: (aber nur aufgehübscht, #define durch const byte ersetzt, int zu boolean gemacht u.Ä.)
const byte Blink_R = 6; //Blinkerlampe rechts am Port 6
const byte S_Blink_R = 8; //Schalter vom Blinker rechts am Port 8
const byte Blink_L = 7; //Blinkerlampe Links am Port 7
const byte S_Blink_L = 9; //Schlter vom Blinker Links am Port 9
const byte Ruecklicht_R = 4; //Rücklicht Rechts am Port 4
const byte Ruecklicht_L = 5; //Rücklicht Links am Port 5
const byte S_Fahrlicht = 10; //Schalter vom Fahrlicht am Port 10
const byte Bremslicht_L = 2; //Bremslicht Links am Port 2
const byte Bremslicht_R = 11; //Bremslicht Rechts am Port 11
const byte S_Bremslicht = 3; //Schalter vom Bremslicht am Port 3
boolean blinkStatus = LOW; //Blink-Status auf "aus"
boolean BlinkerRStatus = LOW; //Blinker-Status- Speicher 1 auf "aus"
boolean BlinkerLStatus = LOW; //Blinker-Status-Speicher 1 auf "aus"
boolean FahrlichtStatus = LOW; //Standlicht-Status auf "aus"
boolean BremslichtStatus = LOW; // Fahrtlicht-Status auf "aus"
unsigned long zurueckZeit = 0; //32 Bit-Speicherplatz für die zurückliegende Zeit
unsigned long aktuelleZeit = 0; //32 Bit-Speicherplatz für die Zeit nach dem Einschalten
const long blinkintervall = 555; //32 Bit-Speicherplatz für den Blink-Intervall-Konstante
void setup()
{
pinMode(Blink_R, OUTPUT); //Blinkerlampenport recht auf Ausgabe schalten
pinMode(Blink_L, OUTPUT); //Blinkerlampenport links auf Ausgabe schalten
pinMode(Ruecklicht_R, OUTPUT); //Rücklicht links-Port auf Ausgabe schalten
pinMode(Ruecklicht_L, OUTPUT); //Rücklicht links-Port auf Ausgabe schalten
pinMode(Bremslicht_L, OUTPUT); //Bremslicht-links-Port auf Ausgabe schalten
pinMode(Bremslicht_R, OUTPUT); //Bremslicht-links-Port auf Ausgabe schalten
pinMode(S_Fahrlicht, INPUT_PULLUP); //Port für den Fahrtrichtungsschalter auf Eingabe mit Pullup-Wiederstand Schalten
pinMode(S_Blink_R, INPUT_PULLUP); //Port für den Blinkschalter-rechts auf Eingabe mit Pullup-Wiederstand schalten
pinMode(S_Blink_L, INPUT_PULLUP); //Port für den Blinkerschalter-links auf Eingabe mit Pullup-Wiederstand schalter
pinMode(S_Bremslicht, INPUT_PULLUP); //Port für den Bremslichtschalter auf Eingabe mit Pullup-Wiederstand schalten
}
void loop()
{
aktuelleZeit = millis();
if (aktuelleZeit - zurueckZeit >= blinkintervall)
{
zurueckZeit = aktuelleZeit;
if (blinkStatus == LOW)
{
blinkStatus = HIGH;
} else {
blinkStatus = LOW;
}
}
BlinkerRStatus = digitalRead(S_Blink_R);
if (BlinkerRStatus == LOW)
{
digitalWrite(Blink_R, blinkStatus);
} else {
digitalWrite(Blink_R, LOW);
}
BlinkerLStatus = digitalRead(S_Blink_L);
if (BlinkerLStatus == LOW)
{
digitalWrite(Blink_L, blinkStatus);
} else {
digitalWrite(Blink_L, LOW);
}
FahrlichtStatus = digitalRead(S_Fahrlicht);
if (FahrlichtStatus == LOW)
{
digitalWrite(Ruecklicht_L, HIGH);
digitalWrite(Ruecklicht_R, HIGH);
} else {
digitalWrite(Ruecklicht_L, LOW);
digitalWrite(Ruecklicht_R, LOW);
}
BremslichtStatus = digitalRead(S_Bremslicht);
if (BremslichtStatus == LOW)
{
digitalWrite(Bremslicht_L, HIGH);
digitalWrite(Bremslicht_R, HIGH);
} else {
digitalWrite(Bremslicht_L, LOW);
digitalWrite(Bremslicht_R, LOW);
}
}
#2: (Kommentare bereinigt)
#include <LiquidCrystal> //LCD-Bibliothek laden
LiquidCrystal lcd(34, 32, 30, 28, 26, 24); //In dieser Zeile wird festgelegt, welche Pins des Mikrocontrollerboards für das LCD verwendet wird (Am besten erstmal nicht verändern).
void setup()
{
lcd.begin(16, 2); //Im Setup wird angegeben, wie viele Zeichen und Zeilen verwendet werden. Hier: 16 Zeichen in 2 Zeilen.
}
void loop()
{
lcd.setCursor(0, 0); //Startposition der Darstellung auf dem LCD festlegen. lcd.setCursor(0,0) bedeutet: Erstes Zeichen in der ersten Zeile.
lcd.print("Turbo"); //Dort soll der Text erscheinen. Der Befehl lcd.setCursor ist dem Mikrocontrollerboard durch das Aufrufen der Bibliothek bekannt.
lcd.setCursor(0, 1); // lcd.setCursor(0,1) bedeutet: Erstes Zeichen in der zweiten Zeile.
lcd.print("[Ein] [Aus]"); //Dort soll dann der Text auftauchen.
}
So, worin besteht nun das Problem?
Wenn z.B. angemeckert wird, daß 'setup()' öfter vor kommt - ja, soll's nicht - die Zeilen beider setup()-Blöcke kommen zusammen.
Gleiches bei loop()?
Auch hier: Beide Inhalte in EINE Loop kopieren.
Damit der Kram 'nebeneinander' laufen kann, muß man blockierenden Code vermeiden, delay() ist ein gute Beispiel, wie's nicht klappt.
Auch darf man nicht auf einen Tastendruck oder Ähnliches warten - wenn die Taste gedrückt ist, diese Info 'mitnehmen', sonst eben nicht.
Mit dieser Info kannst Du dann entscheiden, ob irgend ein Code ausgeführt wird - im Endeffekt machst Du Etwas, wenn die Taste gedrückt wird - aber hier wartest Du nicht darauf, daß endlich der Taster betätigt wird, wodurch das restliche Programm weiter arbeiten kann.
Aber erst Mal genug - sollte ich Dir noch nicht geholfen haben, wäre eine Beschreibung Deines Broblem und Deines Lösungsansatz interessant.
MfG