Forum: Mikrocontroller und Digitale Elektronik Zählergesteuerte Relaisschaltung mit Arduino


von BeSo (Gast)


Lesenswert?

Hallo Leute!

Ich bin ganz neu am Arduino und will mir eine Schaltung wie folgt 
bauen/programmieren:

Starte System mit Aus/Ein Schalter --> Spannung ein(nur Hardwaresache)
Sensor geschlossen, erhöhe Variable um 1.
(Variable = 1)
Sensor offen.
Sensor geschlossen, erhöhe Variable um 1.
(Variable = 2)
Sensor offen.
Sensor geschlossen, erhöhe Variable um 1.
(Variable = 3)
Schalte Relais 1 an.
Sensor offen.
Sensor geschlossen, erhöhe Variable um 1.
Schalte Relais 1 aus.
Schalte Relais 2 an.
Sensor offen.
(Variable = 4)
von Vorne Anfangen.

Könnt ihr mir da bitte helfen

Bin ich hiermit schon mal am richtigen Weg:
1
const int buttonPin = 2;     
2
const int gasse1 =  10;      
3
const int gasse2 =  11;      
4
5
int buttonState = 0;         
6
int anzgasse = 0;            
7
8
void setup() {
9
  pinMode(gasse1, OUTPUT);
10
  pinMode(gasse2, OUTPUT);
11
  
12
  pinMode(buttonPin, INPUT);
13
}
14
15
void loop() {
16
  buttonState = digitalRead(buttonPin);
17
18
  if (buttonState == HIGH) {
19
    anzgasse++;
20
  } 
21
22
  if (anzgasse == 3)
23
  {
24
    digitalWrite(gasse1, HIGH);
25
  }
26
27
  if (anzgasse == 4)
28
  {
29
    digitalWrite(gasse1, LOW);
30
    digitalWrite(gasse2, HIGH);
31
    anzgasse == 0;
32
  }
33
  
34
  else {
35
    // turn LED off:
36
    digitalWrite(gasse1, LOW);
37
    digitalWrite(gasse2, HIGH);
38
  }
39
}

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Dein Problem ist?
(... daß Dir die 'Gassen' nur so durchflimmern, da Du nur prüfst, ob der 
Sensor high ist, aber nicht, ob Dieser jemals wieder low wurde)

MfG

PS: anders gefragt: Was soll's denn werden? Vll. gibt es dazu ja schon 
Lösungen, Die Dir entgegen kommen?

von Wolfgang (Gast)


Lesenswert?

BeSo schrieb:
> Könnt ihr mir da bitte helfen

Falls du nicht über einen ausreichend schnellen Logikanalysator 
verfügst, solltest du vor der letzen "}" mal ein
1
delay(1000);
 einfügen, damit du die Änderung der Ausgangszustände ohne Hilfsmittel 
verfolgen kannst. So wie es derzeit programmiert ist, passiert alles 
etwa im 1/50000 Sekunden Takt.

von Bernhard B. (beso)


Lesenswert?

Hallo Patrick!

Vielen Dank für deine Antwort!
Das ganze soll eine Fahrgassenschaltung für eine Sämaschine werden. Ich 
hab da schon längere Zeit gegoogelt aber nicht wirklich einen Code 
gefunden, mit dem ich arbeiten kann...

Hmm... Ich werd mich da noch dahinterklemmen, aber wenn du - ihr - noch 
eine 'kleine' Hilfestellung für mich habt, bin ich gar keinem Böse :D

Vielen Dank nochmal!
Lg

von Bernhard B. (beso)


Lesenswert?

Danke Wolfgang!

Ich hab das
1
 delay(1000);
 mal in den sketch gepackt :D

Lg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.