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:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Spule mit IC L293d geschaltet (Weichenansteuerung)
31.10.2014, 18:48 (Dieser Beitrag wurde zuletzt bearbeitet: 31.10.2014 19:41 von RCudino.)
Beitrag #1
Spule mit IC L293d geschaltet (Weichenansteuerung)
[/b]Hallo zusammen,
folgende Programmierung liegt vor:
Es wird eine Taste abgefragt, die wenn sie 4 mal betätigt wurde zu folgender
Bedingung kommt:
if (counter == 4){ // Taste viermal betätigt
digitalWrite(Relais_A1, HIGH); // Relais A1 wird angesteuert
digitalWrite(Relais_A2, HIGH); // Relais A2 wird angesteuert
digitalWrite(pin2, HIGH); // Pin 2 auf High und pin 3 auf Low zieht eine Spule
digitalWrite(pin3, LOW); // über das IC L 293
delay(500); // 500 milli für den Schaltimpuls
digitalWrite(pin2, LOW); // danach soll keine weiter Ansteuerung erfolgen
digitalWrite(pin3, LOW);

delay (500);
}
Da aber eine Abfrage des Tasters weiterhin erfolgt, liegt immer wieder Spannung
( damit fließt Strom) an der Spule an. Der angezogene Anker bleibt zwar in der
Position , aber Strom durchflossen. Die Lageänderung soll erst bei Taster ( 6mal gedrückt erfolgen).
Dies macht er auch , aber mit dem gleichen umstand wie vorher beschrieben.
Es soll also weiter der Zustand des Tasters abgefragt werden,aber die Schaltung an der Spule
Nur einmal erfolgen.
Gibt es Hilfe?
Mit freundlichen Grüßen

Mit freundlichen Grüßen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.10.2014, 19:40
Beitrag #2
RE: Spule mit IC L293d geschaltet
(31.10.2014 18:48)RCudino schrieb:  Hallo zusammen,
folgende Programmierung liegt vor:
Es wird eine Taste abgefragt, die wenn sie 4 mal betätigt wurde zu folgender
Bedingung kommt:
if (counter == 4){ // Taste viermal betätigt
digitalWrite(Relais_A1, HIGH); // Relais A1 wird angesteuert
digitalWrite(Relais_A2, HIGH); // Relais A2 wird angesteuert
digitalWrite(pin2, HIGH); // Pin 2 auf High und pin 3 auf Low zieht eine Spule
digitalWrite(pin3, LOW); // über das IC L 293
delay(500); // 500 milli für den Schaltimpuls
digitalWrite(pin2, LOW); // danach soll keine weiter Ansteuerung erfolgen
digitalWrite(pin3, LOW);

delay (500);
}
Da aber eine Abfrage des Tasters weiterhin erfolgt, liegt immer wieder Spannung
( damit fließt Strom) an der Spule an. Der angezogene Anker bleibt zwar in der
Position , aber Strom durchflossen. Die Lageänderung soll erst bei Taster ( 6mal gedrückt erfolgen).
Dies macht er auch , aber mit dem gleichen umstand wie vorher beschrieben.
Es soll also weiter der Zustand des Tasters abgefragt werden,aber die Schaltung an der Spule
Nur einmal erfolgen.
Gibt es Hilfe?
Mit freundlichen Grüßen

...nun in solchen Fällen setzt man ein Flag wenn die Aktion einmal erledigt ist und setzt es wieder zurück wenn wieder die Grundstellung erreicht ist.
Nur mal so als Schubbser in die richtige Richtung Big Grin
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.11.2014, 18:34
Beitrag #3
RE: Spule mit IC L293d geschaltet (Weichenansteuerung)
Du brauchst noch ein Bit das die speichert das du es schon mal getan hast (das Weichensetzten)
Code:
if (counter ==4 && done==false){   // springt hier nur ein wenn done auf false hängt

// Dein Code hier rein
done=true;                                    // merken das du schon mal hier warst
}

// jetzt muss du noch definieren wann du wieder done zurücksetzt

if (counter == 6){
// Hier alles rein was beim Counter==6 gemacht werden soll
   if (done==true){  // wenn du im counter==4 warst und aktuell counter==6
      done=flase;      // zurücksetzten deines Merkers
   }
}


Gruß
DerDani
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.11.2014, 20:46
Beitrag #4
RE: Spule mit IC L293d geschaltet (Weichenansteuerung)
Hallo volvodani,
Vielen Dank für die Info. Werde morgen testen und dann kurz berichten.
Lieben Gruß

Mit freundlichen Grüßen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.11.2014, 20:37
Beitrag #5
RE: Spule mit IC L293d geschaltet (Weichenansteuerung)
Programm wurde nun nach Input aus dem Forum wie folgt nun angepasst
int done = true; // zu Anfang definiert

If ( Counter ==4 && done == true){ // erste Abfrage des Tasters nach 4 mal
. betätigen
.
.
done =false; // ans Ende der Abfrage
// die Weiche wurde einmal geschaltet und zieht
keinen Strom mehr

if ( counter == 6 && done== false({ // Schalten der Weiche in anderer
Richtung erfolgt genauso
.
.

done = true;

Die gesamte Abfrage wird also nur einmal durchlaufen und damit weiterer Stromfluß verhindert.
So werden LGB Weichen mit dem L 293 , die ja nur eine Spule haben und durch Umpolen der Spannung geschaltet werden, digital gesteuert.
Ob nun im Programm alles optimal programmiert wurde, kann ich so nicht sagen, aber es funktioniert.

Mit freundlichen Grüßen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.11.2014, 11:22
Beitrag #6
RE: Spule mit IC L293d geschaltet (Weichenansteuerung)
Freut mich zu hören.
Gruß
DerDani
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


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