Hallo zusammen,
ich bin neu dabei und fange gerade an mit dem Programmieren. Ich habe mir das Thema Blink without Delay anhand des Beispiels mit dem Wachmann angesehen und fand das sehr hilfreich. Leider ist das Thema geschlossen.
Grundsätzlich habe ich das wohl verstanden. Aber:
Mein erstes Projekt soll der Leuchtturm Roter Sand sein.
Ich benötige dazu 2 unabhängig blinkende LED:
Die erste ist einfach, da sie 1,25s an und 1,25s aus ist.
Die 2. ist das Problem:
1,25s an, 1,25s aus, 1,25s an, 4s aus. Dann von vorne.
Kann man so etwas überhaupt realisieren?
Viele Grüße
Carsten
In short, you can!
Ja, das geht. Am Besten schreibst Du die 4 Werte in ein Array und nimmst mit dem Index (0 ...3) immer den nächsten Wert als Intervall. Von 3 wieder auf 0.
Gruß Tommy
Wenn Sie Englisch lesen, werden diese Themen sicherlich interessant für Sie sein.
Klar!
Du möchtest endliche Automaten bauen.
bzw. Schrittketten
Vielen, lieben Dank für Eure Tips zunächst!
Wie kurz angerissen, bin ich absoluter Neuling bei der Programmierung. Ich bin zwar Elektromeister und habe etwas mit SPS und Prozessleitsystemen am Rande zu tun gehabt, jedoch nicht in der Tiefe.
Zuerst wollte ich meine Beleuchtung mit einer SPS lösen. Das hatte sich aber erledigt, da SPSen, die sich mit kostenloser Software wie Codesys programmieren lassen, nicht bezahlbar sind. Und noch Lizenzen für jedes Gerät hinzukommen.
Soll heißen:
Es ist viel zu lernen und zu lesen im Winter. Habe mir ein originales Bord und noch ein komplettes Starterpaket mit einem nicht originalen Bord bestellt.
Viele Grüße
Carsten
Schau mal hier:
Aus deinem Link:
Hauptfeuer: festes weißes Feuer und weißer Blitz,
1,25 Sekunden--> Blitz 1,25 Sekunden--> Pause 1,25 Sekunden--> Blitz 4 Sekunden--> Pause
widersprecht den Anfordeungen von Carsten:
Ich benötige dazu 2 unabhängig blinkende LED:
Die erste ist einfach, da sie 1,25s an und 1,25s aus ist.
Die 2. ist das Problem:
1,25s an, 1,25s aus, 1,25s an, 4s aus. Dann von vorne.
und, da hat er schonmal einen Anfang mit dem er weiter basteln kann, Beispiele dazu gibt es genug im Netz. (Ist aber mit delay gemacht).
bist du dir sehr sicher dass das "Unabhängig" sein soll?
ist es nicht eher so, dass sich die zwei Signal synchron verhalten (und daher die letzten 4sec eher ein 4-1,25 sind?).
So lese ich es aus dem Original Text an die Seefahrer vom Beginn an.
Die heutige Kennung ist anders. Damals war sie auch nur weiß. Ein breites blinkfeuer mit großem Winkel und dann links und rechts kleine Feuer mit 2 Blitzen und einer folgenden 4 Sekunden Pause.
Das Projekt in dem Anderen Beitrag mit der bunten Beleuchtung scheint eher von dem heutigen Roten Sand zu sein.
Ich kann mir auch nicht vorstellen, das das unabhängig voneinander ist, das artet ja in ein wildes Geblinke aus. Das kann nicht Sinn und Zweck einer Leuchtturmkennung sein.
Wieso hast Du da zwei unterschiedliche Feuer?
HIer
entnehme ich folgende Tabelle:
Da ist kein zweites Feuer drin, sondern insgesamt 8 beleuchtete Sektoren....
Ich habe es nun nochmals gelesen. Ich verstehe es genau so. Die Nachricht ist aus Oktober 1885. Breites Hauptfeuer mit Blinken gleichlang je 1,25s, zwei Sektoren links und rechts mit 2 Blitzen und 4 Sekunden Pause. Da sich 4 Sekunden nicht durch 1,25 genau teilen lassen, gehe ich von getrennten Klappen aus, die das Petroleumfeuer verschattet haben.
Das ist aber auch nicht das Thema hier, oder?
Ich würde das auch gern abfotografieren aus dem Buch. Ist halt blöd wegen Urheberrechten.
LG Carsten
#include <TaskMacro.h>
constexpr unsigned long kurz {1250};
constexpr unsigned long lang {4000};
Task dauerBlink()
{
constexpr byte pinDauerBlink {13};
taskBegin();
pinMode(pinDauerBlink, OUTPUT);
while(1)
{
digitalWrite(pinDauerBlink,1);
taskPause(kurz);
digitalWrite(pinDauerBlink,0);
taskPause(kurz);
}
taskEnd();
}
Task codeBlink()
{
constexpr byte pinCodeBlink {12};
taskBegin();
pinMode(pinCodeBlink, OUTPUT);
while(1)
{
digitalWrite(pinCodeBlink,1);
taskPause(kurz);
digitalWrite(pinCodeBlink,0);
taskPause(kurz);
digitalWrite(pinCodeBlink,1);
taskPause(kurz);
digitalWrite(pinCodeBlink,0);
taskPause(lang);
}
taskEnd();
}
void setup()
{
}
void loop()
{
dauerBlink();
codeBlink();
}
Die Library findest du in meinen Threads
Das Buch nennen kannste aber schon.
Es soll Leute geben, die eine Bibliothek besuchen. (können)
Ja, so ist es heute. Auch farbig. Ich will es so machen wie 1885.
LG Carsten
Ist das schon die Lösung für mich?
Wie schreibt man das so schnell?
Ich verstehe nur Bahnhof und muss echt viel lernen
Das Buch heißt Leuchtturm Roter Sand.
ISBN 3-86509-334-5
Auf der Seite 65 ist die Nachricht für Seefahrer vom 25.10.1885.
LG Carsten