Garagentorsteuerung mit ATTiny24 (BASCOM)

Cassio

Aktives Mitglied
29. Okt. 2008
4.027
17
38
Region Hannover
Sprachen
  1. BascomAVR
Hallo zusammen!

Nach langer Zeit der "Projekte-Abstinenz" möchte ich euch nun meine letzte kleine Entwicklung vorstellen. :)

Da vor einiger Zeit die Garagentorsteuerung meiner Eltern den Geist aufgegeben hatte...
und ich die gesamte Mechanik nicht gleich mit auswechseln wollte....
habe ich mir selber eine Steuerung dafür gebaut. ;)

Die wichtigsten Eckdaten waren schnell zusammen gestellt:
-die neue Platine muss in das vorhandene Gehäuse passen
-der Trafo soll weiter verwendet werden
-das Funksignal wird durch eine externe Quelle bereit gestellt.

Desweiteren war da noch:
-1x Schlüsseltaster außen
-2x Tortaster innen
-externe Garagenbeleuchtung soll mitgesteuert werden

Das Steuerung sollte außerdem folgendes berücksichtigen:
-Endschalter sind Öffner und müssen immer Vorrang haben !
-Eintastbedienung (Auf-Stopp-Zu)
-getrennte Beleuchtungsverzögerungen nach Auf-Fahrt bzw. Zu-Fahrt
-sofortige Beleuchtungsabschaltung bei manuellem Stopp


Damit waren die Vorgaben notiert und als nächstes folgte der Schaltplan:
Plan-Garagentorsteuerung_1.gif


Nach dem Schaltplan folgte nun das Programm.
Da die Endschalter grundsätzlich Vorrang vor jeder anderen Funktion haben müssen, werden diese mittels Timer0 überwacht.
Durch den Timer0 wird alle 16ms geprüft, ob sich der Zustand der Endschalter geändert hat.

Für die Beleuchtung gibt es zwei verschiedene Verzögerungszeiten.
Nach dem Erreichen der End-Position für die Auf-Fahrt, bleibt die Beleuchtung noch ca. 60 Sekunden eingeschaltet.
Beim Erreichen der End-Position für die Zu-Fahrt, wird die Beleuchtung allerdings schon nach ca. 10 Sekunden ausgeschaltet.

Da der Schlüssenschalter und der Tortaster über einige Meter JY(ST)Y-Leitung an der Steuerung hängen, werden diese beiden Taster sicherheitshalber über Optokoppler mit dem ATTiny24 verbunden.
So ist zumindest sichergestellt, dass bei einem Fehler an der Leitung diese Störung nicht direkt zum Controller weitergeleitet werden.

Der Rest des Programmablaufes steht ihr im Programmcode, welcher auch ausreichend kommentiert sein sollte.



CodeBox bascom

' Garagentorsteuerung mit ATTiny24v
' Zwei Handtaster via Optokoppler 4N25
' Zwei Endschalter, als Öffner
' Relaisausgänge für Motor und Beleuchtung


$regfile = "attiny24.dat"
$crystal = 1000000

$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space

Ddra = &B00_11_1111 '1 ist Ausgang 0 ist Eingang
Porta = &B11_00_0000 'auf Hi oder Low setzen

Ddrb = &B0000 '1 ist Ausgang 0 ist Eingang
Portb = &B1111 'auf Hi oder Low setzen

Config Timer0 = Timer , Prescale = 64 'Timer0 zur Endschaltererfassung
On Timer0 Endschalter
Enable Timer0

Enable Interrupts

' Aliasnamen einstellen:
Taster_out Alias Pinb.0 'Schlüsseltaster außen
Taster_in Alias Pinb.1 'Tortaster innen
Funk Alias Pinb.2 'Funksignal (fallende Flanke)

End_zu Alias Pina.6 'Endschalter Tor zu
End_auf Alias Pina.7 'Endschalter Tor auf


Relais_licht Alias Porta.0
Relais_zu Alias Porta.1
Relais_auf Alias Porta.2


' Variablen
Dim Fahrt As Byte '0=Stopp, 1=Auf, 2=Stopp, 3=Zu
Dim Vz_zu As Bit 'Verzögerung Licht nach Zulauf
Dim Vz_auf As Bit 'Verzögerung Licht nach Auffahrt
Dim Vz As Word 'Verzögerungswert für Licht


' #############################################
' Erster Start
' #############################################
Waitms 250
Relais_licht = 1
Waitms 500
Relais_licht = 0
Waitms 250
Relais_licht = 1
Waitms 500
Relais_licht = 0

Relais_zu = 0
Relais_auf = 0

' #############################################
' Arbeitsschleife
' #############################################

Do

If Taster_out = 0 Then
Incr Fahrt
Gosub Aktion
Bitwait Taster_out , Set
Elseif Taster_in = 0 Then
Incr Fahrt
Gosub Aktion
Bitwait Taster_in , Set
Elseif Funk = 0 Then
Incr Fahrt
Gosub Aktion
Bitwait Funk , Set
Else
End If



If Vz_zu = 1 Then
Fahrt = 0
Gosub Licht
Elseif Vz_auf = 1 Then
Fahrt = 2
Gosub Licht
Else
End If

Waitms 100

Loop


' #############################################
' Subroutinen
' ############################################# Aktion
Aktion:

If Fahrt > 3 Then Fahrt = 0

If Vz_zu = 1 And Fahrt = 3 Then Fahrt = 1

If Vz_auf = 1 And Fahrt = 1 Then Fahrt = 3

Select Case Fahrt
Case 0 : Gosub Stopp
Case 1 : Gosub Auf
Case 2 : Gosub Stopp
Case 3 : Gosub Zu
End Select

Return



' ############################################# Stopp
Stopp:
Relais_zu = 0
Relais_auf = 0
Relais_licht = 0
Return



' ############################################# Auf
Auf:

If End_auf = 0 Then
Relais_auf = 1
Relais_licht = 1
Vz = 600
Else
Relais_auf = 0
End If

Return



' ############################################# Zu
Zu:

If End_zu = 0 Then
Relais_zu = 1
Relais_licht = 1
Vz = 100
Else
Relais_zu = 0
End If

Return


' ############################################# Licht
Licht:

If Vz > 1 Then
Decr Vz
Else
Relais_licht = 0
End If

Return


' ############################################# Enschalter
Endschalter:

If End_zu = 1 Then
Relais_zu = 0
Vz_zu = 1
Else
Vz_zu = 0
End If


If End_auf = 1 Then
Relais_auf = 0
Vz_auf = 1
Else
Vz_auf = 0
End If

Return


' ############################################# Ende
End



Anschließend konnte nun das Platinenlayout gezeichnet werden:
Garagentor-Platine_1.gif


Tja und danach folgte das Herstellen der Platine:
a_Garagentorplatine.jpg


Ein paar Stunden später war die Platine dann auch bestückt und kontrolliert :)
1a_DSCF0643.jpg a_DSCF0646.jpg



Die fertige Steuerung arbeitet fehlerfrei und wartet nun nur noch auf die Montage im alten Gehäuse des Dormatic-Torantriebes auf ihren Einsatz.


Fragen und Kommentare dazu sind natürlich immer willkommen. ;)

Grüße,
Cassio
 
Hi Cassio,

super, ging ja schneller, als ich dachte. Haste wieder fein hinbekommen. Grummel, neid, grummel...;)

Grüsse,

Michael
 
super, ging ja schneller, als ich dachte.

Hi Michael!

Du sollst aufhören mich zu verkaspern. ;)

Oder du kennst mich schon zu gut und weißt inzwischen wie lange sonst ein Projekt bei mir dauert. :D

Gruß,
Cassio
 
Hi Cassio,

war doch nur Spass, Alter...aber super is'.

Ich trete immer noch auf der Stelle. Hast schon richtig bemerkt - ich hab z.Zt. anderes im Kopf...


Grüsse,

Michael
 
Hi Michael!

Nun ja, ich musste ja sehen, dass ich die alten Aufgaben erledigt bekomme. ;)

Für meine geplante Herdsteuerung muss ich dann Vollgas geben.
Große Experimente und Versuche kann ich mir da leider nicht erlauben.

Du weißt aber doch.... unter Druck arbeiten wir immer noch am effektivsten. :cool:

Gruß,
Cassio
 
Hallo Cassio,
als neues Forumsmitglied bin ich auf dein sehr interessantes Projekt der Garagentorsteuerung gestoßen. Obwohl dieser Beitrag ja nun schon etwas älter ist, habe ich als Neuer trotzdem noch eine Frage dazu, ich hoffe, trotz der bisher vergangenen Zeit kannst du mir noch eine befriedigende Antwort geben.
Gem. DIN EN 12453 muß ein kraftgetriebenes Tor eine Sicherung gegen Hindernisse haben, d.h., beim Anstoßen an ein Hindernis muß das Tor stoppen und sich dann für ca. 10 cm in die Gegenrichtung bewegen.
Da diese Funktion am einfachsten mit einem Strom- Meß Shunt zu bewekstelligen ist, ich in deinen Plänen und Platinen aber keinen gefunden habe, habe ich mir das Bascom Programm angeschaut, aber auch dort keinen Hinweis auf eine entsprechende Routine gefunden.
Meine Frage dazu: Wie kann man softwaremäßig an welcher Stelle eine solche Routine installieren?
Hardwaremäßig dürfte das ganze kein großes Problem sein, einen Shunt in die Relaisleitung zu bringen und mittels LM 358 o.ä. abzufragen.
Ich warte gespannt auf dein Statement.

Claus
 
Hallo Claus!

Willkommen im Forum! :ciao:


Der "Stopp" bei einem festen Hindernis realisiert bei mir eine Rutschkupplung..... also rein mechanisch.
Aus dem Grunde habe ich da auch nichts weiter vorgesehen.

Wenn du dies nun elektronisch erfassen möchtest, dann würde ich das auch mit einem kleinem Widerstand machen.
Den Spannungsabfall über den Widerstand würde ich per OpAmp verstärken und justierbar machen.
Anschließend das Ganze zu einem Schmitt-Trigger führen und den Ausgang am AVR pollen.
Damit wäre die Überstromerfassung völlig autark.

Möglich wäre aber natürlich auch die Erfassung des Wertes via ADC im AVR.

Wie du das realisieren möchtest (oder musst) bleibt dabei also dir überlassen. :wink:


Gruße,
Cassio
 
Hallo,

das mit dem Meß-Shunt wird nicht so einfach sein. Das Tor wird je nach Witterung bestimmt einen anderen Strom ziehen. Außerdem wird der Motor bestimmt mit Wechselstrom und nicht mit Gleichstrom betrieben. Also eben mal nen Shunt einbauen und über den Strom eine Kollision erkennen wird wohl zu einfach gedacht sein.

Gruß
Dino
 
Hallo Dino!


das mit dem Meß-Shunt wird nicht so einfach sein. Das Tor wird je nach Witterung bestimmt einen anderen Strom ziehen.

Auf Grund der große Getriebeuntersetzung fällt das nicht wirklich ins Gewicht.
Ein Stopp hingegen schon!



Außerdem wird der Motor bestimmt mit Wechselstrom und nicht mit Gleichstrom betrieben.

Also ich kenne persönlich keinen Garagentorantrieb der einen Wechselstrommotor verwendet.
Entweder Gleichstrommotore, oder Drehstrommotore....... aber Wechselstrom? :hmmmm:

Bei den kleinen Antrieben, im privaten Bereich, werden meistens Gleichströmer eingesetzt.
Zum Einen ist die Drehrichtungsänderung einfacher und zum Anderen arbeiten moderne Antriebe mit verschiedenen bzw. geregelten Geschwindigkeiten.


Ein "Messshunt" sollte also absolut kein Thema sein.


Grüße,
Cassio
 
Hi,

Also ich kenne persönlich keinen Garagentorantrieb der einen Wechselstrommotor verwendet.
Entweder Gleichstrommotore, oder Drehstrommotore....... aber Wechselstrom? :hmmmm:

Bei den kleinen Antrieben, im privaten Bereich, werden meistens Gleichströmer eingesetzt.
Zum Einen ist die Drehrichtungsänderung einfacher und zum Anderen arbeiten moderne Antriebe mit verschiedenen bzw. geregelten Geschwindigkeiten.
Und dann extra mit nem Netzteil für den Motor drin damit der seine Gleichspannung bekommt? Der wird auch nicht so wenig Leistung verbraten. Hmmm :confused:

Also ich hätte das ehrlich gesagt ähnlich einem Rolladenantrieb aufgebaut. Da ist die Umschaltung mit 2 Relais auch nicht wirklich kompliziert. Aber naja ... es führen wohl viele Wege zum Ziel :rolleyes: Außerdem hätte man nicht so viel Leistung verbraten wie bei nem extra Netzteil für den Motor. Irgendwo in meinem Umfeld hab ich gehört das jemand seinen Antrieb wieder rausgenommen hat weil das Ding dauerhaft 25W verbraten hat :p Ob das das Netzteil für den Motor war?

Naja ... wieder was dazugelernt :cool:

Gruß
Dino
 
Hallo Dino!

Nun ja, ein Garagentor (oder Hoftor) ist nun mal kein Rollladen. :wink:

Die Sache mit den 25W StandBy kann ich fast nicht glauben......
aber vielleicht war es ja so ein Gerät aus dem Baumarkt, für 199 Euro.
Bei den guten Antrieben bekommst du dafür noch nicht einmal die Laufschiene. :cool:


Ich werde die Steuerung für den Antrieb aber bei Zeiten noch mal ganz neu machen.
Es war damals eine "Quick and Dirty" Lösung.... weil es nun mal schnell gehen musste.

Bei der neuen Variante wird dann auch alles per PWM gesteuert, um eine langsame Anfahrt zu ermöglichen.
Dafür benötige ich dann aber noch zusätzliche Endschalter.......
Also werde ich das frühestens im Sommer ändern. :D


--- Off Topic on ----
Nur mal nebenbei:
Dienstlich bewegen wir unsere Maschinen, mit über einer Tonne Gesamtgewicht, sogar ausschließlich mit PWM-geregelten Gleichstrommotoren. :cool:
Ganz so selten ist das also gar nicht. :wink:
--- Off Topc off ---


Grüße,
Cassio
 
Hi zusammen,

da hat Cassio sicherlich recht, im Privatsektor wirst du so einfach keinen Antrieb auf Wechselspannungs Basis finden. Bei mir läuft der Motor mit 24VDC, dadurch ist eine li/re Umschaltung einfach umzusetzen. Allerdings habe ich mit der Installation und der Bemessung des Shunt noch einigen Nachholbedarf an Verständnis für das Gesamtsystem.
Aber was nicht ist, wird noch werden.
Gruß

Claus
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)