wollte Euch mal fragen ob mir jemand helfen kann mir eine fertige Schaltung zu erstellen. Ich habe leider gar keine Ahnung wie mann programmiert. Über Bauteile löten usw. kenne ich mich gut aus. Ich habe gehört das würde mit Ard. gehen..
Hier meine Vorstellung:
eine Micro, oder Nano Ard. Schaltung bauen die folgendes kann:
ich löse mit einem Taster ein Miniatur Relais aus das 1 sek. anzieht und dann abfällt. Das ganze soll mit einem kurzen Druck auf den Taster passieren.
wenn ich den Taster länger drücke soll das Relais 1 sek. anziehen und dann abfallen und dann eine einstellbare Pause zb. von 5 sek. machen und dann wieder anziehen 1 sek. und abfallen und immer so weiter bis ich es mit dem Taster stoppe; quasi Invervall oder Zyklus Betrieb. Wenn ich dann wieder anfange zu drücken auf den Taster kann ich dann wählen kurz oder lang Funktion..
Du möchtest "endliche Automaten" bauen, auch wenn du das noch nicht wissen solltest.
Und nein, ich glaube nicht, dass wir deine Arbeit machen wollen.
Ich zumindest nicht.
Mein Rat: Lerne!
Dabei können und werden wir dich unterstützen.
Hallo Stefan,
bitte definiere die Angab langer Tastendruck -> wie lange?
bitte definiere die Vorgabe einstellbare Pause -> wie/womit einstellbar , also willst du die pausenlänge mit nem Poti einstellen, oder willst Du dias nur einmal im Programm hinterlegr haben? Und in welchem Zeitbereich einstellbar, also minimale und maximale Pausenzeit?
Hast Du schon nen Arduino und ein Relais damit Du das Programm testen kannst, wenn ich mich entschlissen würde, Dir zu helfen und Dir ein Beispiel liefere? weil ich würde dann schon Deine Mitarbeit benötigen, zumindest soweit, dass Du mein beispiel tetest und mir sagst ob es ok ist, oder was Du angepasst haben möchtest.
hi erst mal danke für die schnelle antwort und hilfe
langer Tastendruck: länger als 1 sek. denke mal 3 sek.
denke im programm einfacher als mit hardware/poti ja einmal das es gespeichert ist und jedesmal abgerufen werden kann.
mini. Pause ja direkt nachdem das relais abgefallen (1 sek.) ist 5 sek. warten und dann wieder 1 sek. anziehen und sofort abfallen. so wie eine blinker schaltung praktisch nur 5 sek. dazwischen wo das relais nicht angesteuert wird. ja habe ein nano und micro muss aber erst mal schauen wo ich es habe in der wohnung muss suchen. habe gehört mann kann das simulieren mit dem arduino programm bevor mann es real aufbaut
Na z.B. die 1 sek, die das Relais anzieht, nachdem man den Taster berührt hat.
Taste wird gedrückt -> Relais zieht an.
a) Taste wird losgelassen : Relais bleibt angezogen bis die Sekunde um ist, dann Relais aus. fertig.
b) Sekunde ist um, Taste immer noch gedrückt: Relais fällt ab, Intervall wird gestartet.
Die einstellbare Intervalldauer könnte man mit diesem dauergedrückten Taster einfach realisieren: Sobald man endlich loslässt, ist die Intervallzeit definiert und abgelaufen, das Relais zieht im Modus "Intervall" wieder für 1 sek, an.
Bisschen weniger intuitiv ist, dass man wissen muss, dass es diesen Intervall-Modus gibt und dass der Arduino gerade in diesem Zustand ist, bzw. gewesen ist, wenn man den einzigen Taster erneut drückt. (Wenn auf Tasterdruck das Relais nicht kommt, wird es vorläufig nicht wieder kommen, weil gerade der Intervall-Modus abgeschaltet wurde.)
Ob man den Taster generell entprellt, oder nur da wo erforderlich -> Ende Intervall-Modus wird sofort erkannt, der neue Zustand (Aus-Warten auf Taster) darf erst aktiv werden, wenn die Entprellzeit nach dem Loslassen des Tasters (!) vorbei ist.
Sind übrigens noch mehr Unklarheiten:
Während Relais noch angezogen ist, wird der Taster erneut gedrückt
Vorschlag- Nichts tun, abwarten was beim Ende der 1sek. los ist
Sollte es eine Mindestzeit für das Intervall geben? ( z.B. min. 1 sek Pause )
Wenn der Taster 1,2 sek gedrückt wurde, ist das noch ein etwas zu langer kurzer Einzelbefehl oder eine zu kurze Intervall-Anforderung?
Vor 50 Jahren hat mal ein Kumpel versucht, sowas ähnliches patentieren zu lassen und an VW für eine Scheibenwischer-Intervall Geschichte zu verkaufen.
Stichwort: Ein echter Schalter ist erheblich teurer als 10 Zeilen Code in einem sowieso vorhandenen Controller.
Hat beides ( Patent / Deal ) nicht geklappt, soweit ich weiß.
Mach es Hintereinander dann sind das keine 20 Zeilen schätze ich.
Z.b. so.
Wenn der Taster gedrückt ist, setzt du eine Variable mit den Millis() Wert.
Wenn der Taster losgelassen wird, berechnest du die Zeit mit Hilfe der Variable.
Und Löst DANN mit einer einfachen If-Then-Else Abfrage das Relais aus.
Eine Steuervariable regelt dann eine Übersteuerung. z.b. Wenn sie gesetzt ist, ist keine weitere Tasterabfrage möglich, bzw. der Taste bekommt eine neue Funktion. Je nach Wunsch.
Fertig ist.
JA, ich könnte das mal eben Programmieren. Aber ich mache keine Scripte. Erst recht nicht, wenn ich den Verdacht habe, das ich für jemanden die Hausaufgaben mache. Die Aufgabenstellung klingt nämlich gewaltig danach.
Kleiner Tipp. Ob ich eine der fertigen Relaisplatinen ansteuere oder eine LED ist völlig egal. Ich muss nur den passenden Pin auf High bzw. Low setzen.
IDLE
Mit kurzem Tastendruck kommst in SINGLE
Mit langem Tastendruck kommst in INTERVAL
SINGLE - ein kurzer Impuls
nach 1 sec kommst zurück nach IDLE
INTERVAL - ein kurzer Impuls
nach 1 sec kommst in WAIT
mit kurzem Tastendruck kommst wieder retour ins IDLE (aus)
WAIT - da passiert nichts außer Warten und Taster lesen
nach 5 sec kommst zurück in INTERVAL
mit kurzem Tastendruck kommst wieder retour ins IDLE (aus)
Wenn es das ist - imho kann man das übersichtlich mit "wenigen" Code Zeilen schreiben.
Wenn es falsch ist - solltest du beschreiben was anders sein soll.
Ich habe ein paar Status mehr. Folgendes Beispiel schaltet das Relais für 1 Sekunde bei kurzem Tastendruck an. Bei langem Tastendruck (3 Sekunden) geht das Relais in eine Intervalschaltung -> 1 Sekunde an, 5 Sekunden aus. Außerdem wird eine grüne LED angeschaltet, die anzeigt, dass der "Intervall-Modus" aktiv ist. Ein kurzer Tastendruck schaltet diesen Modus wieder aus:
Hi Kai, wooow genauso hatte ich mir die Schaltung vorgestellt du bist ein Genie!! (-:
ich muss erst mal schauen wo ich den nano oder Micro habe irgendwo in meiner wohnung muss er sein. ansonsten bestelle ich mir einen neuen.
An welcher stelle im programm kann mann zb. den intervall etwas länger oder kürzer machen den Wert von den Sek. her gesehen? also zb. 3 Sek. oder 4 oder 6 sek. oder 8 sek.?
ich muss mir nur noch das Programm runterladen auf den PC und den Sketch neu anlegen/Erstellen/Ordner im Programm und dann einpflegen/kopieren in den Arduino mittels USB Kabel richtig? wo finde ich das Programm?