PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zwei unabhängige Blinklichter programmieren



Brantiko
19.10.2006, 17:37
Hallo,
Ich habe ein kleines Porgramm geschrieben, welches eine LED in einem bestimmten Rythmus zum leuchten bringt (zwei mal blitzen, kurze pause)
Jetzt möchte eine zweite LED genauso Blinken lassen, alerdings asychron zu der ersten LED.
Sie sollen also unabhängig voneinander Blinken, so dass sie sich mal überschneiden, mal abwechselnd Blinken etc.

So als wenn ich zwei Blinkende LEDs mit zwei NE555 kreisen nebeneinander Platziere. Trotz gleicher Bauteile werden sich die LEDs nach eieniger zeit in ihrem ryhtmus überschneiden..

Wie bekomme ich sowas hin?

Gruss

Alex

dieta
19.10.2006, 18:09
Mal ein Vorschlag: (Pseudo-Code):



array muster1 = {60, -1, 2, -1} // Für Blinkrhytmus: ____ ... _____#__#____ ... _____#__#____ ... _____#__#____ ... _____#__#____ ... _____#__#

array muster2 = {3, -9, 3, -90} // Für Blinkrhytmus: _###_####### ... #######_###_####### ... #######_###_####### ... #######_###_####### ... #######


variable lesepos1 = 0
variable lesepos2 = 0
variable wartezeit1 = 0
variable wartezeit2 = 0

wiederhole (endlos)
{

wenn(wartezeit1 == muster1[lesepos1]) dann
{
wartezeit1 = 0
lesepos1 = lesepos1 + 1
wenn (lesepos1 == länge von muster1) dann lesepos1 = 0
wenn (muster1[lesepos] >0) dann lampe1 an sonst lampe1 aus
}

wenn(wartezeit2 == muster2[lesepos2]) dann
{
wartezeit2 = 0
lesepos2 = lesepos2 + 1
wenn (lesepos2 == länge von muster2) dann lesepos2 = 0
wenn (muster2[lesepos] >0) dann lampe2 an sonst lampe2 aus
}

warte 1 sekunde
wenn (lesepos1 ist gerade oder 0) dann wartezeit1 = wartezeit1 +1 sonst wartezeit1 = wartezeit1 - 1
wenn (lesepos2 ist gerade oder 0) dann wartezeit2 = wartezeit2 +1 sonst wartezeit2 = wartezeit2 - 1
}