Überall in meinem Wirkungskreis sind die günstigen China-Taschenlampen zu finden die für wenig Geld ausreichend Licht für Haus- und Hof erzeugen.
Sei es im Auto, in der Radltasche, im Kinderzimmer und bei Oma in der Schublade.
An sich funktionieren die Dinger ja ganz gut wenn das nervige Durchtasten der Betriebsmodi mit Geblinke und taktischem Geblitze nicht wäre.
Wie kann man nur so einen Krampf einbauen.
Mit meinem Gejammer bin ich nicht alleine, z.B. siehe hier
mikrocontroller.net/topic/239767
Mein Wochenendprojekt galt also dem Umbau eines Werbegeschenks
IMG_0001.JPG
Eigentlich lohnt sich ja der Aufwand nicht, die LED-Treiber könnte man in vielfältigen Ausprägungen billigst auch separat erwerben, siehe hier
fasttech.com/products/1612/100…rcuit-board-for-flashligh
Das Wetter war grauenhaft, also mal die Funzel seziert und nachgesehen was da so an BlinkTech verbaut ist.
a) Tast/Rast-Schalter ist in der Kappe, geschaltet wird der Minuspol. Nicht besonders präzise aber na ja.
b) Controller ist vorne am Lampenkopf.
c) Platine ist in das Alurohr eingepresst läßt sich aber heraushebeln.
d) Ist kein AVR drauf, nur seltsames Zeug. Also weg damit, keine weitere Zeit verschwenden.
So ein Ding war da drauf; das macht das BlinkeBlinke, ein YX8133A
13688812470.cn.makepolo.com/product/100545804377.html
IMG_0002.JPG
IMG_0007.JPG
Schwups die wups mal einen Testaufbau realisiert.
Verwendet wird dann im zukünftigen Lampenleben
a) Attiny 13V SMD-Ausführung
b) irgendein kleiner MOSFET vom Pollin
c) Platinchen aus inzwischen reichlich vorhandenem Platinenmaterial gefräst (Danke @tschoeatsch)
Ansatz Software:
a) Nix mehr Blinken
b) 100% Helligkeit beim Einschalten
c) nach 5 Minuten Dimmen auf 30% Helligkeit
d) nach 10 Minuten abschalten
e) nach Unterschreiten einer kritischen Batteriespannung Notlicht mit 5% Helligkeit
f) Ausgleich der sinkenden Batteriespannung durch PWM.
Sodele, denk, grübel, tipp und fluch.....
Viele Stunden später:
Alles anzeigen
Funzel funzt, so bleibts.
Schaltplan
Schaltplan.pdf
Board
Board.pdf
IMG_0010.JPG
SMD ist nicht mein Ding, da kommen meine Wurschtfinger nicht mit klar.
IMG_0018.JPG
Sei es im Auto, in der Radltasche, im Kinderzimmer und bei Oma in der Schublade.
An sich funktionieren die Dinger ja ganz gut wenn das nervige Durchtasten der Betriebsmodi mit Geblinke und taktischem Geblitze nicht wäre.
Wie kann man nur so einen Krampf einbauen.
Mit meinem Gejammer bin ich nicht alleine, z.B. siehe hier
mikrocontroller.net/topic/239767
Mein Wochenendprojekt galt also dem Umbau eines Werbegeschenks
IMG_0001.JPG
Eigentlich lohnt sich ja der Aufwand nicht, die LED-Treiber könnte man in vielfältigen Ausprägungen billigst auch separat erwerben, siehe hier
fasttech.com/products/1612/100…rcuit-board-for-flashligh
Das Wetter war grauenhaft, also mal die Funzel seziert und nachgesehen was da so an BlinkTech verbaut ist.
a) Tast/Rast-Schalter ist in der Kappe, geschaltet wird der Minuspol. Nicht besonders präzise aber na ja.
b) Controller ist vorne am Lampenkopf.
c) Platine ist in das Alurohr eingepresst läßt sich aber heraushebeln.
d) Ist kein AVR drauf, nur seltsames Zeug. Also weg damit, keine weitere Zeit verschwenden.
So ein Ding war da drauf; das macht das BlinkeBlinke, ein YX8133A
13688812470.cn.makepolo.com/product/100545804377.html
IMG_0002.JPG
IMG_0007.JPG
Schwups die wups mal einen Testaufbau realisiert.
Verwendet wird dann im zukünftigen Lampenleben
a) Attiny 13V SMD-Ausführung
b) irgendein kleiner MOSFET vom Pollin
c) Platinchen aus inzwischen reichlich vorhandenem Platinenmaterial gefräst (Danke @tschoeatsch)
Ansatz Software:
a) Nix mehr Blinken
b) 100% Helligkeit beim Einschalten
c) nach 5 Minuten Dimmen auf 30% Helligkeit
d) nach 10 Minuten abschalten
e) nach Unterschreiten einer kritischen Batteriespannung Notlicht mit 5% Helligkeit
f) Ausgleich der sinkenden Batteriespannung durch PWM.
Sodele, denk, grübel, tipp und fluch.....
Viele Stunden später:
BASCOM-Quellcode
- '-------------------------
- ' Steuerung Taschenlampe
- ' Stand 16.02.2018
- ' Aufgabenstellung
- ' 1 LED
- ' Ersatz der 8133A-Steuerung mit Blinken und 3 versch. Helligkeitsstufen
- ' Tastendruck EIN --> 100%
- ' Tastendruck AUS --> AUS
- ' Nach 5 Minuten Dimmen auf 30%
- ' Nach 10 Minuten AUS
- ' Messung Batteriespannung --> konstante Helligkeit
- ' Bei Unterschreiten Alarmschwelle --> 5% Helligkeit
- $regfile = "ATtiny13.DAT"
- $crystal = 1200000 ' Default-Einstellungen lassen
- $hwstack = 12
- $swstack = 12
- $framesize = 12
- '-------------------------
- ' Config Ports
- Config Portb.0 = Output ' PIN 5 PWM0a LED
- Config Portb.1 = Input ' unbenutzt
- Portb.1 = 1
- Config Portb.2 = Input ' unbenutzt
- Portb.2 = 1
- Config Portb.3 = Output ' PIN 2 Versorgung Spannungsteiler
- Portb.3 = 0
- Config Portb.4 = Input ' PIN 3 AD-Eingang
- '-------------------------
- ' Config ADC
- Config Adc = Single , Prescaler = Auto , Reference = Internal 'Referenzspannung Des Adc Auf "Internal" = 1,1 V
- '-------------------------
- ' Config Interrupts
- '-------------------------
- ' Config Timer
- Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down
- Enable Timer0
- Pwm0a = 255 ' 255=AUS
- '-------------------------
- ' Config Variablen
- Dim Neumessung As Integer ' Spannungsmessung
- Dim Neumessung1 As Integer ' für Mittelwertbildung
- Dim Neumessung2 As Integer ' für Mittelwertbildung
- Dim Kompensation As Integer ' Ausgleich für abnehmende Batteriespannung
- Dim Spannung As Integer ' Spannungsmessung
- Dim Helligkeit As Integer ' Berechnete Helligkeit für LED
- Dim Aus_zaehler As Integer ' AUTO-Aus-Funktion
- Aus_zaehler = 0
- Dim Unterspannung As Byte ' Flag für Unterspannung
- Unterspannung = 0
- '-------------------------
- ' Config Konstanten
- Const Dunkel = 70 ' Abgedunkelt
- Const Faktor = 22 ' Kompensation für abnehmende Batteriespannung
- Const Offset = 210 ' Anpassung LED-Strom
- '-------------------------
- '-------------------------
- ' Programmstart
- Anfang:
- Stop Ac
- Start Adc
- Portb.3 = 1 ' Spannungsteiler EIN
- '-------------------------
- ' Hauptprogramm
- Do
- Pwm0a = 255 ' 255=AUS (Zur Spannnungsmessung)
- Waitus 150
- Neumessung1 = Getadc(2)
- Waitus 150
- Neumessung2 = Getadc(2)
- Pwm0a = Helligkeit
- Neumessung = Neumessung1 + Neumessung2 ' einfache Mittelwertbildung beruhigt
- Neumessung = Neumessung / 2
- Spannung = Neumessung * 10
- Kompensation = Spannung / Faktor
- Helligkeit = Kompensation - Offset
- Incr Aus_zaehler ' Einschaltdauer ermitteln um irgendwann auszuschalten
- Select Case Aus_zaehler
- Case 30 To 60 ' wenn Einschaltdauer > 30*10 Sekunden dann Dunkelmodus
- Helligkeit = Helligkeit + Dunkel
- Case Is >= 61 ' wenn Einschaltdauer > 60*10 Sekunden dann AUS
- Pwm0a = 255 ' LED aus
- Stop Adc
- Portb.3 = 0 ' Spannungsteiler AUS
- Aus_zaehler = 0
- Unterspannung = 0
- Wait 1
- Config Powermode = Powerdown ' Ruhe sanft
- Case Else
- Helligkeit = Helligkeit ' bis Einschaltdauer < 30*10 Sekungen bleibt alles wie es ist
- End Select
- If Unterspannung = 0 Then ' PWM in Abhängigkeit von Batteriespannung und Modi einstellen
- Rem If Helligkeit < 1 Then Helligkeit = 1' Test only
- Rem If Helligkeit > 254 Then Helligkeit = 254' Test only
- Pwm0a = Helligkeit
- Else
- Pwm0a = 240 ' bei Unterspannung nur noch Notlicht
- End If
- Wait 10 ' Warten wirs ab. AVR hat eh nix anderes zu tun.
- If Spannung < 6500 Then ' nach Unterspannung ca. 3,5V auf Notlicht Modus gehen
- If Unterspannung = 0 Then Unterspannung = 1 ' Flag setzen
- End If
- Loop
- End 'end program
Funzel funzt, so bleibts.
Schaltplan
Schaltplan.pdf
Board
Board.pdf
IMG_0010.JPG
SMD ist nicht mein Ding, da kommen meine Wurschtfinger nicht mit klar.
IMG_0018.JPG