Hier ein kleines, altes Projekt von mir, welches ich aufgrund von Problemen mit dem Touchpad nochmal nacharbeiten musste. Ich denke jetzt ist es halbwegs ordentlich und kann hier veröffentlicht werden. Die Platine passt in die untere Öffnung einer Mylonit Ikea-Lampe, hat drei Bohrlöcher um die LED auf zu nehmen (ich habe die LED einfach auf eine runde Alu-Platte geschraubt und diese Alu-Platte dann mit Plastik-Abstandshaltern mit der Platine verbunden). Ein- und Ausgeschaltet wird die Lampe über eine Touch-Oberfläche welche ich in das innere der Lampe geklebt habe. Die Geschwindigkeit des Farbwechsels lässt sich ändern indem man beim einschalten länger gedrückt hält. Die Touch-Auswertung erfolgt mittels Code von Peter Dannegger: Beitrag "Re: qtouch - sekt oder selters" Auf der Unterseite der Lampe befindet sich dann der Netzteilstecker und das Kabel kann an der Original Öffnung heraus geführt werden. Den Kondensator C6 am ADJ-Pin des ZXLD1350 habe ich bei meiner Platinen-Version noch nicht drauf. Beim Einstecken des Netzteils blitzt die Lampe teilweise kurz auf, da der AVR es nicht rechtzeitig schafft die LEDs aus zu schalten bevor die Konstantstromquelle los legt. Ich denke mit dem Kondensator am ADJ-Pin sollte die Konstantstromquelle langsamer anlaufen und das Problem behoben sein. Wer einen HV-Brenner hat kann auch den Reset-Pin des Tiny mit dem ADJ-Pin verbinden um die Konstantstromquelle aus schalten zu können. Die Konstantstromquelle ist nämlich im Kurzschlussbetrieb wenn die LEDs aus sind (habe nicht nachgemessen wieviel Strom die dann noch braucht). Wenn ich ganz sicher bin keine Änderungen mehr zu machen, werde ich mal ein Programm machen bei dem der Reset-Pin mit ADJ verbunden ist. Habe leider nur einen STK500 kompatiblen Brenner. Fotos von einer bunten Mylonit-Lampe gibt es im Internet genügend, aber meinen Code/Platine habe ich mal angehangen ;-) ------------------------------------------------ Hier nochmal zum Problem mit der ersten Version: Das Problem lag in der Auswertung des Messwertes, denn die Touch-Oberfläche ist eine Alu-Folie mit nur 1cm im Durchmesser und befindet sich hinter 1-2 mm Glas. Das ganze muss recht empfindlich sein. Aufgrund der Erwärmung wurde nach ein paar Minuten/Stunden Betrieb aber fälschlicherweise ein Touch-Ereignis festgestellt und die Lampe hat sich wieder ausgeschaltet. Ich tiefpassfiltere jetzt ein paar Messwerte und schaue mir die Veränderung des Messwertes relativ zum Mittelwert an.
Das einstellen der Fade-Geschwindigkeit über gedrückt halten des Touch-Sensors hat nicht ganz zuverlässig funktioniert. Außerdem stört die Sensor-Abfrage die software-PWM (da interrupts während der Abfrage gesperrt werden). Deaktiviert man die Interrupts nicht ist die Sensor-Abfrage gestört (wohl nicht durch die Interrupt-Unterbrechung, aber aufgrund der Störungen durch das Schalten der LEDs). Habe das ganze jetzt auf Hardware-PWM umgestellt (Layout war dafür vorgesehen), jetzt ist die Sensor-Abfrage zwar gestört (da PWM immer im Hintergrund läuft), aber ich bilde einen Mittelwert aus ein paar Messungen. Das gedrückt halten des Sensors habe ich entfernt. Außerdem noch ein paar Optimierungen bei der HSV->RGB Umrechnung (keine Division mehr). Der Code ist jetzt gut unter 1kb und würde wohl auch in einen Tiny13 passen (da müsste man aber wieder soft-PWM verwenden, da der nur einen Timer bzw. zwei Output-Compare Ausgänge hat). Anbei noch ein Foto wie ich das in die Lampe gestopft habe.
Thomas der Bastler schrieb: > Welchen Touchsensor hast beutzt ? Wann lernst du eigentlich mal selbständig Informationen zu suchen? Schau dir den verlinkten Thread doch mal an. Und im Threadtitel steht was von qTouch. Auch danach kann man suchen, hier im Forum oder bei google. Warum ich diesen "nutzlosen" Kommentar scheibe, anstatt deine Frage zu beantworten? Es wird kein Touchsensor benutzt! Marius S. schrieb: > Die Touch-Auswertung erfolgt mittels Code von Peter Dannegger: > Beitrag "Re: qtouch - sekt oder selters"
Hello Anton! Did you set up the fuses correctly? 8 MHz clock? Make sure CLKDIV8 is not enabled (I think it's enabled by default). Other idea is to play around with RC values (C5 and R9). For C5 you could try anything between 1n to 100n. For R9 anything between 1k to 100k. The touch sensor only works when the ISP programmer is disconnected. Did you try with a big touch sensor surface? When the touch area is big then it should work better. The touch sensing should also work better if the circuit GND is connected to some earth point (PE line of AC outlet).
What is the algorithm of the device? Click on the sensor light comes on, if the restraint is beginning to change the speed, click again on the sensor light goes out?
Touch the sensor -> Light on Touch sensor again -> Light off You only need to touch for <1 second then the light should go on/off.
The device works! How to do that when the lamp is on and when you hold the sensor - speed down. Thank you
Anton schrieb: > The device works! Hey Anton, that's really cool! What was the problem? Did you need to make any change in software/hardware? Anton schrieb: > The device works! How to do that when the lamp is on and when you > hold the sensor - speed down. Thank you It's a bit tricky. The software from my first post had this option (change speed when turning on the lamp) but i removed it in the second software version because it was not working stable. The problem is that when you hold your hand on the sensor the measured sensor value is not very stable. I will try to add this feature again.
Hi, versteh ich das richtig, dass der ZXLD1360 einfach einen Konstanten Strom bereit stellt, und die IRML6301 dann die Helligkeit regeln, indem sie jeweils die zu ihnen parallel geschaltete LED kurzschließen? grüne Grütze, mox
Moritz Nöltner schrieb: > versteh ich das richtig, dass der ZXLD1360 einfach einen Konstanten > Strom bereit stellt, und die IRML6301 dann die Helligkeit regeln, indem > sie jeweils die zu ihnen parallel geschaltete LED kurzschließen? Jo, so ist es. Das kurzschließen erfolgt über eine PWM. Steuert der NPN durch, so schaltet der P-MOS durch. Der untere P-MOS wird dabei mit der geringsten Gate-Spannung angesteuert, welche 12V minus den Flussspannungen der oberen beiden LEDs entspricht (sofern die oberen beiden nicht auch kurzgeschlossen sind). Also: HIGH am Port -> NPN an -> P-MOS an -> LED aus LOW am Port -> NPN aus -> P-MOS aus -> LED an Ich habe Schaltung und Code noch ein bisschen angepasst. Ich nutze im ausgeschalteten Zustand jetzt den Reset-Pin des Attiny um den ZXLD komplett aus zu schalten. Außerdem wird der Sleep-Mode verwendet um ein wenig Strom zu sparen. Die NPNs wurden in der neuen Schaltung durch N-FETs ersetzt. Dadurch können auch die Basis-Widerstände entfallen. Ist die Lampe aus, so wird der ZXLD deaktiviert und die N-FETs werden nicht angesteuert (nur ganz kurz für einen PWM Taktzyklus). Man könnte die PWM auch noch deaktivieren und die N-FETs dauerhaft ausschalten, dann würde man noch ein bisschen Strom sparen. Ich habe die Schaltung mit N-FETs aber noch nicht ausprobiert / aufgebaut. Nutzt man den Reset-Pin, so müssen die beiden Testpunkte miteinander verbunden werden. Ich würde die beiden Testpunkte und den Fuse für den Reset-Pin erst verbinden / setzen, wenn die Schaltung ansonsten funktioniert. Weil damit ist der Attiny nicht mehr über ISP programmierbar.
:
Bearbeitet durch User
Yes, should work as a direct replacement. But there is no gnd pad in the board layout.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.