Projekt StarLight

Markus

BASCOM-Experte
11. Jan. 2008
1.190
6
38
Lonsee
Sprachen
Gestatten, mein Name ist StarLight

Guten Abend,

vor gut einem Jahr habe ich mir in den Kopf gesetzt, in meinem Wohnzimmer eine Holzdecke zu installieren und diese mit einer Schnick-Schnack Beleuchtungsanlage zu versehen.
Und wie es sich für AVR-Liebende gehört konnte es natürlich keine normale Holzdecke sein sondern es musste schon eine besondere Holzdecke werden.

Mein neues Projekt StarLight war geboren.

Nach vielen vielen Stunden und Nächten kommt das Projekt nun in eine Phase wo das erste Lichtquant mein Schreibtisch erhellt und ich so langsam wieder Land sehe.

Zeit also, mein Projekt mal vorzustellen!

Das Thema lautet also:
Konstruktion und Einbau einer Holzdecke im Wohnraum inklusive Beleuchtungsanlage mittels Microcontroller gestützter Steuerung für Lichtfunktionen und Funkfernbedienung

Worum geht es?
Für eine Holzdecke soll eine Beleuchtungsanlage installiert werden. Die Beleuchtungsanlage besteht aus mehreren unterschiedlichen Leuchtelementen (Lampenmodulen). Die Leuchtelemente sollen unabhängig voneinander steuerbar sein. Da die Hausinstallation nur einen Serienschalter mit zwei separaten Phasen vorsieht soll die Steue-rung mittels einer universellen Funkfernbedienung erfolgen.

Das System soll dabei folgende Teilfunktionalitäten besitzen:
  • Serienschalter steuert Durchgangsbeleuchtung und dient als Hauptschalter für Beleuchtungssystem
  • Separate Steuerung aller Leuchtelemente und Bedienung der Leuchtelemente über Funkfernbedienung
  • Aktivierte Beleuchtungselektronik übernimmt auch Kontrolle über Durchgangsbeleuchtung
  • Ein- und Ausschalten der Beleuchtungselemente und Preset der Helligkeiten über Fernbedienung
  • Dimmen der Beleuchtungselemente, Anzeigen der aktuellen Betriebstati über Fernbedienung
  • Erfassung der Umgebungstemperatur der Leistungselektronik, Notabschaltung bei Übertemperatur
  • Umsetzung Master-Multi-Slave und Kommunikation über RS485 mit eigenem RS485 Protokoll
  • Der Master bildet die Schaltzentrale und Verbindung zur Fernbedienung
  • Jeder Slave übernimmt Steuerung eines einzelnen Lampenmoduls
  • LCD-Dislay auf Master-System sowie 4 Tasten für Menülogik
  • Akustischer Signalgeber auf Master und Slave für Systemkontrolle

Somit entstand ein Single-Master / Multi-Slave-System mit einem zentralen Master der alles steuert und der mit der Funkfernbedienung kommuniziert sowie 8 Slave-Module für 8 separate Beleuchtungseinheiten wie z.B. Sternenhimmel oder Bilder-Beleuchtung usw. Doch dazu mehr in meinem nächsten Beitrag in diesem Thread.

Damit zum Anfang genug. Im Anhang sehr Ihr noch ein paar Bilder:
1. Spannungsversorgung 2x5V 2A
2. Master-Modul mit Tastatur und Display
3. Slave-Modul
4. Laboraufbau mit allen Teilkomponenten
5. Bild der uiversellen Funktfernbedienung Betty

Achos, meine Systemumgebung:
  • Entwicklung der Schaltungen in Eagle 5.10.0
  • Produktion der PCB's bei Leiton in Berlin
  • Programmierung von Master und Slave in BASCOM 2.0.1.0
  • Programmierung des SCART Funktadapters unter C mit SDCC - free open source, retargettable, optimizing ANSI-C compiler
  • Programmierung der BETTY unter C mit Win-ARM Version 20060606
  • Betriebsystem Windows 7 für Arbeitsrechner und Windows Xp Prof für Trace-Rechner

Für die Betty und der SCART-Adapter diente mir das Forum BettyHacks unter http://www.bettyhacks.com


.... to be continued ....

Grüße,
Markus
 

Anhänge

  • power.jpg
    power.jpg
    82,4 KB · Aufrufe: 101
  • master.jpg
    master.jpg
    83,2 KB · Aufrufe: 97
  • slave.jpg
    slave.jpg
    80,9 KB · Aufrufe: 89
  • system.jpg
    system.jpg
    72,8 KB · Aufrufe: 102
  • Betty.jpg
    Betty.jpg
    38,8 KB · Aufrufe: 79
Ein interessantes Projekt, ich bin vorallem auf die Möglichkeiten der Betty gespannt, ich hab auch noch eine hier rumliegen, aber ohne den Scartadapter.

Guido
 
Hallo Guido,

vorallem auf die Möglichkeiten der Betty gespannt

Ja, ich auch :p

Aber mit dem in BettyHacks vorhandenen Framework habe ich alle Möglichkeiten erhalten die ich benötige. Es gibt dort ein Framework welches sich BettyBoops nennt und welches die komplette HW adaptiert hat. Bedeutet, für alle relevanten HW Teile, egal ob RF, IR, Flash, SIM-Chip, RS232, Timer, Buffer usw. sind Fuktionen und Routinen vorhanden auf die Du aufsetzen kannst.

Bedeutet, was Du mit der Betty machst bleibt der Idee und Fantasie überlassen.

Ich für meinen Teil will meine Holzdecke dort grafisch abbilden und alle Teilfunktionen steuern können. Dazu habe ich mir folgende Funktionen überlegt, wie Du im Anhang sehen kannst.

Grüße,
Markus
 

Anhänge

  • BettyMenue.jpg
    BettyMenue.jpg
    147,3 KB · Aufrufe: 90
Teil 2 der Storry "StarLight"

Hallo zusammen,

nun möchte ich Euch wieder ein bissle mehr über StarLight berichten.

Auf dem ersten Bild im Anhang ist die triste und langweilige weiß Decke zu erkennen, welche durch die geplante Holzdecke lebendig werden soll.
Hervor sticht der nostalgische Kronleuchter an den wir uns doch schon so gewöhnt haben :D

Das nächste Bild zeigt die Übersicht über die geplante Holzdecke mit der Position einzelner Lampenmodule.

Für das Schaltnetzteil habe ich mir folgende Umfänge überlegt:
  1. Spannungsversorgung 230V~ (Verwendung eines Schaltreglers)
  2. Feinsicherung für Primärspannung (Feinsicherung 160 mA flink)
  3. Umsetzung Schaltnetzteil auf separater PCB
  4. Zwei LED’s für 5V Power 1 und Power 2 zeigen das Vorhandensein der Betriebsspannung an (zwei getrennte Powerpfade).
  5. Kühlkörper für Schaltregler
  6. Anschlussklemmen für 5V Spannungsversorgung über Schraubklemmenblock
  7. Feinsicherung für Sekundärspannung (2 x 1A)
  8. Kopplungsmöglichkeit beider Signalpfade

Für das Master Modul gabe es folgende Vorgaben:
  1. Einsatz eines ATMega128 (Kompatibilitätsmodus OFF)
  2. Betrieb des ATmega128 mit 16 MHz
  3. SW-RS232 für Tracing mit PC, 10-pol. Pfostenstecker
  4. (Umsetzung über externen MAX232 Traceadapter)
  5. ISP-Schnittstelle für Programmierung 6-polig für AVRISPMKII
  6. (Umsetzung auf PCB erfolgt für ATmega128 über RXD0 und TXD0)
  7. RS485-Interface zur Kommunikation mit Slaves
  8. 1Wire-Interface für Temperatursensor DS18S20
  9. Reset über externer Taster und ISP-Interface
  10. Anbindung eines externen EEPROM für Datenspeicherung
  11. 4 Tasten für die Bedienung des Statusmenü OnBoard
  12. (Tasten beinhalten zusätzlich 4 Status-LED’s)
  13. LCD-Display 16x3 Zeichen für Statusmenü
  14. (Hintergrundbeleuchtung über Transistorstufe steuerbar)
  15. Low-Current LED für System-Alive
  16. ADC-Geräuschreduktionsbeschaltung
  17. Relaisstufe für Umschaltung Durchgangslicht
  18. Spannungsversorgung mittels Schaltnetzteil 5V
  19. Kontrast und Helligkeit wird von Display fixiert, nicht einstellbar
  20. PowerSave Mode für Display
  21. Beleuchtung des Display mit weißer Hintergrundbeleuchtung
  22. Ansteuerung des Display über 4-Bit-Modus
  23. Anbindung der Fernbedienung mittels RS232-Interface an Betty-SCART-Adapter
  24. Zusätzliche Anschlussklemmen für 5V Spannungsversorgung
  25. Master speicher sämtliche Betriebszustände
  26. Bereitstellung aller Informationen für Fernbedienung
  27. Empfang von Datenpaketen aus Fernbedienung
  28. Persistente Speicherung der Betriebsdaten
  29. Nach StartUp Einstellung Dimmerbetrieb (Last Mode)
  30. Akustischer Signalgeber
  31. Anzeige der Übertemperatur

Die Slaves wurden mit folgenden Gedanken entwickelt:
  1. Einsatz eines ATMega168
  2. Betrieb des ATmega168 mit 20 MHz
  3. RS232 für Tracing mit PC über 10-pol. Pfostenstecker. Hierzu wird ein RS232 Adapter gebaut um MAX232 zu sparen.
  4. ISP-Schnittstelle für Programmierung 6-polig für AVRISP mkII
  5. RS485-Interface zur Kommunikation mit Master
  6. Slave-Adresse über 4-Bit DIP-Schalter konfigurierbar
  7. Nulldurchgangserkennung mittels Optokoppler für Dimmer
  8. Dimmersteuerung mittels optoentkoppeltem IGBT
  9. 1Wire-Interface für Temperatursensor DS18S20
  10. Reset über externer Taster und ISP-Interface
  11. Nach Systemstart Beleuchtung aus bis Initialisierung
  12. Low-Current LED für System-Alive
  13. ADC-Geräuschreduktionsbeschaltung
  14. Spannungsversorgung über Schaltnetzteil des Master
  15. Lichtsteuerung An/Aus über Solid-Sate-Relais
  16. Kühlkörper für IGBT mit Wärmeleitpaste
  17. Anschlussklemmen für 230V~ 3-polig
  18. Anschlussklemmen für Beleuchtung 3-polig
  19. Anschlussklemmen für Versorgungsspannung +5V
  20. Sicherungshalter mit Feinsicherung
  21. Schaltungsabsicherung über Varistor
  22. Slave arbeitet hat keine Speicherung von Informationen
  23. Jumper ob Spannung über Dimmer oder über Dauerplus
  24. Akustischer Signalgeber

In Bild 3 seht Ihr also das Blockschaltbild der Anlage.
Bild 4 zeigt die Unterlattung und Bild 5 die montierte Decke mit fehlenden elektronischen Komponenten welche in den Quadraten versteckt werden. Als Deckel dienen Design-Elemente in Kupfer-Antik welche mit Magnet-Schnappverschluss eingeklinkt werden.

Soviel für heute zu dieser Baustelle. Das nächste mal schaue wir a bissle mehr ins Detail!

Grüße,
Markus
 

Anhänge

  • wohnzimmer1.jpg
    wohnzimmer1.jpg
    38,2 KB · Aufrufe: 87
  • blockschaltbild.jpg
    blockschaltbild.jpg
    165,6 KB · Aufrufe: 122
  • decke.jpg
    decke.jpg
    79,8 KB · Aufrufe: 95
  • lattung.jpg
    lattung.jpg
    66,2 KB · Aufrufe: 98
  • holzdecke.jpg
    holzdecke.jpg
    54,5 KB · Aufrufe: 100
  • Like
Reaktionen: DeanMine
Hi Markus,

denn mal viel Spaß ;) Die Bilder erinnern mich daran was mir im Wohnzimmer
noch bevorsteht (Vertäfelung, Parkett) :rolleyes: Der Rest ist ja bei mir zum
Glück endlich soweit fertig:D :cool:

Gruß
Dino
 
Hallo Markus,

schön, dass Du anscheinend ja wieder zurück bist. Und - schönes Projekt, wie immer...:)


Grüsse,

Michael
 
schön, dass Du anscheinend ja wieder zurück bist. Und - schönes Projekt, wie immer...:)

Also dem kann ich nur zustimmen ... beidem!

Wenn nicht schon andere Projekte in Arbeit wären, würde ich über die winterlichen Tage glatt meine Holzdecke erneuern :D, naja das muss noch warten, aufgeschoben ist nicht aufgehoben ;)

Schönen Abend noch,
Dirk
 
Teil 3 des Krimis: "Projekt StarLight" Heute: "Der Dimmer"

Allo zusammen,

danke für die vielen zusprechenden Kommentare.

Ich möchte Euch heute den Dimmer vostellen welchen ich auf dem Slave-Board realisiert habe. :pleasantry:

Also, legen wir mal los:

Je nach Lastcharakter gibt es ja bekanntlich verschiedene Arten der Dimmung. Bei Glüh- und Hochvolt-Halogenlampen (230 V) und bei konventionellen Transformatoren wird mit einer Phasenanschnittsteuerung gedimmt. Diese Verbraucher haben eine ohmsche oder eine induktive Lastcharakteristik.

Für kapazitive Lasten wie z.B. elektronische Trafos / Schaltnetzteile sind Phasenanschnittsteuerungen wegen des plötzlichen Spannungsanstiegs nicht geeignet. Dafür werden Phasenabschnittsteuerungen eingesetzt. Hingegen sind Phasenabschnittsteuerungen nicht für induktive Lasten geeignet (Spannungsspitze beim Abschalten des Stromes).

Da ich mich wegen Haltbarkeit und Lebensdauer von Hochvolt-Halogen gegen diese entschieden habe und mir die LED-Technik bzw. Power-LED-Technik wegen Tücken der Technik, Lichtausbeute und Kühlung noch nicht ausgereift erscheint, habe ich mich für normale Niedervol-Halogen entschieden.
Diese setzen ein Schaltnetzeil voraus um die entsprechenden Leistungen auf kleinem Raum zur Verfügung zu haben.

Also musste ein Phasenabschnittdimmer her!!!! :cheers:

Bei der Phasenabschnittsteuerung wird der Strom nach dem Nulldurchgang sofort eingeschaltet, und noch vor dem nächsten Nulldurchgang ausgeschaltet. Der Schaltungsaufwand ist gegenüber der Phasenanschnittsteuerung höher; es müssen entweder abschaltbare Thyristoren (GTO-Thyristor) oder (Power-MOSFET) resp. IGBT-Transistoren verwendet werden, und auch die Steuerungselektronik ist aufwändiger.

Auf die Idee der Realisierung hat mich ein Amerikaner gebracht welche alle Lichtquellen in seinem haus über IGBT's schaltet und dimmbar realisiert hat. Der Vorteil der IGBT-Schaltung ist maßgeblich, dass auf Spulen/Drosseln verzichtet werden kann welche oft genug je nach Ausführung zum Singen neigen. Nachteil meiner IGBT-Schaltung ist, dass der IGBT nur positive Halbwellen verarbeiten kann, ich deshalb über einen Brückgleichrichter fahren muss der entsprechend dimensioniert und je nach Leistung auch gekühlt werden muss. Aber das konte ich verschmerzen.

Damit begann ich mit der Realisierung zweier Komponenten.

1. Nulldurchgangserkennung
Hierbei habe ich einfach die Nulldurchgangserkennung aus meinem alten Projekt recycled. Ein Schaltbild findet Ihr in Bild 1

2. IGBT-Schaltung
Nach der Erkennung eines Nulldurchgangs wird sofort der IGBT eingeschaltet und ein Timer fängt an zu zählen, bis zu der gewünschten Zeit, an der IGBT abgeschaltet werden soll. Die Schaltung des IGBT erfolgt über einen speziellen galvanisch getrennten Treiberbaustein, den TLP351. Dieser Baustein ist ein spezieller IGBT-Treiber. Das Ergebis seht Ihr in Bild 2


Und etwas SW musste auch noch her:

Die Programmierung der möglichen Zündzeit von max. 10 ms erfolgt in 32 Einzelschritten (Helligkeitsstufen) damit eine scheinbare stufenlose Dimmung ermöglicht wird. Der Zeitraum von 10 ms wird in 100 Stützstellen aufgeteilt. Eine Umsetzung der 32 Einzelschritte auf die Stüzstellen erfolgt über eine Tabelle (siehe hierzu und die Konvertierungstabelle der Helligkeitswerte).

Mit Hilfe eines externen Interrupts wird in der SW der Nulldurchgang der Sinuswelle detektiert. Dieser „Detekti-ons“-Interrupt startet einer Timer welcher mit dem Dimmungswert zwischen 0 und 10ms geladen ist. Gleichzeitig wird der IGBT sofort durchgeschaltet.

Ist der Timer abgelaufen (= Auslösen des Timer-Interrupts) wird der IGBT wieder gesperrt. Das Schalten des IGBT mittels Treiberbaustein zum entsprechenden Zeitpunkt nach dem letzten Nulldurchgang geschieht durch Set-zen/Rücksetzen des entsprechenden Bits PortD.4.

Der Kontroller wird mit diesem Verfahren nicht signifikant belastet. Die komplette Dimmungssteuerung erfolgt über diesen Mechanismus.

Das BASCOM-File findet Ihr ebenfalls im Anhang.


Ein paar Worte zur Hardware:
Den Dimmer habe ich auf einem ATmega168 mit externen 20 MHz realisiert. Ich wollte einfach Ressourcen genug und Performance zur Verfügung haben damit noch ausreichen Luft für Bus-Aktivitäten uns zur Verfügung steht ohne dass das Licht in irgend einer Weise flackert.

Weiter findet Ihr ein Bild des Prototyps im Anhang.

Ich habe die Schaltung nun schon seit einigen Wochen - im Slave integriert - am Laufen und ich bin sehr sehr zufrieden.

Am Schluss noch eine Hinweis:

Achtung:
Aufgrund der im Gerät frei geführten Netzspannung dürfen Aufbau und Inbetriebnahme ausschließlich von Fachkräften durchgeführt werden, die aufgrund ihrer Ausbildung dazu befugt sind. Die einschlägigen Sicherheits- und VDE-Bestimmungen sind unbedingt zu beachten.

Der Autor übernimmt keinerlei Haftung über Schaden jeglicher Art, die direkt oder indirekt durch das Gerät verursacht werden.


Grüße,
Markus

PS: In meinem nächsten Beitrag schauen wir uns mal den RS485 Systembus an.
 

Anhänge

  • Nulldurchgang.gif
    Nulldurchgang.gif
    10 KB · Aufrufe: 103
  • Leistungsteil.gif
    Leistungsteil.gif
    40,6 KB · Aufrufe: 100
  • Dimmer1.jpg
    Dimmer1.jpg
    45,4 KB · Aufrufe: 90
  • dimmer2.jpg
    dimmer2.jpg
    67,7 KB · Aufrufe: 92
  • Dimmer.bas
    12,5 KB · Aufrufe: 47
Teil 4: Die Geschichte des RS485

Hallo zusammen,

wie schon angedroht ;) werden ich heute ein bissle über RS485 berichten.

Wie Ihr ja schon erfahren habt, sieht das Konzept vor, über einen Master insgesamt 8 Dimmer-Slaves zu steuern welche alle über einen eigenen ATmega168 verfügen.

Ich habe hin und her überlegt, welchen Systembus ich in dem Projekt einsetzen möchten. Für CAN wollte ich keine eigene HW spendieren. Mein Ziel war mit so wenig Aufwand wie möglich eine saubere Kommunikation in einer weilsweise EMV verschmutzten Umgebung zu erreichen.
Und da die Megas ja eh (fast) alle ausreichend USART-Schnittstellen zur Verfügung stellen bin ich bei RS485 hängen geblieben. In der vergangenheit hatte ich noch nicht wirklich viel mit RS485 gemacht und deswegen fand ich das Thema doppelt spannend.

Prinzipiell ist zu sagen:
Die RS485-Schnittstelle ist eine Erweiterung der RS422-Spezifikation. Während die RS422 lediglich den unidirektionalen Anschluss von bis zu 10 Empfängern an einen Sendebaustein zulässt, ist die RS485 als bidirektionales Bussystem mit bis zu 32 Teilnehmern konzipiert. Physikalisch unterscheiden sich beide Schnittstellen nur gering.

Man kann den RS485 Bus überall dort einsetzen wo größere Datenmengen über längere Strecken übertragen werden müssen oder wenn mehrere Geräte miteinander vernetzt werden sollen, besonders dann, wenn die Kosten oder der Platz eine Rolle spielen, da die notwendigen Treiberbausteine kompakt und günstig sind. Er eignet sich besonders dazu um Mikrocontroller miteinander zu verbinden.

Die notwendigen Treiberbausteine können direkt an RxD und TxD des Kontrollers angeschlossen werden. Die am häufigsten verwendeten RS485 Treiber sind der MAX485 von Maxim, der LTC485 von Linear Technology und der SN75176 von Texas Instruments

In dem ersten Bild im Anhang findet Ihr ein Beispiel einer Multi-Slave-Schaltung.

Für Rs485 wurde - soweit mir bekannt - kein festes/bindendes Protokoll vereinbart. Damit kann man auf dem Bus treiben was man möchte und die Funktionsmöglichkeiten / Einstellungen von RS232 nutzen. Für die Kommunikation zwischen Master und Slave habe ich mir dennoch ein kleines eigenes Protokoll überlegt dessern Aufbau Ihr in Bild 2 sehen könnt.

Für das simultane Senden und Empfangen von Daten habe ich den Vollduplexbetrieb ausgewählt, der zwei Twisted-Pair-Leitungen notwendig machen. Für RS-485 können mehrere Arten von Kabel verwendet werde, Es wird jedoch dringend empfohlen, twisted-pair Kabel zu verwenden.

Bei der Buskonzeption ist zu beachten, dass der RS485 prinzipiell als Single-Master-System ausgelegt ist. Die Slaves hören auf den Leitungen mit und wenn ein Slave senden möchte so muss er sicht auf den Bus aufschalten. Dies geschicht in der Regel über zwei separate Steuerleitungen zum Senden und Empfangen von Daten.

Die SW-Teile für Master und Slave in BASCOM habe ich auch beigefügt.
Den Prototyp hatte ich auf Lochraster aufgebaut und zappeln lassen. Damit war klar dass es funktioniert :D und ich den Bus so in meinem Projekt umsetzen kann.

Sooooo, was ist denn noch zu sagen?

Ja:
- Die Slave-Adressen lassen sich über DIP-Schalter einstellen. Damit sind die einzelnen Slaves adressierbar.
- Für die Testumgebung habe ich den Master auf dem STK500 mit einem Atmega128 realisiert.
- In der Demoanwendung habe ich nicht wirklich mit Nutzdaten gearbeitet. ich habe lediglich Bit's über Timer und Mikroschalter zappeln lassen.

Grüße,
Markus
 

Anhänge

  • RS485_SCH.gif
    RS485_SCH.gif
    65,8 KB · Aufrufe: 124
  • RS485_Protokoll.gif
    RS485_Protokoll.gif
    126,6 KB · Aufrufe: 107
  • RS485_Master.bas
    21,5 KB · Aufrufe: 74
  • RS485_Slave.bas
    16,9 KB · Aufrufe: 56
  • master_slave.jpg
    master_slave.jpg
    59,1 KB · Aufrufe: 115
Teil 5: A bissle was zur Entwicklungsumgebung

Hallo zusammen,

heute möchte ich ein wenig zur Entwicklungsumg bzw. über Hilfstools erzählen.


Thema RS232 und Trace-Output:
Ich habe mir über die Jahre angewöhnt, bei der Entwicklung auf Controllern und embedded Systemen mit Traceausgaben zu arbeiten. So viel wie möglich und gesteuert über Compilerschalter geben sie mir Aufschluss über den Ablauf innerhalb meines Programms.
Nun würde dies bei 8 Slaves und einem Master recht viel zusätzlicher HW-Aufwand bedeutet. Dem habe ich dadurch Abhilfe geschaffen, dass ich RxD und TxD vom Controller direkt auf einen Pfostenstecker leite und dort mit einem steckbaren RS232-Adapter abgreife um die Daten zum PC zu senden. Damit habe ich das RS232-Interface nur einmal und dadurch reduzierter Aufwand.
Im Anhang findet Ihr somit:
[1] Schematic des RS232-Adapters
[2] Bild des Lochrasteraufbaus


Thema RS485-Sniffer:
Wie RS232 so auch RS485. Hierzu habe ich mir überlegt, dass es vielleicht gut wäre später auch in der fertigen Installation mittracen zu können, was so über RS485 gesendet/empfangen wir. Also habe ich mir kurzum einen RS485-Sniffer gebastelt welcher beide Pfade meiner Voll_Duplex-RS485-Verkabelung (senden/empfangen) auf zwei getrennte COM-Ports wandelt so dass ich mit Notebook usw. hier schön Analysen betreiben kann.
Im Anhang findet Ihr also weiter:
[3] Schematic des RS485-Sniffers
[4] Ein Bild des Sniffers


Halterung:
Für die Befestigung der Platinen innerhalb der Holzdecke habe ich eine eigene Halterung konstrukiert und gebaut. Die Konstruktionszeichnng befindet sich auch noch im Anhang.


So, das wärs dann mal wieder für heute. Das nächste Mal schauen wir und noch Display und EEPROM im Projekt an.

Grüße,
Markus
 

Anhänge

  • Schematic_RS232-Adapter.gif
    Schematic_RS232-Adapter.gif
    26,2 KB · Aufrufe: 82
  • RS232-Adapter.jpg
    RS232-Adapter.jpg
    10 KB · Aufrufe: 56
  • Schematic_RS485-Sniffer.gif
    Schematic_RS485-Sniffer.gif
    37,4 KB · Aufrufe: 88
  • Halterung.gif
    Halterung.gif
    72,6 KB · Aufrufe: 84
  • IMG_6472.jpg
    IMG_6472.jpg
    65,8 KB · Aufrufe: 68
Heute .... Pheriepherie

Hallo zusammen,

wie schon versprochen schreibe ich heute ein paar Informationen zur verwendeten Pheriepherie dazu.

Wir wollen uns heute also mal folgende Themen ansehen:

[1] LCD-Display
[2] Externes TWI EEPROM
[3] Temperatur via DS18S20


[1] LCD Display
Als Anzeigedisplay wird ein LCD-Modul der Firma ELECTRONIC ASSEMBLY der DOG_Serie 3,3V EA DOG-M Su-per Flach / 55x27 mm inkl. Kontroller ST7036 für 4-/8-BIT SPI (4-Draht) eingesetzt.
Als Hintergrundbeleuchtung wird LED-Beleuchtung Weiß eingesetzt.

Zum Einsatz kommt das folgenden Display:
  • LCD-Modul 3x16 – 3,65 mm EA DOGM1634W-A
  • LED Hintergrundbeleuchtung Weiß EA LED55X31W
Für die Hintergrundbeleuchtung wird ein einstellbarer Spannungsteiler via Poti realisiert, mit dessen Hilfe die Beleuchtungshelligkeit eingestellt werden kann. Siehe hierzu Beschaltung des LCD-Displays.

Die Beschaltung des Displays findet ihr im Anhang. Einen Beispielcode zur Displayansteuerung mittels verschiedener Funktionen habe ich auch angehängt.


[2] Externes TWI-EEPROM
Für die Speicherung von Einstellungen und Betriebszuständen wird ein externes EEPROM an den ATmega via I2C-Bus angekoppelt.
Für die Umsetzung kommen der EEPROM-Typen der Firma ST zum Einsatz:
  • ST24C512 Bestellnummer Firma Reichelt: ST 24C512 BN6

Der Baustein ST24C512 ist ein 512KBit Baustein. Er ist über 65.536 x 8 Bit organisiert. Er besitzt einen 128Byte Page-Write-Modus, erlaubt aber partielle Page-Zugriffe.

Ein I2C Gerät bildet aus seiner Geräte-ID und den möglichen Adresspins (A0-A2) seine Geräteadresse im Bus. Somit würden sich auch mehrere Geräte des gleichen Typs in einem Bus betreiben lassen.
Der gewählte Baustein ST24C512 besitzt nur zwei Adressleitung A0 und A1. Die Adressleitung A2 wie im obigen Schaltbild dargestellt (Pin3) ist beim ST24C512 not connected (NC).
Zum Betrieb des externen EEPROM wird die Adresse 0b00 gewählt. Daraus ergibt sich folgende Jumper-Stellung:
  1. Jumper JP3 auf Position GND (1-2)
  2. Jumper JP4 auf Position GND (1-2)
  3. Jumper JP5 auf Position GND (1-2) (nicht relevant)

Im EEPROM werden alle Betriebseinstellungen der Dimmer-Slaves wie Schaltzustand, Dimmwert usw. gespeichert. Ich spreche dabei von dem sogenannten LUM = Last Used Mode. Dies bedeutet, wenn der Master gestartet wird, liest er die letzten Einstellungen aus dem EEPROM aus und stellt die Dimmer welche keine Intelligenz haben auf den letzten Betriebszustand wieder ein. Somit findet die Frau die gleiche Beleuchtung vor, wie sie vor dem Abschalten der Lichtanlage war :D

Schaltbild und Beispiecode ist auch im Anhang.


.....

weiter gehts im Teil 2
 

Anhänge

  • display.gif
    display.gif
    25,2 KB · Aufrufe: 54
  • LCD-Display.bas
    12,6 KB · Aufrufe: 17
  • eeprom.gif
    eeprom.gif
    15,9 KB · Aufrufe: 49
  • EEPROM.bas
    32,5 KB · Aufrufe: 19
Teil 2 ... Pheripherie

.... und weiter gehts

[3] Temperatur via DS18S20
Für die Messung der Temperatur auf den PCB’s der Slaves wie auch auf dem Master wird der Sensor DS18S20 von Maxim Dallas eingesetzt.

Bei dem Sensor handelt es sich um einen digitalen Sensor der über 1-Wire-Bus mit nur einem Daten-Pin betrieben wird. Der DS18S20 wird über 2 zusätzlich Leitungen mit Vcc und GND extern versorgt. Es gibt für den DS18S20 noch den parasite power mode bei dem die Vcc gespart werden kann. Dabei wird der Baustein über die Datenleitung versorgt.
DS18S20 wird mittel 1Wire-Bus und zugehörigem Protokoll betrieben. Außer dem Sensor und einem PullUp Widerstand ist keine Pheripherie notwendig.

Schaltbild und Beispielcode sind im Anhang

Gut, das reicht mal wieder für heute. Mal sehen über was ich noch das nächste Mal schreibe. Vielleicht stelle ich dann mal - obwohl es nicht direkt mit AVR zu tun hat die Betty mal vor mit der ich meine ganzen AVR's steuere.

Grüße und einen schönen Tag

Markus
 

Anhänge

  • DS18S20.gif
    DS18S20.gif
    4,4 KB · Aufrufe: 47
  • Temperatursensor.bas
    12,8 KB · Aufrufe: 25
Hi Markus,

Für die Hintergrundbeleuchtung wird ein einstellbarer Spannungsteiler via Poti realisiert, mit dessen Hilfe die Beleuchtungshelligkeit eingestellt werden kann. Siehe hierzu Beschaltung des LCD-Displays.

Die Beschaltung des Displays findet ihr im Anhang. Einen Beispielcode zur Displayansteuerung mittels verschiedener Funktionen habe ich auch angehängt.
schau dir mal den Schaltplan für die Hintergrundbeleuchtung vom Display an.
Das mit dem R3 = 30 Ohm ist ja OK. Aber das Poti R2 mit 10k Ohm ? Willst du
das als Schalter verwenden ?
- linker Anschlag = volle Helligkeit
- nicht am linken Anschlag = Aus
oder wie kommst du auf 10 KiloOhm ? in Reihe zu den LEDs ?

Gruß
Dino
 
Hi Dino,

die 10k Öhmer sind nur durch Zufall entstanden weil ich das noch 2 Hände voll von den Potis in der Schublade hatte.
Ja, ich gebe Dir dahingehend recht, dass es weniger Ohm auch tun würden da man bei 10k ein ziemlich digitales Verhalten erhält und die reine Helligkeitsregelung nur auf wenige µ-Umdrehungen beschränkt ist.

Aber im Moment fahre ich ohnehin mit voller Beleuchtung. Zum Abschalten habe ich ja noch den Transistor vorgesehen.

Grüße,
Markus
 
Es ist vollbracht ....

Hallo zusammen,

nach über einem Jahr Entwicklungsarbeit ist es nun soweit ..... das Projekt ist fertig, die HW-Komponenten sind installiert, die SW ist geschrieben und die Lampen leuchten.

Da ausführliche Beschreibungen und Erklärungen den Rahmen dieses Threads sprengen würden habe ich hier ein paar Impressionen für Euch.

Für Details würde ich gerne auf meine Homepage verweisen wo Ihr sämtliche Theman im Detail beschrieben findet und wo Ihr auch alle Daten zu Schaltplänen, Eagle, Dokumenten zum Downloaden findet.

http://www.kleinmaeusiges.de/html/content/elektronik/frame_starlightcontent.html


Damit kann ich diese Aufgabe als abgeschlossen betrachten und mich neuen Aufgaben widmen.

Als nächstes werde ich mich zunächst für eine Weile der Astronomie widmen und mit PHP einige Skripe entwickeln. Das passt natürlich nicht hier in die AVR-Welt, dann muss ich noch ein Bad rausreissen und renovieren aber .... AVR tehnisch habe ich folgendes vor:

[1] Garageneinparkhilfe - wie das aussehen wird weiss ich noch nicht
[2] Zirkulationspumpensteuerung - ich will eine inteligente Steuerung meiner Zirkulationspumpte für Warmwasser im Haus bauen.

... aber dazu lasse ich mich überraschen.

Grüße,
Markus

Die fertige Holzdecke inkl. Beleuchtung:
decke_2_big.jpg


Die HW-Komponenten des Projekts:
starlight_0_big.jpg


Die Entwicklungsumgebung:
starlight_entwicklungsumgebung_big.jpg


Einbau Master und Power:
einbau_1_big.jpg


Einbau Dimmer:
einbau_2_big.jpg



Impressionen:
impressionen_4_big.jpg
 
Excellent....
 
Zuerst einmal: Wahnsinn:eek: .*Kinnlade auf Tisch knall* Am meisten die Doku haut mich weg....482 Seiten voller Infos bis ins letzte Detail:eek: .

Was mir noch nicht klar ist (oder kapier ich grade das Prinzip nicht?): Warum haben alle Slaves einen wahnsinnig stark gekühlten Schaltregler für die 5V Versorgung? Eigentlich sollten die doch kaum Strom brauchen (von der 5V Seite), oder irre ich da gerade?

Mfg,
Flo
 
Hallo Flo!

Ja, da irrst du dich! ;)

Ich habe zwar die Doku weder herunter geladen noch gelesen, aber.......
Wie du schon selber geschrieben hast.... es sind die Slaves!

Markus hat z.B. auch Slaves als Phasenabschnittdimmer.... und dafür benötigt man die großen Kühlkörper.


Grüße,
Cassio
 
Guten Abend!

@Flo; Dino hat die Antwort bereits vorweg genommen. Die Slaves haben kein 5V Schaltnetzteil drauf sondern werden alle von dem zentralen 2A Schaltnetzteil versorgt.

Die Kühlkörper habe ich zum Kühlen des IGBT's und für den Brückengleichrichter drauf.

Die IGBT's sind der Ersatz für die Tyristoren und/oder Power-MOSFET's. Leider sind die Dinger polarisiert und da ich nicht zwei spendieren wollte ... einen für die positive und einen für die negative Halbwelle .... habe ich den Brückengleichrichter drauf der mir quasi die negative Halbwelle "nach oben klappt". Somit komme ich mit einem IGBT aus.

Da beide Bauteile 230V Rümps und ggf. viel Dampf abkriegen habe ich den beiden ausreichend Kühlung verpasst. Zumal die räumlichen Gegenbenheiten unter dem Holz und ohne aktive Belüftung doch beengt sind.

Zur Sicherheit überwache ich noch die Temperatur des IGBT Kühlkörper und damit auch die Umgebungstemperatur des Slaves. ich will ja nicht meine neue Holzdecke in Asche verwandeln. Aktuell ist das System so eingestellt, dass die Dimmer-Slaves ab 50° einen Alarm auslösen und abschalten.

Ich hoffe das erklärt die Existenz der Kühlkörper.

Grüße,
Markus
 

Ü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)