Gliederung: Features Hardware Software Werbung
Fahrradbeleuchtung Features: - Automatisches Einschalten der Beleuchtung bei Dunkelheit - Zeitgesteuertes Abschalten - Verschiedene Betriebsarten: - Manuelles Einschalten - Automatische Steuerung
Allgemeine Bauteile: Widerstände Kondensatoren LEDs Vorwiderstand, Spannungsteiler Allgemeine Bauteile: Kondensatoren Strom- und Spannungsspitzen abfangen LEDs Statusanzeige, Kontrollanzeige
Spannungsregler, 78S05 Transistor, BD434 PNP 7,5 V auf 5 V Mikrocontroller und andere Bauelemente benötigen nur 5 V Bis zu 2 A möglich Transistor, BD434 PNP Leistungstransistor Bis zu 4 A Strom schaltbar Einschalten der Beleuchtung Ansteuerung über Treiberbaustein 74LS06
Treiberbaustein, 74LS06 Fotowiderstand, FW200 Dioden, N4148 & N4001 Ansteuerung der LEDs und des Transistors Invertierend, OpenCollector Fotowiderstand, FW200 Messung der der Helligkeit über Spannungsteiler und A/D-Wandler Widerstandsbereich von ca. 50 Ω bis ca. 1,4 MΩ Dioden, N4148 & N4001 Spannungs- und Stromrichtung festlegen
Schaltplan Layout Transistor, BD434 Spannungsregler, 78S05 Treiberbaustein, 74LS06 Fotowiderstand, FW200
Anforderungen Software Entwicklung Automatisches Ein- und Ausschalten der Fahrradlampen je nach Umgebungshelligkeit. Kontrolle der Funktionsfähigkeit der Lampen mittels LEDs. Die Fahrradlampen sollen in dunkler Umgebung ohne großer Verzögerung automatisch eingeschaltet werden. Das automatische Ausschalten der Lampen findet statt sobald die Umgebung für 15 Sekunden wieder hell ist.
Lösung Software Entwicklung A/D-Wandler Messen der Umgebungshelligkeit Kontrollieren der Funktionsfähigkeit der zwei Fahrradlampen (vorne und hinten) Timer 0 mit Interrupt Service Routine (ISR) Abfrage der Umgebungshelligkeit Ausschalten der Lampen verzögern
Struktogramm und Quellcode Software Entwicklung Struktogramm und Quellcode … mov R2,#SEKUNDEN ;R2=229 mov IEN0,#10000010b ;Generelle Interrupt ;Freigabe & Überlauf ;Timer0 freigeben mov TMOD,#00000001b ;16 bit auto reload timer mov TL0,#0h ;Timer auf 0 setzen mov TH0,#0h mov TCON,#00010000b ;Timer 0 starten ;------------------------------------------------------------------ ;Programmschleife ;----------------------------------------------------------------- START: ;Schleife jmp START ;------------------------------------------------------------------ ;Initialisierungsteil für allgemeine Konstanten SEKUNDEN EQU 229 ;15 Sekunden ;(0,065536*SEKUNDEN=15 Sek) ;-----------------------------------------------------------------;Interrupt-Vektoren ;----------------------------------------------------------------- ORG 000Bh ;Sprungmarke zur ISR für Timer 0 TIME_INT0: ;ISR fuer Timer 0 call TIMER_0 reti TIMER_0: ABFRAGE: ;Spannung am LDR überprüfen mov ADCON,#10000010B ;Kanal AN2 angewaehlt (Port 6.2), Stop nach der Wandlung mov DAPR,#0 ;Wandlung Start jb BSY,$ ;warten bis Wandlung stop mov A,ADDAT ;Wert im ACCU clr C ;Carry loeschen subb A,#230 ;entspricht U>4,51 jc HELL ;Sprung da U<=4,51V ---> Lichter aus HELL: djnz R2, SPRUNG ;R2 ungleich 0 ISR verlassen mov R2,#SEKUNDEN ;R2 mit 229 wieder aufladen clr P1.0 ;Front- und Rueckleuchte aus clr P5.0 ;LED rot aus (vorne) clr P5.1 ;LED rot aus (hinten) clr P5.2 ;LED grün aus (vorne) clr P5.3 ;LED grün aus (hinten) jmp SPRUNG mov ADCON,#10000000B ;Kanal AN0 angewaehlt (Port 6.0), Stop nach der Wandlung mov DAPR,#0 ;Wandlung Start jb BSY,$ ;warten bis Wandlung stop mov A,ADDAT ;Wert im ACCU clr C ;Carry loeschen subb A,#20 ;entspricht U>0,39V jnc AN1_1 ;Diode grün an, rot aus (Frontleuchte funktioniert) jc AN2_1 ;Diode rot an, grün aus (Frontleuchte kaputt) DUNKEL: setb P1.0 ;Front- und Rueckleuchte an mov R2,#SEKUNDEN ;mit 15 Sek. wieder aufladen jmp TEST1 ;Status Frontleuchte