Der Nachfolger des WDR-Computerclub mit Wolfgang Back und Wolfgang Rudolph - ...und immer ein Bit übrigbehalten!


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Einbindungen in ConText Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Andreas Rutenberg - 23.03.2020 12:27)
 Als Antwort auf Einbindungen in ConText von Andreas Rutenberg - 8.03.2020 16:12
Hallo Zusammen,

als Abschluss der kleine Odyssee nun das fertige Projekt mal vorgestellt. Ist auch gut für Anfänger geeignet.

Wer hat es noch schon erlebt. Jemand kommt ungestüm und drückt zig mal auf den Klingelknopf. Warum Menschen das tun? Nun ja, kann man spekulieren.

Tatsache ist dann aber, dass ein mehrfaches Dingdong eines Röhrengongs schon recht laut ist. Also überflüssig das Mehrfache.

Da sowieso noch open Micro in der Bastelkiste schlummerten, sollte also eine Sturmklingelsperre her. Das Gute an einem Controller ist halt, dass man sein Ideen direkt umsetzen kann. Dazu ist gar nicht viel nötig.

Um möglichst kompatibel mit allen möglichen Gongsorten zu sein, sind als Aktoren einfache Miniturrelais im Einsatz. Das heißt, der eigentliche Klingelstromkreis bleibt inhaltlich erhalten. Lediglich dort, wo die Klingel (Gong) ursprünglich war, ist jetzt ein Relais. Ausgangsseitig besteht wiederum der normale Klingelstromkreis, nur mit dem Unterschied, dass der eigentliche Klingelknopf nun der Arbeitskontakt eines Relais ist. Und dazwischen ist der Controller angesiedelt.

Der open micro ist vollkommen ausreichend für diese Anwendung. Eigentlich benötigt man nur zwei Ports. Einen als Eingang für den Taster und einen als Ausgang für das Relais. Da ich aber gern eine optische Signalisierung haben wollte, habe ich drei weitere Ports belegt. Eine blaue LED für die Beleuchtung des Klingelknopfes, eine grüne LED zum signalisieren der Betriebsbereitschaft des Controllers und zugleich der Klingelfreigabe und eine rote Blink-LED für die Signalisierung der Sperre. Alle Ausgänge werden mit Hilfe eine ULN2803 angetrieben. Das erspart einige diskrete Bauteile, auch wenn nur vier Kreise benutzt werden.

Damit keine kurzzeitigen Störungen im Bereich der Klingelleitung den Gong "versehentlich" auslösen, ist eine Entprellung (mit Verzögerung) des Klingelimpulses im Programm eingebaut.

Wie das Ganze funktioniert steht als Beschreibung am Ende im Quelltext.


'***************************************************************************************
'*                                                                                     *
'*  Sturmklingelsperre V1.0 by Ati mit einem Open-Micro                                   *
'*                                                                                     *
'***************************************************************************************

' --- Betriebssystem konfigurieren -----------------------------------------------------
include "om.def"                        ' Definitionen fuer Betriebssystem
RunOnErr = on                           ' bei Fehler Programm neustarten (Fehler in ERR)
PullUpA = 0                             ' Pull-Up-Widerstände - aus
'---------------------------------------------------------------------------------------


'--- Definitionen der QT4 Ports --------------------------------------------------------
define Taste        port[2]             'Digital-Port1 / Eingang Klingeltaste
define LED_rot      port[4]             'Digital-Port4 / Ausgang für LED Treiber
define LED_gruen    port[5]             'Digital-Port5 / Ausgang für LED Treiber
define LED_Tuer     port[6]             'Digital-Port3 / Ausgang für LED Treiber
define Relais       port[1]             'Digital-Port0 / Ausgang Klingelrelais
'---------------------------------------------------------------------------------------
'   Die Pinbelegung der
'    Open-Micro (QT4)     _____    _____
'                       |     \__/     |
'                    1 [  VDD      GND  ] 8     VDD = 4.6 bis 5.5 Volt
'                       |              |
'   LED Tür          2 [  PTA5    PTA0  ] 7     Ausgang Klingelrelais
'                       |              |
'   LED grün         3 [  PTA4    PTA1  ] 6     Klingeltaste
'                       |              |
'   LED rot          4 [  PTA3    PTA2  ] 5     host/run
'                       |______________|
'

define Flanke1       Bit[81]             ' Flankenbit Taste

'--- Startprogramm ---------------------------------------------------------------------
#init
LED_rot = 1                              ' Rote Blink LED ein als Programstartsignal
LED_gruen = 0                            ' grüne LED aus
LED_Tuer = 0                             ' Tür Taster LED aus
Pause 240
LED_rot = 0                              ' Rote Blink LED aus
LED_gruen = 1                            ' grüne LED ein als Bereitschaftssignal
LED_Tuer = 1                             ' Tür Taster LED ein

'--- Hauptprogramm ---------------------------------------------------------------------
#start
if Taste=0 then goto setz1                ' Taste gedrückt? Ja, dann setze EIN-Flanke
Flanke1 = 0                               ' FlankenBit off setzen
goto start                                ' Reset Ein-Flanke (bei Nichtbetätigung der Taste)
#setz1
if Flanke1 then goto Klingel              ' Ein-Flanke gesetzt? Nein, dann nächster Schritt. Ja, dann gehe zum Unterprogramm Klingel
Flanke1 = on                              ' Setze Ein-Flanke (Sperre für weiteres Setzen)
Pause 10                                  ' kurze Pause vor erneuter Abfrage
goto start                                ' Rücksprung zum Start

#Klingel
Flanke1 = 0
Relais = 1                                ' Klingelrelais ein
LED_rot = 1                               ' rote LED ein
LED_Tuer = 0                              ' Tür LED aus
LED_gruen = 0                             ' grüne LED aus
pause 40                                  ' Pause 800 Millisekunden
Relais = 0                                ' Klingelrelais aus
pause 240                                 ' Pause 4800 Millisekunden
LED_rot = 0                               ' rote LED aus
LED_gruen = 1                             ' grüne LED ein
LED_Tuer = 1                              ' Tür LED ein
goto start

end

' Erklärung
' im Ruhezustand läuft der Programmteil ab #start immer wieder durch.
' Erst wenn die Klingeltaste gedrückt wird, wird zu #setz1 gesprungen.
' Hier wird abgefragt, ob die Flanke bereits gesetzt ist. Wenn nicht, dann wird sie gesetzt. Das Programm springt wieder auf Anfang.
' Da die Programmdurchlaufzeit gering ist, ist die Dauer eines Tastendrucks länger als ein Umlauf. Jetzt wird also erneut abgefragt,
' ob die Flanke gesetzt ist. Diesmal ist die Flanke gesetzt und es folgt ein Sprung zu #Klingel.
' Im Unterprogramm wird das Klingelrelais angesteuert (Ding), die grüne LED geht aus, die rote Blink-LED geht an, die Tür-LED wird ausgeschaltet.
' nach 800 ms wird das Klingelrelais abgeschaltet (Dong). es folgt eine Pause von rund 5 Sekunden. Dann wird die rote Blink-LED abgeschaltet,
' die grüne LED und die Türklingel-LED wieder eingeschaltet. Im Anschluss erfolgt der Sprung zum Programmstart.

 Antwort schreiben

Bisherige Antworten:

Re: Einbindungen in ConText (von das |_ Team - 23.03.2020 16:18)