Synopsis: [Zylonen]
Durch eine LED-Spende an die Schule motiviert, entwickelte ich eine kostengünstige Platine für meine Schüler.
Die Platine
- ATtiny2313 (A)
- 3 Taster gegen GND an PD6..PD4
- Matrix- Anordnung von 16 LED
- Zeit-Multiplex Ausgabe möglich
- Sound an PB4 ausgeben OC1B Ausgang
- Keramikschwinger steckbar
- ISP-Buchsen 6 Pin und 10 Pin
- Buchsen für RXD, TXD, PA1, PA0, INT0, INT1
Schematische Darstellung
Um mit den 8 Port-Pins von PORTB die 16 LED ansteuern zu können sind die LED als Matrix verschaltet. Um beispielsweise L0 leuchten zu lassen muss PB4 auf 0 und PB0 auf 1 geschaltet werden. An PORTB muss dazu 0b11100001 = 0xe1 ausgegeben werden.
Die Taster T2..T0 sind gegen GND (0V) verschaltet, bei Betätigung liegt Low-Signal am Eingang vor. Die internen PullUps müssen eingeschaltet werden, damit bei offenem Taster ein High-Pegel am Eingang anliegt: PORTD = 0b01110000.
Vorwiderstände für die Leuchtdioden berechnen
Farbe | LED Vorwiderstand | I gemessen |
---|---|---|
Rot | (5V-1,8V)/10mA =320Ω => 330Ω | 9,3mA |
Grün | (5V-3,2V)/10mA =180Ω | 9,1mA |
Blau | (5V-3,2V)/10mA =180Ω | 9,7mA |
Die Spannung an der Leuchtdiode hängt von ihrer Farbe ab. Um den Stromfluss auf 10 mA zu begrenzen werden Vorwiderstände für die verwendeten Farben ermittelt.
Details zur Berechnung
Laut [Datenblatt ATtiny2313] liefert ein Portpin maximal 40 mA, der maximale Strom in VCC und aus GND darf 200mA nicht überschreiten. Der maximale Strom in eine LED darf bei kontinuierlichem Betrieb 20mA nicht überschreiten. Die Kathoden von jeweils 4 LED münden in einen Portpin (siehe Schaltplan). Die Schaltung wird mit 5 V betrieben, die Ausgangsspannung eines Portpins sei bei Low 0V und bei High 5V, das ist idealisiert, tatsächlich liegt sie laut Datenblatt bei 20mA Strom bei Low <0,7V und bei High >4,2V.
Eine erste einfache Annahme für die Berechnung ist, dass der maximale Strom an einem Portpin dann auftritt, wenn die Anoden von 4 LED Strom über 4 Widerstände ziehen.
Seien PB7..PB4 Low und PB3 High, es leuchten LED1, LED5, LED9, LED13. PB3 liefert den Strom für die 4 LED. Der Strom durch eine LED darf durch die 40mA Grenze eines Portpins nicht grösser als 10mA sein. Sollten alle LED gleichzeitig leuchten wäre der Strom in und aus dem µC <160mA, was im erlaubten Bereich liegt.
Die Berechnungen in der Tabelle wurden mit Schätzwerten für die Spannung an der LED bei 10mA und mit einem Sollstrom von 10mA durchgeführt. Zur Kontrolle wurden die tatsächlichen Ströme mit den ermittelten Vorwiderständen gemessen.
Messungen des Gesamtstrombedarfs mit blauen LED: Ruhestrom ohne LED 2,68mA; 4LED 1..4 leuchten 11,7mA; 4LED 1,5,9,13 leuchten 24,8mA; alle LED leuchten 38mA. Vcc-UPB0 = 0,5V bei 25mA.
Die Bauanleitung
Entscheiden: Welche LED-Farbe ist gewünscht? Dann die 4 passenden Widerstände für Rot: 330Ω oder Blau, Grün: 180Ω verwenden.
Selber mitbringen: Alter kleiner Kopfhörer als Lautsprecher, ggfs. 5V-Netzteil für Stand-Alone-Betrieb.
Stückliste und Kalkulation
Preise Stand 25.11.2019
Pos | Anzahl | Bauteil | BestNr | Preis | Ges |
---|---|---|---|---|---|
1 | 1 | Platine | 7,60 € | 7,60 € | |
2 | 1 | 100nF | X7R-5 100N | 0,05 € | 0,05 € |
3 | 4 | 180 Ohm | 0,05 € | 0,20 € | |
4 | 1 | 220 Ohm | 0,05 € | 0,05 € | |
5 | 16 | LED | 0,00 € | ||
6 | 1 | IC Sockel 20 pin | GS 20 | 0,07 € | 0,07 € |
7 | 1 | Pfostenwanne 6 pin | WSL 6G | 0,20 € | 0,20 € |
8 | 1 | Pfostenwanne 10 pin | WSL 10G | 0,10 € | 0,10 € |
9 | 1 | Buchsenleiste 8 pin | MPE 094-1-008 | 0,23 € | 0,23 € |
10 | 1 | Buchsenleiste 3 pin | SPL 64 | 0,10 € | 0,10 € |
11 | 3 | Digitaster | TASTER 9302 | 0,14 € | 0,42 € |
12 | 1 | Pfostenstecker 2 pin | 0,00 € | ||
13 | 1 | Jumper | JUMPER 2,54 BL | 0,05 € | 0,05 € |
14 | 1 | ATtiny2313 | ATTINY 2313A-PU | 1,05 € | 1,05 € |
15 | 1 | Keramikschwinger | CST 4,00 | 0,18 € | 0,18 € |
17 | 1 | Lautsprecher | 0,00 € | ||
18 | 1 | USBasp Programmer | 2,71 € | 2,71 € | |
13,01 € |
Bonus: Simulierte Schneeflocken
Der Schaltplan
Plan wurde mit [KiCad] erstellt. Schaltplan: [Zylonenauge2-Schaltplan.pdf]
Frequenz ändern mit Keramikschwinger
Im Auslieferungszustand ist der ATtiny2313 auf den internen RC-Oszillator mit 1MHz eingestellt. Der RC-Oszillator ist nicht besonders genau, die Frequenz weicht von 1MHz ab und schwankt zudem in Abhängikeit der Versorgungsspannung. Für viele Anwendungen ist dies jedoch trotzdem völlig ausreichend. Bei Anwendungen, die eine bessere Zeitbasis erfordern, z.B. Binäruhr ist die Möglichkeit vorgesehen einen Keramikschwinger zu stecken. Beim Bausatz wird ein Resonator mit 4MHz mitgegeben. In der Arduino-Software kann zwischen dem Internen RC und externen Oszillator umgeschaltet werden.
Port- und Verbinder J2 Belegung
PORTB wird für die 16 Leuchdioden und den Lautsprecher verwendet. An PORTD sind die Taster gegen GND angeschlossen.
PORTB | PB7 | PB6 | PB5 | PB4 | PB3 | PB2 | PB1 | PB0 |
---|---|---|---|---|---|---|---|---|
Belegung | - Led 15,14,13,12 | - Led 11,10,9,8 | - Led 7,6,5,4 | - Led 3,2,1,0 & Lautsprecher | + Led 15,11,7,3 | + Led 14,10,6,2 | + Led 13,9,5,1 | + Led 12,8,4,0 |
PORTD | PD7 | PD6 | PD5 | PD4 | PD3 | PD2 | PD1 | PD0 |
Belegung | NC | Taster S2 | Taster S1 | Taster S0 | J7 1 | J7 2 | J7 5 | J7 6 |
Am Verbinder J2 sind die freien Pins herausgeführt, dort kann z.B. ein Keramikschwinger angeschlossen werden.