Forum

Einloggen | Registrieren | RSS  

Noch mal Sensortaste (Schalter) (Elektronik)

verfasst von olit(R) E-Mail, Berlin, 11.05.2017, 16:30 Uhr

» »
» » »
» Ist ja mächtig was los in deinen Schaltbildern. Wenn du die Funktionen von
» immerhin 5 Timern 555 mit einem geeigneten Mikrokontroller realisieren
» würdest, wäre es übersichtlicher (ich habe eben immer die Serienfertigung
» im Kopf).;-)

Na ja: Zwei Timer sind für die Fototransistoren.
Und ein Timer sorgt dafür, dass bei Spannungseinsenkungen aus dem Netz, der Prozessor nicht in den Programmiermodus fällt.
Da der µC die Fototransistoren, die wenige Millimeter Abstand haben, ständig im Auge behalten muss, damit ihm nichts entgeht. Wird der 100ms Impuls von einem 555 übernommen. Das gleiche gilt für die Blinkende Besetzt LED.

Am Ende des Programms wird noch mal eine Zeitverzögerung notwendig.
#Abwarten 'rund 0,6s Abwarten ob es nur eine Kurze Freigabe zwischen den Beinen war, bzw. die Person zurück ging,' oder beim Rücktritt nur einen Fototransistor erwischt.

Diese Verzögerung wird durch ein dauerndes Durchlaufen einer “For next“ schleife realisiert, in der beide Fototransistoren ununterbrochen abgefragt werden.

Mann könnte zwei 555 sparen, wenn man die Nebenfunktionen durch einen Zweiten µC realisieren würde.

Da die Formatierung im ELKO nicht übernommen wird ist es etwas unübersichtlich.


' Programm Badlichtschranke
' Das Programm beherrscht auch super Chaos!

'Initialisierung:
'Eingänge werden on off gelesen! Oder wait… bzw.(wait not…) 'Bei der Programmeinspielung in die UNIT -
define au Port[1] 'Sensor außen: ist bei Freier Schranke H 'mit Programmierstecker trennen
define in Port[2] 'Sensor innen: ist bei Freier Schranke H 'mit Programmierstecker trennen
define Strahl Port[3] 'Der Eingag ist = H, wenn beide Sensoren Licht empfangen (freie Schranke)
define MOS Port[6] 'Abfrage der Ansteuerung des Schalttransistor vom IC-555 Ausgang

'Ausgänge: Werden auf 1 oder 0 gestellt
define Imp Port[4] 'Impuls zum starten des Timers IC-555 für Stromstoßrelais
define LED Port[5] 'Steuert die Frei- und Besetzt-LED rot/grün

'Speicher: Bitt werden on off geschaltet!!!!!!!!!!!!!!
define betreten BIT [1] 'Speichert die Richtung beim Betreten on=Rein off=Raus
define verlassen BIT [2] 'Speichert die Richtung beim Verlassen on=Rein off=Raus
define Licht BIT [3] 'Virtueller Lichtspeicher

define drin Byte [2] 'Virtuelle Personen. Wenn Personen im Bad sind, ist "drin" >0 aber <5
dinefe z Byte[3] 'Zählbyte für "for : next Schleifen"

'Grundstellung:
Imp=1 ' Timer IC555 Verlangt einen L Impuls zum starten. Also H Pegel
LED=1 ' rote LED leuchtet. Schranke noch blockiert!
Licht=off ' virtuelles Badlicht ist aus wenn off ist: also 0
drin=0 ' Keine virtuelle Person im Bad. drin-Byte = 0
z=0
Pause 75 ' 1,5s warten bis der LED Stromwandler angelaufen ist
LED=0 ' Grüne LED leuchtet (frei)

'Programmanfang:
'Das, dass Programm beim Start durch die Marke "#Ausschalten" läuft Ist wurst, da die Ausschaltbedingung nicht erfüllt ist
#Ausschalten 'nach einem ½REIN-RAUS Malör! EIN-AUS
if Licht=on and drin=0 then Dunkel ' &#61503; Licht ist ein aber keiner mehr im Bad. Zum #Dunkel schalten springen

#Ruheschleife
if in=off then Rausschleife ' &#61479; Richtung raus Betreten
if au=off then Reinschleife ' &#61503; Richtung rein Betreten
Goto Ruheschleife ' &#61546;

#Rausschleife
betreten=off 'Richtung raus speichern
if au=off and in=off then Verlassenschleife ' &#61503; beide Sensoren unterbrochen
if Strahl=on then Ruheschleife ' &#61501; Person zog sich zurück (Das ist die Fliege! &#61514;)
#Goto Rausschleife ' &#61546;

#Reinschleife
betreten=on 'Richtung rein speichern
if au=off and in=off then EIN ' &#61479; beide Sensoren unterbrochen zum #EIN (schalten) springen
if Strahl=on then Ruheschleife ' &#61501; Person zog sich zurück (Das ist die Fliege! &#61514;)
Goto Reinschleife ' &#61546;

#EIN
If MOS=on and drin=0 then Umschalten ' &#61503; MOS=on, für RAUS-REIN Malör!
If drin=0 then EINschalten ' &#61503; Nur bei 1. Person Licht einschalten. Zum #EINschalten springen

#Verlassenschleife 'in welche Richtung wird die Schranke verlassen?
if au=on then rein ' &#61479; zur #rein Marke springen
if in=on then raus ' &#61503; Zur #raus Marke springen
Goto Verlassenschleife ' &#61546;

#rein
verlassen=on 'Richtung rein verlassen Speichern
Goto warten ' &#61503; #raus überspringen und zur Warteschleife springen

#raus
verlassen=off 'Richtung raus verlassen Speichern.

#warten ' Warten auf vollständige Freigabe des Lichtstrahles.
if au=off and in=off then Verlassenschleife ' &#61501; (0:0) Person Steht wieder voll in der Schranke. (durch Lücke oder Rücktritt)
if Strahl=on then Abwarten ' &#61479; Lichtschranke ist wieder frei.
Goto warten ' &#61546;

#Abwarten 'rund 0,6s Abwarten ob es nur eine Kurze Freigabe zwischen den Beinen war, bzw. die Person zurück ging,
For z=0 to 255 ' oder beim Rücktritt nur einen Fototransistor erwischt.
if Strahl=off then warten ' &#61501;
next
For z=0 to 255
If Strahl=off then warten ' &#61501;
next 'Da z nur ein Byte hat, muss die For-Next Schleife 6&#61620;255=1530 mal durchlaufen werden.
For z=0 to 255 ' [28-1= 255]
If Strahl=off then warten ' &#61501;
next
For z=0 to 255
If Strahl=off then warten ' &#61501;
next
For z=0 to 255
If Strahl=off then warten ' &#61501;
next
For z=0 to 255
If Strahl=off then warten ' &#61501;
next

' Auswerten:
if betreten <> verlassen then Ausschalten ' &#61501; ungleich: Richtungswiderspruch!
if betreten=off and Verlassen=off then Rückschieben ' &#61503; Person subtrahieren (Vorschieben überspringen.)

if drin=3 then drin=4
if drin=2 then drin=3 'Person wird registriert
if drin=1 then drin=2
if drin=0 then drin=1
Goto Ruheschleife ' &#61501;

#Rückschieben 'Person wird subtrahiert
if drin=1 then Schalten ' &#61479; Zur Marke #Schalten springen
if drin=2 then drin=1
if drin=3 then drin=2
if drin=4 then drin=3
Goto Ruheschleife ' &#61501;

#Schalten
drin=0 'Letzte Person verließ das Bad. Also Person Löschen und anschließend ausschalten (&#61479; #Dunkel)

#Dunkel 'Einsprung bei wieder Ausschalten nach REIN-RAUS Malör
tog Imp: tog Imp: Licht=off: LED=0 'Licht AUS, Virtuell aus und LED grün (frei)
Goto Ruheschleife ' &#61501;

#EINschalten 'Erste Person hat Schranke von draußen voll unterbrochen (noch nicht freigegeben): sofort einschalten
tog Imp: tog Imp: Licht=on: LED=1 'Licht EIN, Virtuell ein, und LED rot (besetzt)
Goto Verlassenschleife ' &#61501; Die Person ist ja noch im Schrankenbereich.

#Umschalten 'Wieder Einschalten nach RAUS-REIN Malör! AUS-EIN
wait not MOS 'warten bis der IC-555 den MOS Transistor absteuert MOS=0!
Pause 2 '40ms Erholzeit für IC-555 und Stromstoßrelais
tog Imp: tog Imp: Licht=on: LED=1 'Licht EIN, Virtuell ein und LED rot (besetzt)
Goto Verlassenschleife ' &#61501; Die Person ist ja wieder im Schrankenbereich.



Gesamter Thread:

Noch mal Sensortaste (Schalter) - olit(R), 11.05.2017, 09:29 (Elektronik)
Noch mal Sensortaste (Schalter) - HDT(R), 11.05.2017, 10:15
Noch mal Sensortaste (Schalter) - olit(R), 11.05.2017, 10:28
Noch mal Sensortaste (Schalter) - HDT(R), 11.05.2017, 11:20
Noch mal Sensortaste (Schalter) - olit(R), 11.05.2017, 13:15
Noch mal Sensortaste (Schalter) - Altgeselle(R), 11.05.2017, 13:44
Noch mal Sensortaste (Schalter) - olit(R), 11.05.2017, 14:04
Noch mal Sensortaste (Schalter) - Altgeselle(R), 11.05.2017, 14:13
Noch mal Sensortaste (Schalter) - olit(R), 11.05.2017, 14:44
Noch mal Sensortaste (Schalter) - Altgeselle(R), 11.05.2017, 15:35
Noch mal Sensortaste (Schalter) - olit(R), 11.05.2017, 16:30
Noch mal Sensortaste (Schalter) - HDT(R), 11.05.2017, 17:00
Noch mal Sensortaste (Schalter) - olit(R), 11.05.2017, 17:06
Noch mal Sensortaste (Schalter) - schaerer(R), 11.05.2017, 18:03
Noch mal Sensortaste (Schalter) - olit(R), 11.05.2017, 18:16
Noch mal Sensortaste (Schalter) - schaerer(R), 11.05.2017, 18:24
Noch mal Sensortaste (Schalter) - olit(R), 12.05.2017, 09:18
Noch mal Sensortaste (Schalter) - matzi682015(R), 12.05.2017, 15:53
Noch mal Sensortaste (Schalter) - olit(R), 12.05.2017, 16:35
Noch mal Sensortaste (Schalter) - HDT(R), 11.05.2017, 18:32
Noch mal Sensortaste (Schalter) - olit(R), 11.05.2017, 18:46
Noch mal Sensortaste (Schalter) - HDT(R), 11.05.2017, 21:06
Noch mal Sensortaste (Schalter) - olit(R), 11.05.2017, 21:21
Noch mal Sensortaste (Schalter) - bigdie(R), 12.05.2017, 06:53
Noch mal Sensortaste (Schalter) - Strippenzieher(R), 11.05.2017, 15:05
Noch mal Sensortaste (Schalter) - olit(R), 11.05.2017, 15:23
Noch mal Sensortaste (Schalter) - matzi682015(R), 12.05.2017, 01:45