Go Down

Topic: 2 Fragen (Read 1 time) previous topic - next topic

julivehs

Hallo alle zusammen.

Ermal entschuldige ich mich für den blöden Themennamen, aber mir ist nichts besseres eingefallen. Alo auf jeden Fall habe ich mal wieder ein paar Fragen:

1. Ich habe vor einen Arduino mit einem Button hochzufahren. Das soll heißen, dass ich diesen Button bspw. 3 Sekunden drücke und der Arduino dann erst mit seinem Code beginnt. Bei kürzerem betätigen des Buttons soll nichts passieren. Würdet ihr dieses Problem im Code realisieren oder gibt es für diesen Zweck einen IC oder ähnliches?

2. Ich möchte auf einem Pin ein dauerhaftes Signal haben und das wäre natürlich auch super einfach realisierbar, aber das würde ich wegen des Stromverbrauches lieber vermeiden, da es voraussichtlich länger laufen soll. Ich habe mir daher überlegt, ob es ein Bauteil gibt, das mir einen kurzen Impuls in ein dauerhaftes Signal ändert und wenn ich wieder ein Impuls gebe, das sich das dauerhafte Signal abschaltet?


Danke schonmal für alle Antworten

LG Julian

Jomelo

#1
Jul 23, 2016, 08:38 pm Last Edit: Jul 23, 2016, 08:40 pm by Jomelo
Zu Frage 1:
Im Code lässt sich das nicht lösen, da ja der Code erst ausgeführt wird wenn der Arduino läuft.
Beschreib mal was genau du vor hast. Das klingt gerade nach unfug.

Zu Frage 2:
Such mal nach einem RS Flipflop.

Wenn du Energiesparen willst, dann beschäftige dich mit Sleep Modi.
while(!success){try++;}

julivehs

#2
Jul 23, 2016, 09:02 pm Last Edit: Jul 23, 2016, 09:18 pm by julivehs
Zu 1: Mein Arduino soll einen Code ausführen (ist eigentlich egal welcher). Und dieser eine Button soll sowohl als Ein- als auch als Ausschaschalter dienen. Wenn ich ihn 3 Sekunden drücke startet der Arduino meinen Code. Und wenn er wieder gedrückt wird, wird der Arduino ausgeschaltet. Aber meiner Meinung nach dürfte es auch im Code direkt am Anfang mit Debounce realisierbar sein.

Zu 2: Danke ich werde mich mal einlesen...

julivehs

Ich habe eben selber zu Frage 1 noch eine Möglichkeit entdeckt: http://www.mikrocontroller.net/topic/247070

Genau so habe ich es mir auch überlegt.

HotSystems

Ich habe eben selber zu Frage 1 noch eine Möglichkeit entdeckt: http://www.mikrocontroller.net/topic/247070

Genau so habe ich es mir auch überlegt.
Wenn du deine Probleme lösen könntest, ist es ok.
Andernfalls solltest du die gewünschten Funktionen etwas besser beschreiben.

Z.B. soll der Arduino ständig laufen und per Taster dein Programm gestartet werden, oder soll dann erst der Arduino eingeschaltet werden?
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

uwefed

zu 1
Ist das Batteriebetrieben? Falls nein dann soll der Arduino auf den taster warten und wenn er 3 sekunden gedrückt ist den rest des Sketches ausführen.
Falls er Batteriebetrieben ist dann keinen Arduino nehmen (hat zuviele Stromverbraucher drauf) sondern einen nackten ATmega und in Sleepmodus auf  Taste warten.

Zu 2
Bitte besser beschreiben. Welcher Stromverbrauch?

Grüße Uwe

julivehs

Erstmal danke für alle weiteren Antworten...

zu 1: Ja ich möchte es mit einer Batterie betreiben und der Arduino soll erst gar keinen Strom haben. Erst wenn ich den "Hochfahr-Button" für 3 Sekunden drücke soll er Strom bekommen und dann den  Code starten. Dazu habe ich mir überlegt, dass ich das ja einfach den Button mit Debounce abfragen kann und den Arduino sich dann selbstständig über einem Transistor mit Strom versorgt. Und wenn ich den Button dann später wieder 3 Sekunden drücke, dass er dann den Transistor einfach deaktiviert.

zu 2: Ja, das hier ist auch batteriebetrieben. Das RS-Flip-Flop, das Jomelo mir schon empfohlen hat, scheint mir genau das zu sein, was ich brauche. Oder denkt jemand, dass es eine bessere Lösung gibt?

rpt007

Quote
Dazu habe ich mir überlegt, dass ich das ja einfach den Button mit Debounce abfragen kann
Und wie stellst du dir vor, dass der Button mit Debounce abgefragt werden soll, wenn nicht INNERHALB eines Arduino Codes?

Um den Abfrage-Code ständig abfragen zu lassen, muss ein sketch in der loop laufen und es ist dem Ardu egal, ob da ein Button abgefragt wird oder er zusätzlich noch ein paar Rechenoperationen zum Zeitvertreib anstellt - er verbraucht immer Strom, um die Abfrage-Loop am Leben zu halten.

Folge Uwe's Rat und arbeite mit einem Atmel-Chip, der im sleep mode auf Tastendrücke wartet. Dann werden nur uA verbraucht anstelle von mA.
Before you ask:
Did you really read and understand How to use this forum ?
AND:
Do you have already some solution or is a part of the problem sitting in front of the screen?  :)

HotSystems

Erstmal danke für alle weiteren Antworten...

zu 1: Ja ich möchte es mit einer Batterie betreiben und der Arduino soll erst gar keinen Strom haben. Erst wenn ich den "Hochfahr-Button" für 3 Sekunden drücke soll er Strom bekommen und dann den  Code starten. Dazu habe ich mir überlegt, dass ich das ja einfach den Button mit Debounce abfragen kann und den Arduino sich dann selbstständig über einem Transistor mit Strom versorgt. Und wenn ich den Button dann später wieder 3 Sekunden drücke, dass er dann den Transistor einfach deaktiviert.
Ich weiß nicht, wie du es mit Debounce lösen willst, wenn der Arduino noch nicht läuft.
Du musst eine Schaltung aufbauen, die vor den Arduino kommt und diesen erst mit Spannung versorgt, nachdem du 3 Sek. auf eine Taste gedrückt hast. Da kannst du Debounce noch nicht verwenden.

Mach es mit einem NE555, da kannst du eine Zeit einstellen, nachdem du per Taste ein Signal an den Eingang lieferst. Natürlich geht es auch nur mit Transistoren. Aber ich vermute fast, das wird zu schwierig.

Quote
zu 2: Ja, das hier ist auch batteriebetrieben. Das RS-Flip-Flop, das Jomelo mir schon empfohlen hat, scheint mir genau das zu sein, was ich brauche. Oder denkt jemand, dass es eine bessere Lösung gibt?
Auch das kannst du mit dem NE555 lösen. Da kannst du dann sogar den NE556 (2 Stk. in einem)  verwenden.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

SkobyMobil

Hallo,
das sollte mit einem Relais und einem RC-Glied möglich sein.
Wenn Du den Taster drückst, dann braucht es über das RC-Glied 3 Sekunden bis
das Relais anzieht und in Selbsthaltung geht.
Wenn der Arduino dann läuft wird der Taster abgefragt. Nach druck auf den
Tatser wartet der Arduino 3 Sekunden und hebt die Selbsthaltung wieder auf.
Selbsthaltung geht auch mit 2 Transistoren.
Müßte man sich mal aufzeichnen.
Gruß und Spaß
Andreas
die zweite Maus bekommt den Speck...

julivehs

Danke für alle weiteren Antworten und Möglichkeiten. Ich werde mal alles ausprobieren und euch dann irgendwann davon berichten...

HotSystems

Danke für alle weiteren Antworten und Möglichkeiten. Ich werde mal alles ausprobieren und euch dann irgendwann davon berichten...
Dabei viel Erfolg.
Ich bin gespannt auf deine Rückmeldung.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

rpt007

Quote
das sollte mit einem Relais und einem RC-Glied möglich sein.
Wenn Du den Taster drückst, dann braucht es über das RC-Glied 3 Sekunden bis
das Relais anzieht und in Selbsthaltung geht.
Wenn der Arduino dann läuft wird der Taster abgefragt. Nach druck auf den
Taster wartet der Arduino 3 Sekunden und hebt die Selbsthaltung wieder auf.
Gehen tut das sicherlich; aber, da hier mit Batterien gearbeitet wird und ich davon ausgehe, dass die Kapazität eine Rolle spielt, würde für mich eine Schaltung mit Relais eher ausscheiden, da sowohl beim Laden des Kondensators als auch beim Halten des Relais etliche mA fließen werden.

Die von Uwe skizzierte Lösung mit dem sleep-Modus gefällt mir aus energetischer Betrachtung am besten; egal, schau'n wir mal, was die Rückmeldung ergeben wird.
Before you ask:
Did you really read and understand How to use this forum ?
AND:
Do you have already some solution or is a part of the problem sitting in front of the screen?  :)

julivehs

Hallo mal wieder. Ich habe euch ja versprochen eine Rückmeldung zu geben. Bis jetzt bin ich leider nicht dazu gekommen und auch in nächster Zeit kann ich es wahrscheinlich noch nicht machen. Irgendwann werde ich es aber auf jeden Fall testen und euch davon berichten.

Go Up