steckbrief steuerkonsole avr 

 

                        Quellcode für BASCOM-AVR mit oder ohne LCD/Menüführung

Die hier vorgestellte Interfacesteuerung soll im Grunde nur ein Anreiz für eigene Projekte mit der PC_DIMMER-Hardware sein. Die hier gezeigten Bilder zeigen die Interfacesteuerung in meinem Wohnzimmer, welche seit rund 8 Jahren fehlerfrei funktioniert und sanft jeden Abend meinen Esstisch beleuchtet.

Da man beim RS232-Dimmer lediglich ein Befehlspaket mit Zeit- und Endwert zur PC_DIMMER Hardware schicken muss, reduziert sich der Aufwand für ein Interface erneut. Die im Downloadbereich verfügbare Firmware samt Sourcecode ist mit der Programmiersprache BASCOM für Atmel AVR-Prozessoren geschrieben und bietet aufgrund der Portabilität zwischen verschiedenen Atmel Prozessoren keine Beschränkung bezüglich der Wahl des Prozessors.

Es können z.B. mit einem ATmega8 alle 128 Kanäle angesteuert werden, möchte man jedoch zu jedem Kanal einen eigenen 16-stellige Kanalnamen angezeigt bekommen, so reduziert sich (aufgrund der speicherfressenden 16 Bytes pro Namen) die maximale Anzahl auf ca. 20-30 Kanäle.

 

 

Einige Informationen zur Steuerung:


Einlesen von Tastern und Fadern (mögliche Anzahl differiert je nach verwendetem Prozessor)

Empfangen von PC_DIMMER-Datenframes zum Synchronisieren der Kanalwerte (z.B. einem Computer)

Senden von PC_DIMMER-Datenframes zum Computer und der PC_DIMMER RS232-Hardware (somit als Hardware-Faderpanel für die PC-Software nutzbar)

Dank der einfachen BASCOM-Sprache auf fast alle Atmel AVR-CPUs für Erweiterungen und Eigenentwicklungen portierbar

Menügeführte Bedienung über das LC Display

OpenSource Firmware, die beliebig erweitert werden kann

 

Der hier verwendete ATmega8 mit 8kB Flash-Speicher liest 9 Taster und einen Fader und zeigt Statusinformationen auf einem 16x2 Display. Man kann bequem zwischen 0 und 100% pro Kanal stufenlos dimmen, wobei der aktuelle Wert gespeichert bleibt.

Mit der Zeiteinstellung kann man zwischen sofort Umschalten und langsamen Einfaden das gewünschte Verhalten einstellen. Die Daten werden dann per Atmel verträglichen +5V TTL-Pegel bzw. wenn ein Levelshifter verwendet wird mit RS232-Pegel an einen ATtiny2313 mit der aktuellen PC_DIMMER-Firmware geschickt, welcher dann die entsprechenden 230V Aktionen durchführt. Ebenso ist das Senden der Daten an einen Computer über RS232 möglich. Die Windowssoftware ist über ein Plugin in der Lage, diese Daten zu empfangen und direkt umzusetzen. Somit kann das Interface als Hardware-Faderpanel verwendet werden und bei entsprechendem Ausbau mehrere Kanäle über Fader ansteuern.

 

Hier die Steuerungseinheit für mein Wohnzimmer:

 

LCD-Menü:

 

Die neueste Firmware für das Interface kann man im Downloadbereich bekommen.

 

Im Folgenden die Anschlussbelegung für die derzeitige Firmware:

 

ATmega8 Standardbeschaltung laut Atmel-ApplicationNotes:

--> Standardquartz von 1 bis 8 MHz (aktuelle Firmware für 7,3728MHz externen Quarz) an die beiden XTAL-Pins und mit einem 22pF-Kondensator gegen Masse abblocken.

--> +5V über einen 10kOhm Widerstand an Reset-Pin

 

Weiterhin Beschaltung des ATmega8:

'PinD0 Frei
'PinD1 5V-TTL-RS232-Out (direkt mit RxD des ATtiny2313 verbinden)
'PinD2 Taster 100%
'PinD3 Taster Faderposition auslesen
'PinD4 Taster 0%
'PinD5 Taster Kanal Auf
'PinD6 Taster Kanal Ab
'PinD7 Taster Level +

'PinB0 Taster Level -
'PinB1 8-Bit PWM1 für Displaybeleuchtung
'PinB2 8-Bit PWM2 für die Dinge die da kommen (also noch nicht verwendet)
'PinB3 Taster Fadetime -
'PinB4 Taster Fadetime +
'PinB5 LCD Enabled
'PinB6 XTAL (7,3728MHz Quartz einbauen und Fusebit korrekt für externen Quarz setzen)
'PinB7 XTAL (7,3728MHz Quartz einbauen und Fusebit korrekt für externen Quarz setzen)

'PinC0 Schleifer eines 10k-Faders, der zwischen GND und +5V hängt
'PinC1 LCD RS
'PinC2 LCD DB7
'PinC3 LCD DB6
'PinC4 LCD DB5
'PinC5 LCD DB4

 

 

Die Standard LCDs besitzen meistens 14 bis 16 Anschlüsse. Für meinen Aufbau verwende ich ein Display mit 16 Anschlüssen, die wie folgt belegt sind:

01 - GND

02 - +5V

03 - Schleifer eines 10k-Potis welches zwischen GND und +5V hängt (Kontrasteinstellung)

04 - LCD RS (PinC1)

05 - GND

06 - LCD Enabled (PinB5)

07 - Frei

08 - Frei

09 - Frei

10 - Frei

11 - LCD DB4 (PinC5)

12 - LCD DB5 (PinC4)

13 - LCD DB6 (PinC3)

14 - LCD DB7 (PinC2)

15 - Helligkeit (PinB1)

16 - GND

 

 

Wenn man sich mit dem Datenblatt des Displays vertraut macht und alles genauso anschließt, kann eigentlich nix mehr schief gehen :)

 

 

 

Schaltplan Hardware-Interface mit PC_DIMMER und Computer:

 

Beschaltung (nur Hardwareinterface):

 

Pegelwandlung:

 

a) Der Ausgang des ATmega8 (TxD) kann direkt mit dem RxD des PC_DIMMER AVRs verbunden werden.

b) Sollte die Steuerung des PC_DIMMERs zusätzlich über den Computer erfolgen, so ist der Ausgang über den eingezeichneten Levelshifter zusammen mit der Diode im Ausgang auf die Basis des Bipolartransistors Q201 anzuschließen. Somit kann der PC_DIMMER sowohl über RS232 vom Computer, als auch über den ATmega8 gesteuert werden.

Die gezeigte Pegelwandler-Schaltung zeigt alle nötigen Verbindungen an, welche man benötigt, um vom Computer und vom ATmega8 senden und empfangen zu können.