Forum: Mikrocontroller und Digitale Elektronik Poti mit µC "simulieren"?


von Christoph H. (webturtle)


Lesenswert?

Frage ob folgendes geht:

Gegeben sei eine Konstantstromquelle mit bipolren Transistoren wie hier 
beschrieben:
http://www.mikrocontroller.net/articles/Konstantstromquelle#Konstantstromquelle_mit_bipolaren_Transistoren

Daran soll eine LED oder mehrere hängen. Gibt es ja von Pollin zu kaufen 
für ein Euro.
Dort sind die Widerstände mit 4,7kOhm wie im Artikel empfohlen und mit 
33 Ohm angegeben.
Nach der Formel im Artikel ist dieser 33 Ohm Widerstand für den Strom 
zuständig und nach Formel ergeben sich daraus 18 mA.
Würde ich 10mA Strom wollen müsste ich den 33er durch einen 60er 
ersetzen.

Würde ich nun hinter den 33er noch einen Poti mit sagen wir 100 Ohm 
setzen könnte ich ja im Prinzip 100 verschieden helle LED Zustände 
haben. Würde natürlich vom Auge nicht bemerkt.
Eigentlich will ich auch nur 32 verschiedene Zustände haben.
Diese aber nicht durch den besagten Poti sondern einen µC einstellen.

Geht so was?

von Marcel (Gast)


Lesenswert?

Benutze doch direkt eine PWM.

von Christoph H. (webturtle)


Lesenswert?

Werden 32 PWM Kanäle nicht arg viel für die CPU?
Hinzu kommt dass ich unterschiedlich viele LED pro Zustand will.

Also:
Zustand (niedriger gleich heller) - Anzahl LED
 1 - 4
 2 - 3
 3 - 1
 4 - 1
 5 - 1
 6 - 1
 7 - 1
 8 - 2
 9 - 2
10 - 4
11 - 3
12 - 4
13 - 5
14 - 4
15 - 5
16 - 2
17 - 4
18 - 6
19 - 8
20 - 9
21 - 9
22 - 8
23 - 8
24 - 6
25 - 10
26 - 2
27 - 2
28 - 1
29 - 1
30 - 1
31 - 1
32 - 1

Man sieht das ist ne Menge Holz mit bis zu 10 LEDs in einem Zustand. Ich 
weiss leider nicht wie ich die über einen z.B Atmega32 verschalten soll. 
Daher kam ich auf die Treiber von Pollin.

von Karl H. (kbuchegg)


Lesenswert?

Christoph Hoell schrieb:
> Werden 32 PWM Kanäle nicht arg viel für die CPU?

Das geht schon.
Muss man eben Software-PWM machen.

> Hinzu kommt dass ich unterschiedlich viele LED pro Zustand will.

Das ist egal.
Wenn du 32 Software-PWMs laufen hast, ist es egal wie die einzelnen LED 
eingestellt sind. Und wenn alle gleichzeitig auf Stufe 3 stehen ist das 
auch egal. Es werden sowieso immer alle 32 LED angesteuert.


Moment: Über wieviele LED sprechen wir eigentlich. In Teilen klingt 
deine Post danach als ob es gar keine 32 LED wären, sondern eigentlich 
nur 10?

Entscheidend ist die Anzahl der LED und zwar aller LED! Die bestimmt 
wieviele PWM Kanäle du brauchst.

von Marcel (Gast)


Lesenswert?

Wieso 32 PWM Kanäle? Hast du nicht davon geredet, das du 32 verschiedene 
Zustände haben willst, aus denen du einen auswählen kannst? Und dafür 
braucht es nicht mehr als einen PWM-Kanal.

Sollen die einzelnen LED der verschiedenen Zustände gleich hell 
leuchten?

von U.R. Schmitt (Gast)


Lesenswert?

Christoph Hoell schrieb:
> Daran soll eine LED oder mehrere hängen. Gibt es ja von Pollin zu kaufen

Wie 32 Kanäle? Du hast von einer oder mehreren LEDs gesprochen die an 
EINER Konstantstromquelle hängen soll.

Definier doch mal genauer was Du eigentlich erreichen willst und/oder 
male einen Verdrahtungsplan.

von Christoph H. (webturtle)


Lesenswert?

Okay, ich hab mich missverständlich ausgedrückt.
Liegt daran, dass ich nicht ganz genau ins Detail gehen kann, da jener 
der mit der Bastelei überrascht werden soll evtl. hier mitliest.

Also genauer:

Es geht in der Summe um 120 LEDs in gleicher Farbe.
Diese sind aufgeteilt in 32 Helligkeitsstufen.
Dann kommt die oben angegebene Zuteilung von Helligkeitsstufe und Anzahl 
der LED zu jeder der 32 Stufen.
Das würde mir eigentlich schon mal reichen.

Ein kleines wenig Zufalls heller oder dunkler bei einigen wäre nett aber 
nicht erforderlich.

Bitte sprech keiner aus was er denkt was es werden könnte.

von Falk B. (falk)


Lesenswert?

@  Christoph Hoell (webturtle)

>Eigentlich will ich auch nur 32 verschiedene Zustände haben.
>Diese aber nicht durch den besagten Poti sondern einen µC einstellen.

Dazu braucht man nur EINEN PWM-Kanal des Mikrocontrollers deiner Wahl. 
Fertig. Siehe LED-Fading.

MFG
Falk

von Christoph H. (webturtle)


Lesenswert?

Es sind also immer alle 120 LEDs an.
4 davon mit Helligkeitsstufe 1
3 davon mit Stufe 2
usw. wie oben in der Tabelle beschrieben.

Aber eben immer 120 an. Daher bräuchte ich ja theoretisch gar keinen µC. 
Es ginge auch 32 Konstantstromquellen über Potis zu regeln. Aber dann 
müsste ich alles von Hand einstellen.

von Falk B. (falk)


Lesenswert?

@  Christoph Hoell (webturtle)

>Okay, ich hab mich missverständlich ausgedrückt.

Ind er Tat. Aber dieses Posting ist auch nicht sonderlich erhellend.

>Liegt daran, dass ich nicht ganz genau ins Detail gehen kann, da jener
>der mit der Bastelei überrascht werden soll evtl. hier mitliest.

Sowas aber auch. Dann musst du wohl woanders fragen. UNd sinnvollerweise 
unter einem anderen Namen . . .

>Es geht in der Summe um 120 LEDs in gleicher Farbe.

Schön.

>Diese sind aufgeteilt in 32 Helligkeitsstufen.

???

>Dann kommt die oben angegebene Zuteilung von Helligkeitsstufe und Anzahl
>der LED zu jeder der 32 Stufen.

???

>Das würde mir eigentlich schon mal reichen.

Bahnhof.

>Ein kleines wenig Zufalls heller oder dunkler bei einigen wäre nett aber
>nicht erforderlich.

>Bitte sprech keiner aus was er denkt was es werden könnte.

Keine bange, deine wirre "Logik" versteht sowieso keiner.

Welche LEDs sollen bei welchem Zustand leuchten? Sollen die nur AN/AUS 
geschaltet werden oder linear gedimmt?

Fragen über Fragen.

MFG
Falk

von Christoph H. (webturtle)


Lesenswert?

Okay, ich sags einfach und hoffe dass mein neugieriger Kollege es nicht 
mitbekommt.
Ich möchte ihm einen Sternenhimmel schenken.
Dieser soll von den Konstellationen dem Sternenhimmel entsprechen der am 
Tag seiner Geburt zu sehen war.
Also die Sternbilder exakt darstellen.
Ich habe mir eine Karte gemacht und 120 Sterne festegelgt. Diese sind ja 
unterschiedlich hell.
Das habe ich auf 32 Stufen der Helligkeit zusammengefasst. Das Fachwort 
dafür wäre "visual Magnitude".

Es gibt nun also 3 Sterne die am hellsten sind.
3 Sterne sind etwas dunkler
1 Stern noch dunkler
usw.
In der schon sehr dunklen Stufe 25 sind dann z.B. 10 Sterne.

Es sind aber immer alle 120 Sterne an.

Ich denke es mir in der Theorie so:

Ein Timer zählt bis 256.
Bei 0 sind alle 32 Ports auf aus.
Bei 8 wird der Port mit Stufe 1 eingeschaltet
Bei 16 dann Stufe 2
usw. bis beim Überlauf alle wieder aus sind.

Mir ist nur nicht klar wie ich 10 LEDs an einen µC Port hängen kann.

von guest (Gast)


Lesenswert?

Und wozu genau brauchst du dann einen Controller wenn alle LEDs mit 
fester leuchten sollen? Rechne einfach für alle LEDs (oder für jede LED 
Gruppe) Vorwiderstände aus und fertig ist die Kiste.

von Christoph H. (webturtle)


Lesenswert?

guest schrieb:
> Und wozu genau brauchst du dann einen Controller wenn alle LEDs mit
> fester leuchten sollen? Rechne einfach für alle LEDs (oder für jede LED
> Gruppe) Vorwiderstände aus und fertig ist die Kiste.

Prinzipiell ja korrekt.
Wie gesagt, wenn di Sache ja mal grundsätzlich steht, würde ich im 
nächsten Schritt halt gern ein wenig "Zufallsblinken" reinbekommen.
Ausserdem ist es schwierig die Helligkeit zu schätzen.
Bei dem µC Controller könnte ich solange machen bis es passt.

Mein Problem: Hab einfach noch keine Erfahrung darin. Habe die µC bisher 
nur in Verbindung mit den Trinamic ICs zur Schrittmotorsteuerung 
benutzt.
Ich meine: 1 LED an einem Port ist kein Problem.
Aber: Wenn ich z.B. an einem Port 1 und am anderen 10 hab. Was passiert 
dann.
Daher die Fragen bevor ich mir nun zig LEDs und µC schiesse.

von Karl H. (kbuchegg)


Lesenswert?

Christoph Hoell schrieb:

> Also die Sternbilder exakt darstellen.
> Ich habe mir eine Karte gemacht und 120 Sterne festegelgt. Diese sind ja
> unterschiedlich hell.
> Das habe ich auf 32 Stufen der Helligkeit zusammengefasst. Das Fachwort
> dafür wäre "visual Magnitude".

Bau 32 Konstantstromquellen und häng die LED direkt an. Ist einfacher.

32 Helligkeitsabstufungen, dafür brauchst du schätzungsweise 64 PWM 
Stufen, damit du dir von 2 Helligkeitsstufen diejenige aussuchen kannst, 
die dir in der Helligkeit zusagt.

120 PWM-Stufen a 6-Bit ist machbar mit einem 16Mhz Prozessor, vor allen 
Dingen, wenn der sonst nicht allzuviel zu tun hat.
Aber: Um die LED anzuschliessen brauchst du noch Schieberegister und 
spätestens dann lohnt es sich nicht mehr, das alles über einen µC zu 
machen.

von Karl H. (kbuchegg)


Lesenswert?

Christoph Hoell schrieb:

> Ausserdem ist es schwierig die Helligkeit zu schätzen.
> Bei dem µC Controller könnte ich solange machen bis es passt.

Irrtum.
Mit PWM kriegst du zb 128 oder 256 Abstufungen hin. Bei einer 10 Bit PWM 
wären es 1024, aber das wird in Software schon sehr eng.
Aus diesen 256 kannst du dir aussuchen. Aber mit "dann probier ich 
solange bis es passt" ist nicht.

> Ich meine: 1 LED an einem Port ist kein Problem.
> Aber: Wenn ich z.B. an einem Port 1 und am anderen 10 hab. Was passiert

Hast du aber nicht.
Du hast in Summe 120 LED. Mit 10 LED an einem Port ist dir nicht 
geholfen. Entweder alle 120 oder gar keine.

120 LED gehen aber nicht mehr in Hardware PWM. Da muss Software ran. 
Prinzipiell kein Problem, nur mit einer 10 Bit PWM wird das nichts mehr.

von Christoph H. (webturtle)


Lesenswert?

> Bau 32 Konstantstromquellen und häng die LED direkt an. Ist einfacher.
>
> 32 Helligkeitsabstufungen, dafür brauchst du schätzungsweise 64 PWM
> Stufen, damit du dir von 2 Helligkeitsstufen diejenige aussuchen kannst,
> die dir in der Helligkeit zusagt.
>
> 120 PWM-Stufen a 6-Bit ist machbar mit einem 16Mhz Prozessor, vor allen
> Dingen, wenn der sonst nicht allzuviel zu tun hat.
> Aber: Um die LED anzuschliessen brauchst du noch Schieberegister und
> spätestens dann lohnt es sich nicht mehr, das alles über einen µC zu
> machen.

Daher war das ja auch meine Ursprüngliche Überlegung.
Und daher fragte ich ja auch ob es einen Weg gibt, die 
Konstantstromquellen mittels µC zu steuern.

Ich überlegte halt z.B. was passiert wenn ich die Konstantstromquellen 
irgendwie mit dem µC beinflussen könnte...

von Christoph H. (webturtle)


Lesenswert?

> Irrtum.
> Mit PWM kriegst du zb 128 oder 256 Abstufungen hin. Bei einer 10 Bit PWM
> wären es 1024, aber das wird in Software schon sehr eng.
> Aus diesen 256 kannst du dir aussuchen. Aber mit "dann probier ich
> solange bis es passt" ist nicht.
>
Das versteh ich nicht. Sagen wir einfach mal ich bleib bei 128 
Abstufungen.
Aus diesen 128 könnte ich mir doch 32 Zustände aussuchen die mir 
gefallen.
Das meine ich mit ausprobieren.

Oder so:
Ein µC sollte mit 30 LEDs doch klarkommen. Davon nehme ich dann einfach 
4 Stück und hätte 120 Einzeln bedienbare LEDs. Das muss ja auch nicht 
aufeinander abgestimmt sein.

Ich bleib da doch noch bisschen dran.

von Karl H. (kbuchegg)


Lesenswert?

Sieht doch bescheuert aus, wenn die Sterne einer Gruppe gleichzeitig im 
Takt blinken. Wie wenn da ein Kurzschluss drinn wäre oder ein Kabel 
einen Wackelkontakt hat.

Wenn du blinken willst, dann müssen die Einzelsterne unabhängig 
voneinander leicht blinken (und man kann auch noch andere coole Effekte 
damit machen, wenn man jede LED einzeln in der Helligkeit ansteuern 
kann. Ich sag nur "Blitzlichter im Stadion" - absolut geil)

von Christoph H. (webturtle)


Lesenswert?

120 einzeln steuerbar sind sicher cool.
Daher ja auch die Verteilung auf mehrere.

von Christoph H. (webturtle)


Lesenswert?

Zum Beispiel 8 x Attiny 26 mit 16 Mhz sollte es gehen.
Kosten doch kein Geld.

von Falk B. (falk)


Lesenswert?

@  Christoph Hoell (webturtle)

>Und daher fragte ich ja auch ob es einen Weg gibt, die
>Konstantstromquellen mittels µC zu steuern.

Sicher, mit PWM. Man muss es ja nicht komplizierter machen als nötig.

Mit Soft-PWM kann man problemlos 32 PWM-Kanäle erzeugen, mit je 8 
Bit = 256 Stufen.

Deine 120 LEDs werden in 32 Gruppen a 4 LEDs zusammengefasst, sprich 
eine PWM steuert 4 LEDs.
Diese 32 Gruppen können unabhängig voneinander gesteuert werden. Damit 
bekommt man den "blinkenden" Sternenhimmel.
Die je 4 LEDs schaltet man sinnvoll in Reihe.

Für die ganze Veranstaltung braucht es einen ATmega16 im DIL40 Gehäuse, 
4x ULN2803 als Treiber für die LEDs und bissel Gemüse. Fertig.

MFG
Falk

von Jörg B. (manos)


Lesenswert?

Vielleicht könnte der hier auch interessant sein... Der kann in einer 
Matrix mit 144 LEDs jedes LED mit 8Bit Helligkeit dimmen und benötigt 
keine Vorwiderstände...
http://www.elektor.de/elektronik-news/matrix-led-treiber-fur-144-kanale.1500611.lynkx

von Christoph H. (webturtle)


Lesenswert?

Falk Brunner schrieb:
> @  Christoph Hoell (webturtle)
>
>>Und daher fragte ich ja auch ob es einen Weg gibt, die
>>Konstantstromquellen mittels µC zu steuern.
>
> Sicher, mit PWM. Man muss es ja nicht komplizierter machen als nötig.
>
> Mit Soft-PWM kann man problemlos 32 PWM-Kanäle erzeugen, mit je 8
> Bit = 256 Stufen.
>
> Deine 120 LEDs werden in 32 Gruppen a 4 LEDs zusammengefasst, sprich
> eine PWM steuert 4 LEDs.
> Diese 32 Gruppen können unabhängig voneinander gesteuert werden. Damit
> bekommt man den "blinkenden" Sternenhimmel.
> Die je 4 LEDs schaltet man sinnvoll in Reihe.
>
> Für die ganze Veranstaltung braucht es einen ATmega16 im DIL40 Gehäuse,
> 4x ULN2803 als Treiber für die LEDs und bissel Gemüse. Fertig.
>
> MFG
> Falk

Das wäre dann aber nur ein weiterer blinkender Sternenhimmel.
Das blinken selbst ist mir aber ja gar nicht so wichtig, bzw. ein 
Zusatzgimmick.
Mir geht es um die möglichst reale Abbildung der Sternhelligkeit im 
Verhältniss zueinander. Und da hilft mir das mit dem Einteilen in 4er 
LED Gruppen nicht.
Einige Gruppen haben nur eine LED dafür ne andere Gruppe 10.

von Christoph H. (webturtle)


Lesenswert?

Jörg B. schrieb:
> Vielleicht könnte der hier auch interessant sein... Der kann in einer
> Matrix mit 144 LEDs jedes LED mit 8Bit Helligkeit dimmen und benötigt
> keine Vorwiderstände...
> 
http://www.elektor.de/elektronik-news/matrix-led-treiber-fur-144-kanale.1500611.lynkx

Ja warum nicht.
Habe mal bei Future Electronics angefragt was er Kosten soll.
Klingt gut.

von Karl H. (kbuchegg)


Lesenswert?

Christoph Hoell schrieb:

> Das wäre dann aber nur ein weiterer blinkender Sternenhimmel.
> Das blinken selbst ist mir aber ja gar nicht so wichtig, bzw. ein
> Zusatzgimmick.
> Mir geht es um die möglichst reale Abbildung der Sternhelligkeit im
> Verhältniss zueinander.

Die kriegst du sowieso nicht dem Vorbild entsprechend hin.

> Und da hilft mir das mit dem Einteilen in 4er
> LED Gruppen nicht.

Das bedeutet lediglich, das 4 Sterne in deinem simulierten Himmel immer 
die gleiche Helligkeit haben. Aber die 4 Sterne müssen nicht 
nebeneinander sein. 4 Sterne mit gleicher Helligkeit sind aber 
verschmerzbar und fallen nicht weiter auf. Viel unangenehmer ist es, 
dass du die Sternfarben nicht simulieren kannst.

von Christoph H. (webturtle)


Lesenswert?

Aber mal ehrlich: Wenn man bei allem was irgendwie realistisch sein 
soll, sagt man kriegt es eh nicht hin, wäre die Computergrafik heute 
noch auf dem Stand vom C64.

Das Auge kann 32 Helligkeitsstufen schon unterscheiden.
Also warum sollte es nicht hinzukriegen sein?

Eher verzichte ich auf den µC als das ich bewusst 4 Sterne gleich Hell 
mache die nun mal unterschiedlich sind.

Ich tüftle einfach weiter.

von Karl H. (kbuchegg)


Lesenswert?

Christoph Hoell schrieb:
> Aber mal ehrlich: Wenn man bei allem was irgendwie realistisch sein
> soll, sagt man kriegt es eh nicht hin, wäre die Computergrafik heute
> noch auf dem Stand vom C64.
>

1) weil die Sterne am Himmel in Wirklichkeit hunderte visuell sichtbare
   Helligkeitsabstufungen haben, die du sowieso schon auf lediglich
   32 eingedampft hast

2) Ob 2 nebeneinanderliegende Sterne daher einen durch die
   Beschränkung auf 32 Abstufungen ohnehin schon nicht mehr der
   Realität entsprechenden Helligkeitsabstand noch ein klein wenig
   unrealistischer wirken, spielt dann auch keine Rolle mehr.

3) Den Unterschied zwischen Stufe 31 und Stufe 32 wird man mit
   freiem Auge kaum mehr ausmachen können.
   Ich empfehle dringend eine LED an eine PWM zu hängen und sich das
   mal anzusehen!


Ist doch am Himmel ganz genau so. Durch Luftverschmutzung, 
Lichtverschmutzung bzw. ganz banal Dämmerung sind die Helligkeiten 
sektorweise sowieso genausowenig vergleichbar.

> Das Auge kann 32 Helligkeitsstufen schon unterscheiden.

Und wie es das kann!
Häng eine LED drann und sieh dir das an! Du wirst dich noch wundern.

> Aber mal ehrlich: Wenn man bei allem was irgendwie realistisch sein
> soll,

Das hast du in den falschen Hals gekriegt.
Es geht darum zu erkennen, wo in einer Simulation der Realität Schluss 
sein soll, weil der Aufwand sonst exorbitant hoch wird.

von Jörg B. (manos)


Lesenswert?

Das Problem ist, dass PWM mit LED nicht linear ist von der Helligkeit. 
die Unterschiede zwischen 1,2,3 von 256 PWM-Stufen kann man deutlich 
unterscheiden, bei 253,254,255 von 256 Stufen sieht man keinen 
Unterschied mehr.

von sonstwer (Gast)


Lesenswert?

willst du die helligkeiten der sterne eigentlich kontinuierlich 
verändern?

Dann reichen 32 Stufen beileibe nicht aus, außer wenn du den Sollwert 
deiner Stromquellen stark tiefpassfilterst.

von Christoph H. (webturtle)


Lesenswert?

Also was soll ich sagen: Ihr hattet recht.
Bevor ich hier weiter spekuliere habe ich mal einige µC bestellt und die 
Sache getestet.
Es ist wie ihr sagtet, ich habe die Fähigkeit des Auges unterschätzt.
32 Stufen gehen nie und nimmer so zu unterscheiden.

Ich habe es mit dem intelligenten Soft PWM Code von dieser Seite 
versucht und bei guter Wahl der 8 Werte kann man die gerade so 
unterscheiden.
Es reicht also dicke aus, 8 Helligkeitsstufen zu nehmen. Es würden wohl 
sogar 6 gehen.
(Komisch war für mich, dass der Code auf dem Atmega8 super ging, auf dem 
Attiny26 jedoch nicht.)

Also muss ich nun umplanen. Ich denke es ist nun doch die beste Idee 
sich auf ein Zufällig Blinken zu konzentrieren. Als Gimick will ich 
vielleicht die Sternbilder dann einzeln wählbar machen, so dass diese 
dann "hervorhebbar" sind.
Jetzt muss ich aber doch erst mal wieder alle Threads zu den 
Sternenhimmel lesen. Irgendwo war ein Link zu nehm brauchbaren Code.

Chris, der dankbar fürs Augenöffnen ist.

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
Noch kein Account? Hier anmelden.