Pfad: Home => AVR-DE => Anwendungen => Puppenhausbeleuchtung
Puppenhaus-Beleuchtung klein AVR-Anwendungen

Puppenhaus-Beleuchtung mit ATtiny13
Hardware, Aufbau und Software für die Puppenhaus-Beleuchtung
Logo

Puppenhaus-Beleuchtung ATtiny13

  1. Eigenschaften
  2. Hardware
  3. Aufbau
  4. Software
Diese Seiten als PDF (12 Seiten, 404 kB).

1 Die Einfachvariante ohne Mikrocontroller

Man kann es sich auch einfach machen: nur LEDs, ohne Schnörkel und Getue. Hier gibt es einen solchen Einfachregler ohne Prozessor.

ATtiny13 Viel schöner ist es allerdings, die Regelung mit einem Mikrocontroller zu realisieren, wie die nachfolgenden Kapitel zeigen.

2 Eigenschaften der Puppenhaus-Beleuchtung mit ATtiny13

Die Hardware-Eigenschaften der beschriebenen Beleuchtung:

Seitenanfang Eigenschaften Hardware Aufbau Software

3 Hardware

3.1 Prozessorteil

Prozessor-Teil Dies ist der Prozessorteil des Schaltbilds. Es zeigt den Controller ATtiny13 im 8-poligen PDIP-Gehäuse.

Die folgenden Ports des ATtiny13 erfüllen folgende Aufgaben:
  1. Der OC0A-Pin steuert über einen NPN-Transistortreiber die LEDs mit einem pulsweiten-modulierten Signal mit einer Frequenz von etwa 73 Hz an.
  2. Am Pin 2 (ADC3) erfolgt die Messung der Hintergrundbeleuchtung mittels AD-Wandler. Ein Fototransistor nimmt die Lichtstärke auf und wandelt sie in eine Spannung um, die vom AD-Wandler laufend gemessen wird.
  3. Am Pin 3 (ADC2) ist ein Trimmer oder ein Potentiometer mit 100k angeschlossen. Damit erfolgt die manuelle Helligkeitsregelung.
  4. Die Stromversorgung des ATtiny13 erfolgt an Pin 8 (+5V) und und 4 (0V) und ist mit einem 10 nF-Keramikkondensator gegen Stromspitzen im Prozessor geblockt.
  5. Der Reset-Pin liegt mit 10 k an +5V.


In der Schaltung ist noch ein ISP6-Wannenstecker eingearbeitet, mit dem man den Prozessor in der Schaltung programmieren kann.

Es werden 14 LEDs mit dem PWM-Signal ausgesteuert. Die LEDs sind auf einen Strom von 20 mA im eingeschalteten Zustand ausgelegt, wofür die 14 Widerstände mit 100Ω dienen. Sollen andere LEDs verwendet werden, müssen diese Widerstände entsprechend angepasst werden.

Sollen die LEDs mit ihren nominell zulässigen 50 mA betrieben werden, müssen Widerstände mit 33Ω verwendet werden. Das Netzteil muss dann maximal 14*50 = 700 mA liefern, der Trafo muss auf mindestens 5,25 VA ausgelegt sein.

3.2 Netzteil

Netzteil-Schaltbild Soll die Schaltung aus einem vorhandenen 5,7V-Netzteil gespeist werden, kann dies über eine Siliziumdiode erfolgen, die die Speisespannung auf 5,0V herabsetzt. Ist kein solches Netzteil vorhanden, kann ein Trafonetzteil wie im Schaltbild die Speisung übernehmen. Die 1N4001-Diode wird dann überbrückt, der Elko von 1.000µF entfällt.

Das Netzteil muss folgende Eigenschaften besitzen:
  1. Der Spannungsregler 7805 benötigt mindestes 7V, um korrekt zu arbeiten. Es kommt daher ein Trafo mit 7,5 oder 9V infrage.
  2. Der Strom durch die LEDs beträgt maximal 14 * 20 = 280 mA. Es muss daher ein Trafo mit mindestens 7,5V * 0,28 = 2,1 VA bzw. 9V *0,28A = 2,5VA verwendet werden.
  3. Sollen die LEDs mit ihrer maximalen Leistung betrieben werden (50 mA), müsste es ein 10VA-Typ sein.
Im Schaltbild ist so ein Standard-Netzteil mit einem 2*7,5V/3,6VA-Trafo mit seiner Dimensionierung zu sehen.

Netzteilspannung ohne Last Das hier simuliert das dargestellte Netzteil ohne Last (siehe die Power-Supply-Software hier). Die Spannung am Elko bleibt ohne Last bei deutlich unter 16 V, deshalb kommen die Elkos mit einer Spannungsbelastbarkeit von 16 V aus. Wird ein 9V-Trafo verwendet, werden 16V überschritten und der Elko muss auf 25V ausgelegt werden.

Netzteilspannung bei 280 mA Last Das hier ist die Netzteilspannung bei 280 mA Last. Der Elko von 2200µF ist ausreichend, zur Not reicht auch ein 1000µF aus.


Seitenanfang Eigenschaften Hardware Aufbau Software

4 Aufbau

4.1 Gedruckte Platine

Gedruckte Platine Das Layout für die gedruckte Platine wurde diesmal mit OpenOffice-Draw gezeichnet (was ziemlich mühsam vor sich geht). Hier gibt es das entsprechende OpenOffice-Dokument. Die linke Hälfte der 160 x 50-mm-Platine ist für das Netzteil, die rechte Hälfte für den Prozessor und die LED-Ansteuerung vorgesehen. Wer das Netzteil nicht braucht, belichtet eine Viertel-Europlatine 80x50mm mit dem rechten Teil des Layouts.

Bestueckung Das ist die Platzierung aller Komponenten auf der Platine. Die 230V-Anschlüsse sind an einer Schraubklemme verfügbar. Die Sicherung passt in einen 5x20-mm Sicherungshalter mit aufsetzbarer Plastikkappe. Der 3,6VA-Trafo passt in die entsprechenden Bohrlöcher. Wer das Netzteil separat verwenden will, kann die 5V an eine weitere Schraubklemme führen.

Die LEDs sind an eine 16-polige Steckerleiste angeschlossen und können mit einer Buchse verpolungssicher mit Flachbandkabel an die LEDs verdrahtet werden.

4.2 Stückliste Prozessorteil

Stueckliste Prozessorteil Das hier sind alle verwendeten Bauteile in einer Stückliste. Mit ca. 17€ sind Sie voll dabei. Bitte beachten, dass der ATtiny13 programmiert werden muss, um seine Funktion erfüllen zu können (siehe Software-Kapitel).

4.3 Stückliste Netzteil

Stueckliste Netzteil Wer das Netzteil bauen will braucht noch mal 6,5 Euronen dafür.

4.4 Bestückung und Test des Netzteils

Netzteil bestueckt und im Test Das ist das fertig aufgebaute Netzteil. Für den Dauerlast-Test ist ein 18Ω/5W-Widerstand angeschlossen, der dauerhaft 0,28A zieht. Alle Temperaturen bleiben dabei im vertretbaren Rahmen.

4.5 Bestückung der Gesamtplatine

Gesamtplatine bestueckt Das ist die Gesamtplatine mit Netzteil und Prozessor-Elektronik. Es ist noch viel Platz auf der Platine.


Seitenanfang Eigenschaften Hardware Aufbau Software

5 Software

Die Software ist in Assembler geschrieben, damit sie mühelos in den kleinen Flashspeicher des ATtiny13 passt. Der ist mit gerade mal 8% seiner Kapazität ausgelastet.

5.1 Download

Die Software im asm-Format kann hier heruntergeladen oder hier im Browser angesehen werden.

In der jetzigen Version ist die Hintergrundbeleuchtung abgeschaltet, weil ich keinen funktionierenden BPY62 mehr habe. Die Regelung mit dem Trimmer funktioniert aber einwandfrei.

5.2 Assemblieren

Zum Assemblieren des Quellcodes ist ein Assembler vonnöten, der .IF-, .ERROR- und .MESSAGE-Direktiven versteht. Der mit dem Studio 4 und höher ausgelieferte Assembler 2 kann das. Wer nicht mit Windows arbeitet, kann sich meinen Assembler gavrasm entweder als ausführbare Linux- oder Windows-64-Bit Version herunterladen oder für andere Betriebssysteme den Quellcode dafür und diesen mit FPC kompilieren.

Wie das Assemblieren mit gavrasm geht ist hier näher beschrieben. Die vom gavrasm ausgegebene Warnung kann man ohne Weiteres ignorieren.

5.3 Flashen

Die vom Assembler produzierte Hex-Datei ist in den Controller zu brennen. Dafür, dass das in der fertigen Schaltung geht, gibt es den ISP6-Stecker. Die werksseitig eingestellten Fuses des ATtiny13 müssen dabei nicht verstellt werden, der Prozessor arbeitet mit 1,2 MHz Takt und verbringt mehr als 99% der Zeit mit Schlafen und dem Warten auf AD-Wandler-Interrupts.

5.4 Software- und Hardware-Debugging

Als Testhilfen sind in der Software die nachfolgend beschriebenen Schalter eingebaut. Alle Schalter sind auf Eins ("Yes") zu setzen um sie zu aktivieren und auf Null ("No") um sie abzuschalten. Es sollte immer nur einer der Debugschalter eingeschaltet sein. In der Betriebsversion müssen alle Schalter auf Null gesetzt werden, damit das Programm normal abläuft.
  1. Debug-Schalter zur direkten Anzeige der AD-Wandler-Ergebnisse vom Potentiometer/Trimmer: das zeigt die Messwerte am Eingang ADC2 als PWM-Wert an. Dazu ist an den DB16-Stecker mindestens eine LED anzubringen. Bei voll aufgedrehtem Trimmer sollte(n) die LED(s) voll leuchten, bei niedrigeren Einstellungen entsprechend dunkler werden. Im Quellcode der Software ist dazu in Zeile 23 der Schalter Debug_trim auf "Yes" zu stellen, zu assemblieren und die erzeugte Hexdatei ins Flash zu brennen. Die Steuerung durch den Fototransistor ist dabei abgeschaltet.
  2. Debug-Schalter zur direkten Anzeige der AD-Wandler-Ergebnisse vom Fototransistor: das zeigt die Messwerte am Eingang ADC3 als PWM-Wert an. Dazu ist an den DB16-Stecker mindestens eine LED anzubringen. Bei voll beleuchtetem Transistor sollte(n) die LED(s) nahezu ausgehen, bei voller Dunkelheit voll angehen. Im Quellcode der Software ist dazu in Zeile 24 der Schalter Debug_opto auf "Yes" zu stellen, zu assemblieren und die erzeugte Hexdatei ins Flash zu brennen. Die Steuerung durch den Trimmer ist dabei abgeschaltet.
Nicht vergessen, die Schalter wieder auf "No" zu setzen, um die betriebsfähige Endversion zu erzeugen.

Zu Beginn des Programmablaufes erfolgt eine Testmultiplikation, um das Programm einfacher simulieren zu kömnnen (z. B. mit avr_sim). Zwei Parameter können simuliert werden:
  1. cTrim1 kann auf die ADC-Summe aus 64 Einzelmessungen des Potentiometers gesetzt werden (maximal 64*1023).
  2. cOpto1 stellt die erste ADC-Summe aus 64 Einzelmessungen des Fototransistors dar (maximal 64*1023).
Mit Vorliegen des ersten gemessenen Wertes wird dieser Wert überschrieben.

Seitenanfang Eigenschaften Hardware Aufbau Software RGB-Designer


Lob, Tadel, Fehlermeldungen, Genöle und Geschimpfe oder Spam bitte über das Kommentarformular an mich.

©2019 by http://www.avr-asm-tutorial.net