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
Schrankensteuerung - optische Anzeige
22.10.2014, 20:55
Beitrag #1
Schrankensteuerung - optische Anzeige
Hallo Gemeinde,

für mein Bauhofgelände auf unserem Modellbauparcours habe ich eine Zugangsschranke gebaut. Der für die Schrankenfahrt benötigte Sketch läuft einwandfrei. Damit der optische Eindruck aufgepeppt wird, sollen jeweils eine rote bzw. grüne LED signalisieren ob die Einfahrt offen oder gesperrt ist.

Im Moment sieht es so aus, dass die rote LED dann leuchtet wenn die Schranke zu ist. Wird sie geöffnet, erlischt die rote LED sofort, dafür leuchtet die grüne LED während des Hochfahrens auf und bleibt an wenn die Schranke oben ist. Umgekehrt verhält es sich enebso. Beim Herablassen der Schranke erlischt sofort die grüne LED, die rote geht sofort an und bleibt bei geschlossener Schranke an - bis wieder geöffnet wird.

Frage: wie bekomme ich es hin, dass die rote LED erst dann erlischt wenn die Schranke oben ist?

Gruß
Armin de DO1XXY
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.10.2014, 22:08
Beitrag #2
RE: Schrankensteuerung - optische Anzeige
Hallo Armin,
dafür müßte man deinen Sketch kennen. Einfach mal hier einstellen.
Dann kann man im ganzen darüber schauen.

MfG Lothar
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.10.2014, 08:19
Beitrag #3
RE: Schrankensteuerung - optische Anzeige
zumindest gibt es 2 Möglichkeiten, die Luxusvariante mit Endschaltern und die einfache, die beim Öffnen und Schließen die gemessene Zeit wartet, bis die Signalisierung geändert wird.

Gruß, Stefan . . . . . . //Wo mein Kölbchen dampft, da bin ich unverkrampft.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.10.2014, 08:49
Beitrag #4
RE: Schrankensteuerung - optische Anzeige
Man kann sich mit einer Variablen den Zustand merken.
Byte A
If ( Schranke zu ) A = 0;
If (Schranke Auf ) A = 1;

If ( A == 0 ) && ( Bewegung aus ) Rote LED an; // Schranke unten
If ( A == 1 ) && ( Bewegung aus ) Grüne LED an; // Schranke oben

If ( A == 0 ) && ( Bewegung an ) Rote LED blinkt; // Schranke öffnet
If ( A == 1 ) && ( Bewegung an ) Grüne LED blinkt; // Schranke schließt

Beispiel nur so aus der 1. Reaktion.
Viel Glück
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.10.2014, 10:18 (Dieser Beitrag wurde zuletzt bearbeitet: 23.10.2014 10:21 von do1xxy.)
Beitrag #5
RE: Schrankensteuerung - optische Anzeige
(22.10.2014 22:08)Lothar schrieb:  Hallo Armin,
dafür müßte man deinen Sketch kennen. Einfach mal hier einstellen.
Dann kann man im ganzen darüber schauen.

MfG Lothar

Hallo Lothar,

den Sketch habe ich vergessen einzutragen. Hier ist er:

#include <Servo.h>

/* Steuerung für Zugangsschranke zum Bauhof*/

// Servoparameter vorgeben
int servoPin = 9; // Servo Pin PWM Output
int minPulse = 630; // minimum servo position vertikal
int maxPulse = 1600; // maximum servo position horizontal
int turnRate = 1; // Geschwindigkeit Servodrehung
int refreshTime = 20; // Aktuallisierungs Rate 50Hz = 20ms 1/f
int centerServo; // Mittelstellung
int pulseWidth; // Pulsweite für die Drehrichtung des Servo
long lastPulse = 0; // Zeit des letzen Impulses speichern

// Taster für die Drehrichtung festlegen
int SW1 = 4; // Taster 1 links Schanke auf
int SW2 = 5; // Taster 2 rechts Schranke zu
// LED für Schrankenaktivität
int ampelLED = 2; // LED grün - Schranke auf
int ampelLED2 = 6; // LED rot - Schranke zu

void setup()
{
pinMode(ampelLED, OUTPUT); // grüne LED für Ampel deklarieren
pinMode(ampelLED2, OUTPUT); // rote LED für Ampel deklarieren

pinMode(servoPin, OUTPUT); // Pin 9 als PWM Ausgang für Servo delarieren

pinMode(SW1,INPUT); // Taster 1 als Input deklarieren
digitalWrite(SW1,HIGH); // definiert Ausgang SW 1 als HIGH-aktiv

pinMode(SW2,INPUT); // Taster 1 als Input deklarieren
digitalWrite(SW2,HIGH); // definiert Ausgang SW 1 als HIGH-aktiv

centerServo = maxPulse - (((maxPulse - minPulse)/2)-485);
pulseWidth = centerServo;
}

void loop()
// definiert Ausgang SW 1 als HIGH-aktiv
{
static boolean goLeft = false;
static boolean goRight = false;
static long lastSW1 = 0;
static long lastSW2 = 0;

long now = millis();

// Taster entprellen und links/rechts setzen
if(!digitalRead(SW1))
{
if(now - lastSW1 > 50) goLeft = true;
digitalWrite(ampelLED, HIGH); //grüne LED leuchtet beim Hochfahren der Schranke auf und bleibt bei offener Schranke an
digitalWrite(ampelLED2, LOW); //rote LED erlischt beim Hochfahren der Schranke und bleibt bei offener Schranke aus
}
else
{
lastSW1 = now;
};
if(!digitalRead(SW2))
{
if(now - lastSW2 > 50) goRight = true;
digitalWrite(ampelLED, LOW); //grüne LED erlischt beim Herunterfahren der Schranke auf und bleibt bei geschlossener Schranke aus
digitalWrite(ampelLED2, HIGH); //rote LED leuchtet beim Herunterfahren der Schranke auf und bleibt bei geschlossener Schranke an
}
else
{
lastSW2 = now;
};


// Servo mit der Taste für die Gegenrichtung zurückahren - unterbricht die aktuelle Bewegung
if(goLeft && goRight) {
goLeft = false;

goRight = false;

};

// langsam drehen
if(goLeft) {pulseWidth = pulseWidth - turnRate;}
if(goRight) {pulseWidth = pulseWidth + turnRate;}

// Begrenzung
if(pulseWidth > maxPulse) {pulseWidth = maxPulse;}
if(pulseWidth < minPulse) {pulseWidth = minPulse;}
delay(2);

// Servo ansteuern
if (millis() - lastPulse >= refreshTime)
{
digitalWrite(servoPin, HIGH); // beginnt das Senden von Impulsen an den Servo

delayMicroseconds(pulseWidth); // Impulsbreite für die Drehrichtung

digitalWrite(servoPin, LOW); // beendet das Senden von Impulsen an den Servo

lastPulse = millis();
}
}

(23.10.2014 08:19)Stefan schrieb:  zumindest gibt es 2 Möglichkeiten, die Luxusvariante mit Endschaltern und die einfache, die beim Öffnen und Schließen die gemessene Zeit wartet, bis die Signalisierung geändert wird.

Moin Stefan,

die Lösung mit Endabschaltern ist sicher "elegant", aber nicht i. S. einer Steuerung durch einen Arduino Controller. Die Lösung mit der gemessenen Zeit scheint mir effektiver zu sein.

Gruß
Armin de DO1XXY
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.10.2014, 15:48
Beitrag #6
RE: Schrankensteuerung - optische Anzeige
jo, Armin, würde ich auch so machen. Noch ein Tipp: Wenn du Code einfügst, wird er besser lesbar, wenn du ihn als solchen markierst, das geht mit der
Code:
# im Editorfenster.
       Dann bleibt die
           Formatierung erhalten.......

Gruß, Stefan . . . . . . //Wo mein Kölbchen dampft, da bin ich unverkrampft.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Beispiel: Mega Uhr RTC DS3231 Anzeige auf LCD1602 HaWe 3 4.711 04.08.2015 21:26
Letzter Beitrag: HaWe
  Wattmeter 0-50V 0-25A Anzeige am Pc D.T.Schneiderlein 4 3.143 30.09.2013 22:48
Letzter Beitrag: D.T.Schneiderlein

Gehe zu:


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