Schalter mit Verzögerung programmieren

OP #5236781
Lesenswert?

Hallo Leute

ich wollte einen Arduino programmieren.
1
S1   _------_____
2
OU1  _-------____
3
OU2  __-----_____
Also wenn ich den Schalter einschalte

If(S1 == HIGH)

Dann einfach einen Switch case mit 3 States ( Schalter ON,OFF und IDLE)

Das müsste doch klappen? OU muss 0.5 sek verzögert abschalten und OU2 
verzögert einschalten

Mache ich das richtig? Vielen Dank für die Hilfe

Das Problem ist, ich kann einen Switch Case mit einem enum etc 
schreiben, aber beim Arduino mit diesen Libraries komm ich nicht ganz 
mit, kann mir das jemand erklären
(Firma: matzetronics) #5236791
Lesenswert?

Julian M. schrieb:
> aber beim Arduino mit diesen Libraries komm ich nicht ganz
> mit, kann mir das jemand erklären

Niemand zwingt dich, selbst wenn du in der Arduino IDE programmierst, 
die Libraries zu benutzen.
Du kannst 'normales' C programmieren, wenn du dich an die Regeln mit 
loop() usw. hältst, die von der IDE vorgegeben werden. Praktisch kann es 
halt sein, wenn du die millis() Funktion verwendest, um deine 
Verzögerungen zu programmieren und viele finden auch DigitalRead() und 
DigitalOut() interessant. Zwingend ist das aber nicht.
Gast #5236801
Lesenswert?

Hallo Leute. Wie ihr wisst, kann man ja die Switch-cases mit einem Enum
benennen und dann einfach bei den Cases diese gegeben NAmen benutzen.

WIe macht man das beim Arduino? Ich finde keine hilfreichen Infos
Gast #5236810
Lesenswert?

Hier ein Programm aus meiner Wühlkiste, leicht für deine Zwecke 
modifiziert:
1
#include "CombieTimer.h"
2

3
const byte S1   = 2; // Schalter Pin
4
const byte OUT1 = 3; // Ausgang
5
const byte OUT2 = 4; // Ausgang
6

7
EntprellTimer    entprell(20); // Schalter entprellen
8
RisingEdgeTimer  ton(500);     // steigende Flanke wird verzoegert
9
FallingEdgeTimer toff(500);    // abfallende Flanke wird verzoegert
10
 
11
void setup(void) 
12
{
13
  pinMode(S1,INPUT_PULLUP);
14
  pinMode(OUT1,OUTPUT);
15
  pinMode(OUT2,OUTPUT);
16
}
17

18
void loop(void) 
19
{
20
  bool schalter = entprell(!digitalRead(S1)); // invers wg. pullup
21
  digitalWrite(OUT1,toff(schalter));
22
  digitalWrite(OUT2,ton(schalter));
23
}
Die verwendeten Klassen findest du im Anhang.
Angehängte Dateien:
Gast #5237423
Lesenswert?

Hallo zusammen.  Ich hoffe dass ihr mir helfen könnt.
Ich bin ein nur in Sachen Elektronik. ( kenne bißchen die schule und 
mehr nicht.und das war vor 25 jahren. Ich kann zwar unterscheiden 
Transistor  resistor.diode.kondensator. Und kann es zusammenleben. )
also ich versuche gerade ein mikrorelais zu löten. Und es klappt nichts 
da es mir einfaches wissen fehlt.

Ich brauche einen Schalter der einen 3v micro motor  jeder 5- 10 
Sekunden schaltet (ein) füur(1-2 Sekunden.)
das ganze wird von 2 Knopfzellen Batterie betrieben (2 ×3v 》ja Motor 
hält es aus und funktioniert. )
und das soll alles von allein funktionieren sobald Schaltkreis 
geschlossen  wird.
Ich weiß ehrlich nicht nach was ich da suchen soll.
Ich kann alles zusammen löten nach schaltplan.
Wenn es einfache mit SMD geht- dann löten ich SMD zusammen.
Wie gesagt es soll so klein wie möglich sein. Und selbstständig , 
kontinuierlich  arbeiten.
Kann mir da jemand vom Fach  aushelfen???
Den ich bin kein Elektriker. :(((
Gast #5237435
Lesenswert?

Hallo Sheff,

wir helfen hier gerne dabei, kleine Fragen zu beantworten. Aber du 
brauchst jemanden, der für Dich das ganze Gerät entwickelt. Das kostet 
Geld.

Wenn du Geld sparen möchtest musst du selber lernen. Ich bin nicht 
sicher, ob ich deine Anforderung richtig verstanden habe. Ich glaube, du 
kannst das mit einem ICM7555 Mikrochip machen 
(https://www.intersil.com/content/dam/Intersil/documents/icm7/icm7555-56.pdf). 
Sicher findest du dazu auch russische Anleitungen. Falls nicht, dann 
suche nach NE555, denn dieser Mikrochip funktioniert sehr ähnlich. Aber 
für 3V musst du den 7555 nehmen.
Gast #5237765
Lesenswert?

Danke.  Werde ich alles prüfen.  Ich glaube das es ist schon lange 
erfunden. :) klein Motor soll 1 mal in 5-10 Sekunden  arbeiten in der 
Zeit von 1-2 sec.  also 12345 bzzzz und wieder 12345 bzzzz . mehr ist da 
nichts.  Ist also eine Release.  Nur halt alles von 3 bis 6 Volt soll 
funktionieren. Und ohne das ich etwas betätigen  soll.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren