Wochenendprojekt: Pimp die Taschenlampe

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Wochenendprojekt: Pimp die Taschenlampe

      Ü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:

      BASCOM-Quellcode

      1. '-------------------------
      2. ' Steuerung Taschenlampe
      3. ' Stand 16.02.2018
      4. ' Aufgabenstellung
      5. ' 1 LED
      6. ' Ersatz der 8133A-Steuerung mit Blinken und 3 versch. Helligkeitsstufen
      7. ' Tastendruck EIN --> 100%
      8. ' Tastendruck AUS --> AUS
      9. ' Nach 5 Minuten Dimmen auf 30%
      10. ' Nach 10 Minuten AUS
      11. ' Messung Batteriespannung --> konstante Helligkeit
      12. ' Bei Unterschreiten Alarmschwelle --> 5% Helligkeit
      13. $regfile = "ATtiny13.DAT"
      14. $crystal = 1200000 ' Default-Einstellungen lassen
      15. $hwstack = 12
      16. $swstack = 12
      17. $framesize = 12
      18. '-------------------------
      19. ' Config Ports
      20. Config Portb.0 = Output ' PIN 5 PWM0a LED
      21. Config Portb.1 = Input ' unbenutzt
      22. Portb.1 = 1
      23. Config Portb.2 = Input ' unbenutzt
      24. Portb.2 = 1
      25. Config Portb.3 = Output ' PIN 2 Versorgung Spannungsteiler
      26. Portb.3 = 0
      27. Config Portb.4 = Input ' PIN 3 AD-Eingang
      28. '-------------------------
      29. ' Config ADC
      30. Config Adc = Single , Prescaler = Auto , Reference = Internal 'Referenzspannung Des Adc Auf "Internal" = 1,1 V
      31. '-------------------------
      32. ' Config Interrupts
      33. '-------------------------
      34. ' Config Timer
      35. Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down
      36. Enable Timer0
      37. Pwm0a = 255 ' 255=AUS
      38. '-------------------------
      39. ' Config Variablen
      40. Dim Neumessung As Integer ' Spannungsmessung
      41. Dim Neumessung1 As Integer ' für Mittelwertbildung
      42. Dim Neumessung2 As Integer ' für Mittelwertbildung
      43. Dim Kompensation As Integer ' Ausgleich für abnehmende Batteriespannung
      44. Dim Spannung As Integer ' Spannungsmessung
      45. Dim Helligkeit As Integer ' Berechnete Helligkeit für LED
      46. Dim Aus_zaehler As Integer ' AUTO-Aus-Funktion
      47. Aus_zaehler = 0
      48. Dim Unterspannung As Byte ' Flag für Unterspannung
      49. Unterspannung = 0
      50. '-------------------------
      51. ' Config Konstanten
      52. Const Dunkel = 70 ' Abgedunkelt
      53. Const Faktor = 22 ' Kompensation für abnehmende Batteriespannung
      54. Const Offset = 210 ' Anpassung LED-Strom
      55. '-------------------------
      56. '-------------------------
      57. ' Programmstart
      58. Anfang:
      59. Stop Ac
      60. Start Adc
      61. Portb.3 = 1 ' Spannungsteiler EIN
      62. '-------------------------
      63. ' Hauptprogramm
      64. Do
      65. Pwm0a = 255 ' 255=AUS (Zur Spannnungsmessung)
      66. Waitus 150
      67. Neumessung1 = Getadc(2)
      68. Waitus 150
      69. Neumessung2 = Getadc(2)
      70. Pwm0a = Helligkeit
      71. Neumessung = Neumessung1 + Neumessung2 ' einfache Mittelwertbildung beruhigt
      72. Neumessung = Neumessung / 2
      73. Spannung = Neumessung * 10
      74. Kompensation = Spannung / Faktor
      75. Helligkeit = Kompensation - Offset
      76. Incr Aus_zaehler ' Einschaltdauer ermitteln um irgendwann auszuschalten
      77. Select Case Aus_zaehler
      78. Case 30 To 60 ' wenn Einschaltdauer > 30*10 Sekunden dann Dunkelmodus
      79. Helligkeit = Helligkeit + Dunkel
      80. Case Is >= 61 ' wenn Einschaltdauer > 60*10 Sekunden dann AUS
      81. Pwm0a = 255 ' LED aus
      82. Stop Adc
      83. Portb.3 = 0 ' Spannungsteiler AUS
      84. Aus_zaehler = 0
      85. Unterspannung = 0
      86. Wait 1
      87. Config Powermode = Powerdown ' Ruhe sanft
      88. Case Else
      89. Helligkeit = Helligkeit ' bis Einschaltdauer < 30*10 Sekungen bleibt alles wie es ist
      90. End Select
      91. If Unterspannung = 0 Then ' PWM in Abhängigkeit von Batteriespannung und Modi einstellen
      92. Rem If Helligkeit < 1 Then Helligkeit = 1' Test only
      93. Rem If Helligkeit > 254 Then Helligkeit = 254' Test only
      94. Pwm0a = Helligkeit
      95. Else
      96. Pwm0a = 240 ' bei Unterspannung nur noch Notlicht
      97. End If
      98. Wait 10 ' Warten wirs ab. AVR hat eh nix anderes zu tun.
      99. If Spannung < 6500 Then ' nach Unterspannung ca. 3,5V auf Notlicht Modus gehen
      100. If Unterspannung = 0 Then Unterspannung = 1 ' Flag setzen
      101. End If
      102. Loop
      103. End 'end program
      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
    • Ist doch sehr gut geworden :thumbsup: , auch wenn du meinst, smd ist nix für dich. Es wäre warscheinlich leichter zu handeln gewesen, wenn du durchwegs smd-Bauteile verwendet hättest. Die 'großen' Widerstände so hinbiegen und dann verlöten ist doch schwieriger als mit einer Pinzette so einen kleinen Quader auf die Platine zu halten und ohne Hindernisse die Kanten anzulöten.
      Den Ledstrom hast du 'ausgehäusig' gemessen und danach die Pwm angepasst?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • So ein Pollin smd-Sortiment ist nix, nur wenige Werte, davon viel und von der Größe her lungengängig. Kannst meins haben, ich finde, das war ein Fehlkauf. Ich hab' mir ein Sortiment, schön in kleine Döschen verpackt und beschriftet, 20 Stück pro Wert besorgt, aus meiner Sicht einwandfrei.
      Ich hab' im 'alten' Forum mal Tütchen mit smd zusammen gestellt und angeboten. Ist keine komplette Auswahl, aber paar gängige Werte, wenn du willst, kannst so ein Tütchen haben.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • R3 sollte zumindest ein Pulldown sein (µC-Pin direkt verbunden), sonst schaltet der FET während der Controller bootet/programmiert wird durch Einstreuungen unkontrolliert herum.
      Direkt per PWM gesteuert hast du aber große Unterschiede im Stromfluß bei sich änderndem Ladungszustand des Akkus (zumindest den kannst du ja per SW eliminieren), Alterung, Bauteilunterschieden, Temperatur der LED etc.
      Hier eine einfache Konstantstromquelle aus diskreten Bauteilen: madscientisthut.com/wordpress/…ponents/attachment/i-lim/
      Oder hier eine integrierte Variante: diodes.com/products/power-mana…r-led-drivers/part/AL5809

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von zaubara ()

    • zaubara schrieb:

      R3 sollte zumindest ein Pulldown sein (µC-Pin direkt verbunden), sonst schaltet der FET während der Controller bootet/programmiert wird durch Einstreuungen unkontrolliert herum.
      Direkt per PWM gesteuert hast du aber große Unterschiede im Stromfluß bei sich änderndem Ladungszustand des Akkus (zumindest den kannst du ja per SW eliminieren), Alterung, Bauteilunterschieden, Temperatur der LED etc.
      Hier eine einfache Konstantstromquelle aus diskreten Bauteilen: madscientisthut.com/wordpress/…ponents/attachment/i-lim/
      Oder hier eine integrierte Variante: diodes.com/products/power-mana…r-led-drivers/part/AL5809
      Ja, da geb ich dir 100% Recht.

      Mein Anspruch war aber nicht eine Stromregelung sondern nur eine halbwegs praktikable Lichtausbeute bei abnehmender Batteriespannung
      Nennen wir es so: Mit der PWM wird die LED weniger schnell dunkel als ohne PWM.

      Habs halt so hingetrimmt dass der Strom rel. konstant bleibt. Über die "Const Faktor = 22" würde sich das durchaus noch einstellen lassen.
      Aber halt nur einstellen und nicht regeln. Da gehört mehr dazu.

      Und die Miniaturisierung macht mir da Probleme, wg. den Wurschtfingern und so... a_52_eb39d6ae