INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 1 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Zwei Schalter welche sich beinflussen
13.07.2019, 20:17 (Dieser Beitrag wurde zuletzt bearbeitet: 13.07.2019 20:21 von Twix.)
Beitrag #1
Zwei Schalter welche sich beinflussen
Hallo,

ich bin ganz neu hier und erst einmal ein wenig gelesen.
Ich bin nun durch ein Hobby-Projekt auf den Arduino gekommen.

LED blinken lassen, ein Schalter ein Relais schalten lasse usw. hab ich alles
schon hin bekommen. Allgemeiner Programmcode ist mir nicht ganz fremd,
sind aber mehrere Jahrzehnte her.

Nun zu meinem anliegen.
Ich möchte das beim drücken ein Drucktaster01 eine Variable hochzählt (1 bis 3) und abhängig
von diesem Variable soll beim betätigen des Drucktaster02 :

bei 1 das Relais einmal hin und her schalten
bei 2 das Relais drei mal hin und her schalten
bei 3 das Relais permanent hin und her schaltet

Das mit Drucktaster01 bekomme ich irgendwie hin.
Aber da alles in einem permanenten loop läuft hab ich Verständnisschwierigkeiten wie ich das Relais nur einmal oder dreimal schalten lassen kann.

Ich brauch hier ein paar Stichworte über was ich mich schlau machen sollte.

Danke !
Twix ..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.07.2019, 20:23
Beitrag #2
RE: Zwei Schalter welche sich beinflussen
Stichworte sind Variable als Zähler laufen lassen, die dein Relais entsprechend oft schaltet.
Und "BlinkWithoutDelay" anschauen, damit du keine delays einsetzt, die deinen Sketch blockieren und damit nicht lauffähig machen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.07.2019, 20:33
Beitrag #3
RE: Zwei Schalter welche sich beinflussen
Hallo Dieter,

Vielen Dank für Deine Antwort ... ich glaube ich verstehe.
Dann abhängig von dem Schalterzustand (geschlossen / offen) die hochzählende Variable wieder nullen ?

Gruß
Twix ..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.07.2019, 20:38
Beitrag #4
RE: Zwei Schalter welche sich beinflussen
(13.07.2019 20:33)Twix schrieb:  Hallo Dieter,

Vielen Dank für Deine Antwort ... ich glaube ich verstehe.
Dann abhängig von dem Schalterzustand (geschlossen / offen) die hochzählende Variable wieder nullen ?

Gruß
Twix ..

Nullen kannst du, wenn die Zahl über einen von dir gewählten Wert geht.
Beispiel:
Code:
if (x > 3)
{
x = 0;
}

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.07.2019, 09:11 (Dieser Beitrag wurde zuletzt bearbeitet: 14.07.2019 09:14 von MicroBahner.)
Beitrag #5
RE: Zwei Schalter welche sich beinflussen
Das ist eigentlich eine typische Aufgabe für einen 'endlichen Automaten'. Das ist ein Prinzip, mit dem man sehr viele Aufgaben für den Arduino lösen kann.
Beim Zurücksetzen deines Zählers musst Du aufpassen, dass es dann nicht gleich wieder von vorne losgeht, denn das soll es ja erst beim nächsten Tastendruck. Aber auch das lässt sich mit so einem Automaten elegant lösen.

Für meine Modellbahnkollegen habe ich mal ein kleines Tutorial dazu geschrieben. Ist zwar alles im Stile eines Ovals für eine elektrische Eisenbahn ( der loop Wink ) erläutert, aber vielleicht hilft es Dir auch ein wenig.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.07.2019, 22:10
Beitrag #6
RE: Zwei Schalter welche sich beinflussen
Nabend,

hmm .. also ich hab mir das "BlinkWithoutDelay" einmal angeschaut.
Bisher bin ich noch nicht zufrieden, da es, zumindest in einer IF Abfrage, asynchron der Schaltung und des Tasterzustandes läuft.

D.h. wenn ich einen Zähler mitlaufen lasse weil ich z.b. drei Schaltungen (an .. & aus .. = 1 Schaltung) haben möchte kann es vorkommen das wenn ich den Taster los lasse nur 2 1/2 Schaltungen durchgeführt worden sind. Das heißt das Relais ist noch offen.

Zitat:taster1status=digitalRead(taster1);
if (millis() - startzeit_1 >= laufzeit_1 && taster1status == HIGH && zaehler <=4 && modus == 2){
startzeit_1 = millis();
digitalWrite(relais, digitalRead(relais) ^ 1);
zaehler=zaehler+1;
}
if (taster1status == LOW){
zaehler=0;
}

Gruß
Twix ..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.07.2019, 09:04
Beitrag #7
RE: Zwei Schalter welche sich beinflussen
(18.07.2019 22:10)Twix schrieb:  Nabend,

hmm .. also ich hab mir das "BlinkWithoutDelay" einmal angeschaut.
Bisher bin ich noch nicht zufrieden, da es, zumindest in einer IF Abfrage, asynchron der Schaltung und des Tasterzustandes läuft.

D.h. wenn ich einen Zähler mitlaufen lasse weil ich z.b. drei Schaltungen (an .. & aus .. = 1 Schaltung) haben möchte kann es vorkommen das wenn ich den Taster los lasse nur 2 1/2 Schaltungen durchgeführt worden sind. Das heißt das Relais ist noch offen.

Sorry, aber ich durchblicke deinen Code noch nicht.
Evtl. schaust du dir die Beschreibung zu "BlinkWithoutDelay" hier im Forum mal an, da ist es sehr gut und ausführlich beschrieben.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.07.2019, 11:53
Beitrag #8
RE: Zwei Schalter welche sich beinflussen
Bitte stell deinen kompletten (lauffähigen ) Code ein. Mit so einem Fragment kann man nicht wirklich etwas anfangen.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Zwei Sensoren für Zwei Relais Madflo 28 1.112 10.07.2019 13:13
Letzter Beitrag: Tommy56
  Serielle Kommunikation hängt sich auf megamux 17 851 24.04.2019 17:25
Letzter Beitrag: hotsystems
  Variable auf zwei Bytes aufteilen ? huber5093 4 533 05.03.2019 20:17
Letzter Beitrag: Tommy56
  Welche Macro-Statements gibt es? torsten_156 1 379 10.12.2018 20:15
Letzter Beitrag: Tommy56
  Elegoo Mega 2560 R3 lässt sich nicht programieren Union1925 6 1.080 03.12.2018 21:21
Letzter Beitrag: Tommy56
  Aus Zwei mach Eins AndreasOHZ 4 645 22.11.2018 00:41
Letzter Beitrag: Fips
Rainbow Sketch lässt sich nicht editieren HKestermann 3 838 03.11.2018 11:23
Letzter Beitrag: Hilgi
  Programmieren, welche Software ist möglich W-P-Grimma 5 1.657 03.04.2018 16:33
Letzter Beitrag: Tommy56
  Zwei identische I2C sensoren an einem Bus Karli 19 3.038 02.04.2018 22:13
Letzter Beitrag: Harry
  Delay summiert sich auf Moe 7 1.408 26.02.2018 22:50
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste