5V LED mit Sinuskurve pulsieren lassen?

OP #7837220
Lesenswert?

Hi, ich habe hier eine kleine Deko-Lampe die über USB angeschlossen ist. Ich habe sie geöffnet und festgestellt das dort einfach die 2 Drähte von der 5V Spannungsversorgung genommen wurden um eine kleine, superhelle, LED zu versorgen.

Ich würde sie gerne kontinuierlich und langsam pulsieren lassen. Einer Sinus-Kurve folgend. Mit einem kleinen Drehpoti in der Schaltung um die Frequenz einzustellen.

Aber Elektrotechnisch habe ich nur Grundkenntnisse und die ganzen Anleitungen sind meinem Eindruck nach viel zu professionell und komplex, damit sie perfekte Signale erzeugen, also das Gegenteil von dem was ich brauche. Oder nehmen gleich einen riesigen Arduino!

Wahrscheinlich ist mein Google-Fu nur zu schlecht? Ich denke das ist auf einem so niedrigen Anfänger-Level, es gibt da eine Anleitung für. Hat jemand einen Link?

#7837237
Lesenswert?

Codierer schrieb:

Ich würde sie gerne kontinuierlich und langsam pulsieren lassen. Einer Sinus-Kurve folgend.

Es oszilliert sogar mit 1 Transistor, zumindest wird die LED heller und dunkler. (siehe http://www.dieelektronikerseite.de/ Weichblinker, je höher Betriebsspannung, je weicher blinkt er)

1
          LED
2
   +----+-|>|-+                                        LED
3
   |    |     |                +--------------------+--|>|--+
4
   |   470k  470R              |                    |       |
5
   |    |     |  +  -          |                   470k    470R
6
   |    |     +--22uF--+       |                    |       |
7
 + |    |     |        |     + |    +--22u----------(-------+
8
 9-12V  +----|< BC547  |  =  9-12V  |               |       |
9
 - |    | +   |E       |     - |    +--22u--+--10u--+------|< BC547
10
   |   10uF   |        |       |    |       |               |E
11
   |    | -   |  +  -  |       |   2k2     2k2              |
12
   |    +-----(--22uF--+       |    |       |               |
13
   |    |     |        |       +----+-------+---------------+
14
   |   2k2    |       2k2
15
   |    |     |        |
16
   +----+-----+--------+

Die nur 5V können ein Problem werden.

Es gibt Kerzenflacker-LED und Farbwechsel-LED, die nutzen neben den LED einen kleinen Chip, im Prinzip ein Mikroconroller wie Attiny5 oder PMS160.

Vielleicht kannst du aus einer RGB Farbwechsel-LED die blaue und grüne LED gezielt zerstören.

#7837250
Lesenswert?

Michael B. schrieb:

Es oszilliert sogar mit 1 Transistor, zumindest wird die LED heller und dunkler.

Für eine korrekt schöne Lösung "mit Sinuskurve pulsieren" müsste man den Strom natürlich nur oberhalb der minimalen Flußspannung variieren.

Aber so .. Codierer schrieb im Beitrag #7837220:

Aber Elektrotechnisch habe ich nur Grundkenntnisse und die ganzen Anleitungen sind meinem Eindruck nach viel zu professionell und komplex,

schlechte Karten, das wird komplex.

Moderator (Firma: Titel) Persönliche Seite #7837259
Lesenswert?

Wer übrigens meint, dass es ausreicht, die LED mit einem Sinusstrom oder einer Sinus-PWM anzusteuern, der hat die Rechnung ohne das logarithmische Helligkeitsempfinden des Auges gemacht.

Oder andersrum: wenn das Auge einen sinusförmigen Helligkeitsverlauf sehen soll, dann sieht die Ansteuerung bzw. der Stromverlauf sicher nicht sinusförmig aus.

#7837268
Lesenswert?

Codierer schrieb:

Aber Elektrotechnisch habe ich nur Grundkenntnisse

So eine ähnliche Transistor-Schaltung wurde oben schon genannt:

https://www.elektronik-kompendium.de/sites/praxis/bausatz_blinker.htm

oder

https://www.google.com/search?client=firefox-b-d&q=led+sine+oscillator

gleich das erste Video: https://www.instructables.com/Sinusoidal-LED-Fader-Using-Twin-T-Oscillator/

darüber scheint es viel Material zu geben.

mfg

#7837285
Lesenswert?

Roland E. schrieb:

Such dir einen (beliebigen) MuC, der einen ADC hat.

Einer mit einem Komparatoreingang und ein Kondensator wäre auch eine Möglichkeit.

Codierer schrieb:

Oder nehmen gleich einen riesigen Arduino!

Du könntest genauso gut einen kleinen Pro Mini nehmen (braucht aber z.b. einen anderen Arduino als Programmiergerät) https://de.aliexpress.com/item/1005006035246840.html

#7837301
Lesenswert?

Codierer schrieb:

Wahrscheinlich ist mein Google-Fu nur zu schlecht? Ich denke das ist auf einem so niedrigen Anfänger-Level, es gibt da eine Anleitung für. Hat jemand einen Link?

Meinst du die Antworten hier werden einfacher als deine Google-Ergebnisse? Frage lieber "Wer kann mir so etwas bauen?".

Lothar M. schrieb:

Wer übrigens meint, dass es ausreicht, die LED mit einem Sinusstrom oder einer Sinus-PWM anzusteuern, der hat die Rechnung ohne das logarithmische Helligkeitsempfinden des Auges gemacht.

Könnte aber Softwaremäßig ausgeglichen werden. Wie wichtig ist dem TO aber die Einhaltung einer Sinuskurve.

Norbert schrieb:

Cosinus-Kurve. Vielleicht könnte man ja mit einem Phasenschieber…

LOL ;-)

#7837377
Lesenswert?

Ich hatte sowas in der Art mal für einen ATTiny10 aus Spaß an der Freude gemacht:

1
#include <avr/io.h>
2
#include <util/delay.h>
3
#ifndef F_CPU
4
#define F_CPU 1000000UL
5
#endif
6

7
volatile byte sinepos = 0;
8

9
byte sine[] = { 1, 1, 2, 3, 5, 8, 11, 15, 20, 25, 30, 36, 43, 49, 56, 64, 72, 80, 88, 97, 105, 114, 123, 132, 141, 150, 158, 167, 175, 183, 191, 199, 206, 212, 219, 225, 230, 235, 240, 244, 247, 250, 252, 253, 254, 255, 254, 253, 252, 250, 247, 244, 240, 235, 230, 225, 219, 212, 206, 199, 191, 183, 175, 167, 158, 150, 141, 132, 123, 114, 105, 97, 88, 80, 72, 64, 56, 49, 43, 36, 30, 25, 20, 15, 11, 8, 5, 3, 2, 1, 0 };
10

11
void main() {
12
  DDRB = 1 << DDB0;
13

14
  //Timer0 for PWM
15
  // PWM, Phase Correct, 8bit
16
  TCCR0A = (1 << COM0A1) | (0 << COM0A0) | (1 << COM0B1) | (0 << COM0B0) | (0 << WGM01) | (1 << WGM00);
17
  TCCR0B = (0 << ICNC0) | (0 << ICES0) | (0 << WGM03) | (1 << WGM02) | (0 << CS02) | (0 << CS01) | (1 << CS00);
18

19
  // Initialize ADC
20
  // No clock divider, MUX set to ADC2 -> PB2
21
  ADMUX = (1 << MUX1) | (0 << MUX0);
22
  ADCSRA = (1 << ADEN) | (0 << ADPS2) | (0 << ADPS1) | (0 << ADPS0);
23

24
  // LED Pins are outputs
25
  DDRB = (1 << DDB0) | (1 << DDB1);
26

27
  // Loop
28
  while (1) {
29
    unsigned char delayval;
30

31
    // Start conversion
32
    ADCSRA |= (1 << ADSC);
33

34
    // Wait for conversion to complete
35
    while (ADCSRA & (1 << ADSC))
36
      ;
37

38
    delayval = (unsigned char)ADCL;
39

40
    OCR0A = sine[sinepos];
41
    OCR0B = 255 - sine[sinepos];
42

43
    sinepos++;
44

45
    if (sinepos >= sizeof(sine)) {
46
      sinepos = 0;
47
    }
48

49
    _delay_ms(delayval);
50
  }
51
}

Die Periodendauer ist erstmal nicht groß umgerechnet, wenn man andere Werte haben möchte, müsste man das vielleicht noch entsprechend skalieren

OP #7838221
Lesenswert?

Erstmal vielen Dank für die Antworten.

Und: Christian S. schrieb im Beitrag #7837268:

https://www.google.com/search?client=firefox-b-d&q=led+sine+oscillator

gleich das erste Video: https://www.instructables.com/Sinusoidal-LED-Fader-Using-Twin-T-Oscillator/

Danke! Das ist es. Genau sowas habe ich gesucht. Ich habe einfach nur ständig die falschen Keywords benutzt und bin immer wieder bei denselben Ergebnissen gelandet. Danke auch für die Google Keywords, dann kann ich selber die Suche erweitern. :-)

Ich dachte mir doch das es nicht so kompliziert sein kann. Das waren alles Anleitungen für Leute die auf saubere Sinuswellen angewiesen sind oder sogar "rechteckige" Sinuswellen wollten. Brauch ich ja nicht.

Die 12V Quelle auf 5V umzubauen traue ich mir schon zu. Und einen der Widerstände durch einen Poti ersetzen, das werde ich ja wohl noch hinbekommen :-D.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren