Forum: Mikrocontroller und Digitale Elektronik Viel mehr Spaß mit einfachen LED


von Michael (Gast)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen,

Viele hochintelligente RGB-LEDs sind derzeit auf dem Markt (die sicher 
irgendwann mal auch noch per Cloud selbständig Kontakt zur Fabrik 
aufnehmen werden ;-) ). Auch Microcontroller, die von der Leistung her 
wohl sogar für eine Marsmission taugen würden.
Dazu fiel uns neulich auf, dass die Beschäftigung mit beiden zwar 
optisch durchaus beeindruckende Ergebnisse liefern kann, vor allem auch 
zu überschaubaren Kosten, dass damit irgendwie aber auch ein wichtiger 
Spaßfaktor verloren gegangen ist.

Um Ressourcen muss sich (zum Glück) keiner mehr Gedanken machen, selbst 
wenn die Tools heute für das simple Blinken einer LED gefühlte Megabyte 
Programmcode generieren. Und für einen schlappen Euro mehr gibts den 
Controller gleich auch mit doppelter Portzahl.

Dabei besteht eigentlich gerade ein besonderer Reiz und eine große 
Herausforderung darin, das maximale aus einer eher beschränkten Hardware 
herauszuholen.
Wir haben uns deshalb mal an so einen alten Hut wie "Lichteffekte per 
Mikrocontroller" herangewagt. Und finden, ein originelles Beispiel 
gefunden zu haben. Es zeigt, dass ungewöhnliche Lichteffekte auch mit 
Standard-LED und winzigen Controllern machbar sind.

Wie im Bild zu sehen ist, enststand eine analoge LED-Uhr. Mit nur 5 Pins 
werden dazu 20 LED einzeln angesteuert. Dazu gibts 10 (soft)-PWM Kanäle 
für sanfte Übergänge bei den eingebauten Extra-Lichteffekten. Die Praxis 
hat gezeigt, dass die Uhrzeit auch bei hellem Tageslicht trotz der nur 
20 LED sehr gut ablesbar ist.

Das Programm hat 2K, die Taktfrequenz beträgt 8 Mhz. Wie nun alles 
funktioniert, ist hier im Video zu bewundern.

https://youtu.be/8gQc23zuWSk

(-- Das im Video sichtbare leichte Flimmern einiger LED ist in 
Wirklichkeit nicht wahrzunehmen --)

Beste Grüße

Micha

von Franklin (Gast)


Lesenswert?

Nix besonderes. Charlieplexing ist ein alter Hut.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Michael schrieb:
> Das Programm hat 2K, die Taktfrequenz beträgt 8 Mhz. Wie nun alles
> funktioniert, ist hier im Video zu bewundern.

 Was soll da bewundert werden ?

von Hagen R. (hagen)


Lesenswert?

20 LEDs an 5 Pins benötigen nur 5 Vorwiderstände und ein AVR benötigt 
nur ca. 5% Rechenzeit um alle 20 LEDs mit eigener PWM ansteuern zu 
können.

von Mensch (Gast)


Lesenswert?

Hallo

für die geborenen µC und Elektronikgötter die so eben mal eine Komplette 
Steuerung mit Bilderkennung programmieren und Datenblätter im Schlaf 
herunter beten ist das natürlich noch unterhalb des einsetzen einer 
Batterie in die Fernbedienung.

Es soll aber auch Anfänger und auch Fortgeschrittene geben die Stolz auf 
ihre Leistung sind und froh sind nach viel Arbeit und lernen ein 
vorzeigbares Ergebnis zu haben.
Fortgeschrittene und Profis die noch ein Minimum an Empathie haben und 
nicht vergessen haben das auch sie selbst mal Anfänger waren 
unterstützen aber auch so was, für sie ach so "Simples", durch Lob und 
konstruktive(!) aufbauende und helfende Kritik.

Also von mir:
Gut gemacht, da waren bestimmt viel Schweiß und Tränen im Spiel bis es 
so funktionierte wie im Video.
Mach weiter so.

Danke für die Vorstellung

mfg

Mensch

von UnsGehtsVielZuGut (Gast)


Lesenswert?


von spess53 (Gast)


Lesenswert?

Hi

Danke für die Vorstellung.

Was nutzt dir das? Weder Schaltplan noch Programm ist verfügbar.

MfG Spess

von Horst (Gast)


Lesenswert?

Glückwunsch zu einem durchgezogenen Projekt! Klar ist es nichts 
weltbewegendes, aber die Nörgelei der Anderen ist nun wirklich auch 
nicht nötig.
Besonders das Nachleuten sieht gut aus, wie ich finde.

von Hubert (Gast)


Lesenswert?

spess53 schrieb:

> Weder Schaltplan noch Programm ist verfügbar.

Nutzlos, da Perlen vor die Säue geworfen.

von Herr Mueller (Gast)


Lesenswert?

> https://youtu.be/8gQc23zuWSk

GEMA-freie Musik?

von Ralph S. (jjflash)


Lesenswert?

... ich find's n schönes Projekt : - ) wenn auch mit PIC Controller !

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Hubert schrieb:
>> Weder Schaltplan noch Programm ist verfügbar.
>
> Nutzlos, da Perlen vor die Säue geworfen.

 Nein, eben nicht.
 Weder ist das eine Perle noch sitzen hier Säue vor den Bildschirmen.
 Was soll das überhaupt werden, ohne Programm und Schaltplan ?
 Sollen wir jetzt alle vor Begeisterung in die Ohnmacht fallen ?


Michael schrieb:
> Mikrocontroller" herangewagt. Und finden, ein originelles Beispiel
> gefunden zu haben. Es zeigt, dass ungewöhnliche Lichteffekte auch mit
> Standard-LED und winzigen Controllern machbar sind.

 Weder sind 2K winzig, noch sehe ich da ungewöhnliche Lichteffekte -
 und selbst wenn, ohne Programm und Schaltplan ist das nicht mehr als
 Selbstwerbung - und dazu ist das alles einfach nicht gut genug.

 Mit Programm und Schaltplan würde es vielleicht der eine oder andere
 Anfänger noch nachbauen, aber so...

von Micha D. (micha_d)


Lesenswert?

Moin.

Gut gemacht. Leider mit PIC. Aber was solls.
Sieht gut aus, und man hat sicher was gelernt dabei.
Also sinnvolles Projekt. Allerdings hat der MC sicher
kein Flash-RAM wie im Video dargetan.
Hab sonst nix zu meckern gefunden.

MfG Micha.

von Gaukler (Gast)


Lesenswert?

Coole Sache, besonders das weiche Nachleuchten. Vielleicht kannst Du ja 
ein bißchen was vom Programm zeigen.

PS: lass Dich von den neidischen Selbstdarstellern hier nicht ärgern, 
die tönen nur laut den ganzen Tag ...

von Draco (Gast)


Lesenswert?

Mir gefällt es auch, jeder hat mal angefangen und man sieht das man auch 
mit wenig coole Dinge machen kann. Und! Es ist in der heutigen Zeit mal 
nix mit nem Arduino - das is schon mal was :-D

+1

von Joachim B. (jar)


Lesenswert?

Gaukler schrieb:
> PS: lass Dich von den neidischen Selbstdarstellern hier nicht ärgern,

wer ist denn hier Selbstdarsteller?

Ich sehe kein Schaltbild, kein Programm, also nix woraus man lernen 
könnte, das nenne ich Selbstdarstellung oder SPAM

Wenn es NMZ sein soll, OK hat funktioniert.

von Michael P. (Firma: n.a.) (micha1102)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen,

danke erstmal für eure Kommentare.

Micha D. schrieb :
> Leider mit PIC.
Ralph S. schrieb :
> wenn auch mit PIC Controller !

Sicher wäre mit einem vergleichbaren ATtiny25 die Programmierung 
einfacher gewesen. Zum PIC kam es letztlich nur wegen der Platine.

Die selbstdefinierten Vorgaben lauteten dafür:
- einseitig beschichtete Platine
- kleinstmöglicher Durchmesser, von den LED-Maßen vorgegeben
- keine Drahtbrücken (sonst wäre es zu einfach)
- keine SMDs
- "Edding-taugliche" Design rules
   (Abstand Lötpunkte min. 2,5 mm,
   keine Leiterbahnen zwischen benachbarten Lötpunkten hindurch)
- Die Zuordnung der LED erfolgt per Software. Ihr Platz im Kreis auf der 
Platine ist somit beliebig. Die antiparallelen LED-Paare sollten zur 
Layout-Vereinfachung jedoch direkt nebeneinander liegen
- kein Einsatz von CAD-Tools mit Autoroutern o.ä.

Mit der Lage der Pins für die Spannungsversorgung beim PIC war es am 
Ende irgendwie einfacher, beim Layout ohne jegliche Drahtbrücken 
auszukommen...
Die Schaltung für einen ATtiny25 wäre bis auf die Pinzuordnung am 
Controller identisch. S.o.

Marc V. schrieb :
> Weder sind 2K winzig ....

Der Platz ist bis aufs letzte Byte belegt. Allein die Nutzereingaben 
fürs Stellen der Uhr, die vielen Einstellungen der Optionen und die 
mögliche Fein-Kalibrierung des RC-Oszillators verbrauchen einigen Platz. 
Dazu noch ein halbwegs brauchbarer (Pseudo-)Zufallsgenerator. Man sollte 
auch nicht vergessen, dass zu jedem Zeitpunkt stets immer nur eine 
einzige LED leuchtet. Dafür ist einiges an Organisation in der Software 
erforderlich.

Mit einem Oszi wäre außerdem schnell erkennbar, dass hier keine 
klassische PWM für die Helligkeitssteuerung zum Einsatz kommt. Das 
dürfte bei nur 5 Pins für 10 Kanäle auch kaum machbar sein. Um die LED 
nun doch alle gleichmäßig und flackerfrei steuern zu können, ist eine 
Art Pulsmengenmodulation (also PMM?) programmiert, bei der Impulse von 
stets gleicher Länge aber in unterschiedlicher Anzahl der Reihe nach auf 
die aktiven LED verteilt werden.

Soviel noch zur Theorie..


Wenn wirklich Bedarf besteht, kann ich die Platine`samt Hex-File 
natürlich auch noch hochladen. Und für Anregungen, welche optischen 
Effekte sonst noch so interessant wären, bin ich auch immer dankbar.

Beste Grüße

Micha

von MC_FAN (Gast)


Lesenswert?

Hallo Michael,
TOLL das du es einen PIC genommen hast!
Und noch einen 12F, Super.
Bei 2K und den Funktionen nehme ich an das du es in ASM Programmiert 
hast.

Ich finde das Ergebniss sehenswert, und würde es auch sofort Nachbauen!
PICs habe ich hier genug hier (Atmel und Intel aber auch) da ich selber
damit sehr gerne Arbeite.

MC_FAN

von Franklin (Gast)


Lesenswert?

Michael P. schrieb:
> Um die LED
> nun doch alle gleichmäßig und flackerfrei steuern zu können, ist eine
> Art Pulsmengenmodulation (also PMM?) programmiert, bei der Impulse von
> stets gleicher Länge aber in unterschiedlicher Anzahl der Reihe nach auf
> die aktiven LED verteilt werden.

Das Verfahren nennt sich Bit-Angle-Modulation. Ist auch ein alter Hut.

von Tomas (Gast)


Lesenswert?

Dabei besteht eigentlich gerade ein besonderer Reiz und eine große
Herausforderung darin, das maximale aus einer eher beschränkten Hardware
herauszuholen


Nö, als Techniknerd vielleicht, aber manch einer macht sich auch um die 
Idee Gedanken als blos die technsiche Umsetzung ;)

von Axel S. (a-za-z0-9)


Lesenswert?

Franklin schrieb:
> Michael P. schrieb:
>> Um die LED
>> nun doch alle gleichmäßig und flackerfrei steuern zu können, ist eine
>> Art Pulsmengenmodulation (also PMM?) programmiert, bei der Impulse von
>> stets gleicher Länge aber in unterschiedlicher Anzahl der Reihe nach auf
>> die aktiven LED verteilt werden.
>
> Das Verfahren nennt sich Bit-Angle-Modulation.

Nein.

Das Kennzeichen einer BAM ist, daß die Längen der Impulse gerade nicht 
gleich, sondern typischerweise binär gewichtet sind.

von Markus M. (adrock)


Lesenswert?

Ich verstehe schon das der Weg das Ziel war, aber ich halte 20 (!) LEDs 
bei einer Uhr irgendwie für einen Designfehler.

12 oder 24 hätte ich verstanden. Aber gerade 20?! Wie zeigt die Uhr denn 
z.B. 23:50 an?

von Franklin (Gast)


Lesenswert?

Axel S. schrieb:
> Nein.

Doch.

Axel S. schrieb:
> Das Kennzeichen einer BAM ist, daß die Längen der Impulse gerade nicht
> gleich, sondern typischerweise binär gewichtet sind.

Das passiert ja auch. Da bei Charlieplexing ja immer nur eine LED zur 
selben Zeit leuchten darf ist es sinnvoll die Impulslänge durch 
Kombination von Einzelimpulsen zu erreichen. Für die einzelne LED setzen 
sich diese Einzelimpulse zum BAM-typischen 128-64-32-16-8-4-2-1 
Impulsverhältnis zusammen.

von X4U (Gast)


Lesenswert?

Schönes Projekt, danke für's veröffentlichen. Hoffe du lässt dir die 
Laune nicht durch die paar Miesepeter, Kritikaster und 
Markenfetischisten versauen.

Etwas off topic:
Warum das gemecker über die Kontrollermarke immer nur aus einer Ecke 
kommt verstehe ich übrigens gar nicht. Als ob das irgendwie von Belang 
wäre und. In diesem Fall auch noch von der gleichen Aktiengesellschaft 
irgendwo in Amiland hergestellt.

Erinnert mich an die Apple Jünger und ihre Elegien über den Power PC 
(eine Kiste die Profis bestenfalls in Drucker eingebaut haben -was jetzt 
aber kein Seitenhieb auf irgendeine Kontrollermarke sein soll).

Als dann Apple den gleichen Kram wie die PC Welt eingebaut hat blieb 
damals nichts anderes übrig als den Dongle zu bejubeln (oder den 
abgespeckten Frontend vor der Unix Standardkiste).

Meiner einer findet das anmaßend, unhöflich und inhaltlich schlicht dumm 
(ob ich nun PORTA oder PINA tippe ist so verschieden nicht).

von ne ne ne (Gast)


Lesenswert?

Boah langweilig...

von Michael P. (Firma: n.a.) (micha1102)


Lesenswert?

Hallo alle zusammen,

Markus M. schrieb:
> ich halte 20 (!) LEDs
> bei einer Uhr irgendwie für einen Designfehler.

Ein grundsätzlich völlig berechtigter Einwand. Tatsächlich ist es aber 
so:

Die Uhrfunktion ist nur ein "Abfallprodukt", da ich sowieso einen 
variablen Intervalltimer für die periodisch zu startenden Lichteffekte 
brauchte. Und dafür sollte nur grob die ungefähre Zeit darstellbar sein.

Für Nutzereingaben ist mindestens 1 Pin erforderlich. Die verbleibenden 
5 Pins erlauben nach der Formel n*(n-1) die Ansteuerung von maximal 20 
LED. Bei 6 Pins wären demnach zwar bis zu 30 LED möglich, allerdings 
fehlt dann der Anschluß eines Tasters. Und ohne den geht es nicht.

Die eigentliche Kernfunktion des Programms ist auch nicht ganz so 
trivial wie sie im Video vielleicht erscheint.

Der Lauf der Lichtpunkte wird nicht wie sonst üblich über Bit-Shift, 
Lookup-Tables oder if- und while- Konstruktionen mit Delays gesteuert. 
Vielmehr finden die bis zu 10 Lichtpunkte ihren Weg völlig autonom. Und 
zwar weitgehend nach den Regeln der Physik, also der Kinetik.

Die Nutzung vom Modul Reactor im 3dsMax brachte mich neulich auf die 
Idee, dieses Konzept mal auf einen Mikrocontroller zu übertragen.

Und das geht prinzipiell so:

Jedem Ort (hier also einer der 20 LED-Positionen) ist virtuell eine 
wirkende Kraft zugeordnet, dazu die Richtung). Diese Werte zur 
Nachbildung der Gravitation werden einfach einer Lookup-Table entnommen. 
D.h. an der obersten und untersten LED ist die Kraft 0. Links und rechts 
ist sie maximal, jedoch mit entgegengesetzter Richtung. Die 
Zwischenwerte sind dann vom Winkel der jeweiligen LED abgeleitet.

Jedem Objekt (hier also einem Leuchtpunkt) wird virtuell eine Masse, 
eine Geschwindigkeit, die Richtung, ein Reibungskoeffizient, eine 
Helligkeit, ein Leuchtverlauf, die Elastizität und das Verhalten bei 
Kollision zugeordnet. (Erinnert sich hier noch jemand an die Sprites 
beim C64?)

Faktisch wird also jedes Objekt nur einmal an den erforderlichen Ort 
platziert und ihm dazu die gewünschten Eigenschaften mit auf den 
Lebensweg gegeben.

Den Rest erledigt das Programm gemäß Physik und der Formel F=m*a dann 
allein. Mit zwei beabsichtigten Ausnahmen: Ordne ich einem Leuchtpunkt 
eine (unreale) Masse 0 zu, wird die momentane Position beibehalten. Und 
zweitens, an einem Ort darf sich mehr als ein Leuchtpunkt befinden.

Alles läuft komplett Timer-Interrupt gesteuert. Jedem Punkt können 40 
verschiedene Geschwindigkeiten und 22 Helligkeiten zugeordnet werden. 
Mehr geben die 8 MHz und 128 Byte RAM nicht her, reicht in der Praxis 
aber völlig aus.

Beim Lichteffekt "Ping Pong" im Demo-Video hat der wandernde Leuchtpunkt 
z.B. die Eigenschaft, bei Kollision mit einem anderen Lichtpunkt die 
Richtung zu wechseln. Mit einer größeren Elastizität würde er dabei dann 
auch noch ganz realistisch seine Geschwindigkeit erhöhen.

Würde ich den 10 langsam aufleuchtenden LED plötzlich eine Masse > 0 
zuordnen, fingen sie an immer schneller werdend links und rechts nach 
unten zu fallen, dabei weiter blinkend.

Beim gezeigten Lichteffekt "Pendel" im Demo-Video wäre es so: Ordne ich 
dem Punkt eine höhere Geschwindigkeit und einen Reibungskoeffizienten > 
0 zu, dann überschlägt er sich erst ein paarmal, pendelt dann eine Weile 
immer schwächer um dann irgendwann mal unten stehenzubleiben.
Also ganz wie im echten Leben.

Beste Grüße.

Micha


-

von Joachim B. (jar)


Lesenswert?

X4U schrieb:
> Schönes Projekt, danke für's veröffentlichen.

sehe ich auch so!

X4U schrieb:
> Hoffe du lässt dir die
> Laune nicht durch die paar Miesepeter, Kritikaster und
> Markenfetischisten versauen.

hey mach mal halblang, miesepetrisch wurde man ja weil vorher im 1. 
Beitrag nix war, kein Schaltbild keine Erklärung, kein Code!

Jetzt hat das schon mehr Gesicht.

von c-hater (Gast)


Lesenswert?

Michael P. schrieb:

> Und das geht prinzipiell so:
>
> Jedem Ort (hier also einer der 20 LED-Positionen) ist virtuell eine
> wirkende Kraft zugeordnet, dazu die Richtung). Diese Werte zur
> Nachbildung der Gravitation werden einfach einer Lookup-Table entnommen.
> D.h. an der obersten und untersten LED ist die Kraft 0. Links und rechts
> ist sie maximal, jedoch mit entgegengesetzter Richtung. Die
> Zwischenwerte sind dann vom Winkel der jeweiligen LED abgeleitet.
>
> Jedem Objekt (hier also einem Leuchtpunkt) wird virtuell eine Masse,
> eine Geschwindigkeit, die Richtung, ein Reibungskoeffizient, eine
> Helligkeit, ein Leuchtverlauf, die Elastizität und das Verhalten bei
> Kollision zugeordnet. (Erinnert sich hier noch jemand an die Sprites
> beim C64?)

[...]

OMG. Was für ein geballter Haufen akademischen Bullshits. Und das dann 
auch noch mit einer so logischen, einfachen und effizienten Sache wie 
den C64-Sprites zu verknispeln: Da hat ein Troll mal wieder ganze Arbeit 
geleistet. Respekt.

Hast du nix zu arbeiten? Wenn ich was zu sagen hätte, würdest du sehr 
bald was zu arbeiten haben und keine Zeit mehr zum Trollen...

von Michael P. (Firma: n.a.) (micha1102)


Lesenswert?

Hallo alle zusammen,

c-hater schrieb:
> Bullshits .....

Netter Beitrag. Dazu äußerst lehrreich. Und ganz besonders dein 
geschliffener Umgangston lässt auf eine ziemlich hohe mentale 
Taktfrequenz schließen.
C-hater, ich hoffe nur, du bist im wahren Leben nicht so ein armes, 
bedauernswertes kleines Würstchen, wie ich es mir gerade vorstelle. 
Jemand, dem niemand freiwillig auch nur ein winziges Glas Bier 
spendieren würde. Oder so ein kleiner Bubi, mit dem keiner im 
Buddelkasten spielen will.

Also bitte noch mal deine geistigen Kräfte bündeln und das Thema vom 
Thread zumindest grob erfassen. Dort taucht u.a. der Begriff "Spaß" auf 
(extra fur dich auch noch in Englisch -> "fun",  mal nach der Bedeutung 
googeln). Von Zulassungsbestimmungen, Arbeit, DIN oder sonstigen 
kommerziellen Aspekten war dagegen keine Rede.

Was meinst du, warum so viele nach ein paar Runden auf dem Nürburgring 
an der selben Stelle wieder aus ihrem Auto steigen. Oder stundenlang zum 
Angeln an einem See sitzen. Oder ein halbes Vermögen in Projekte in 
ihrem Modellbaukeller versenken.

Richtig! Weil sie es aus Spaß tun und dabei nicht nach einem Sinn oder 
der Kosten/Nutzen-Relation vom Ganzen fragen. Einfach weil sie es stolz 
und zufrieden macht.

Gleiches gilt für mich mit diesem kleinen Projekt. Und wenn du nicht nur 
schlau daher redest, kannst du ja mal zeigen was du kannst und diese 
MC-Schaltung (von den Kindern treffend Pusteblume getauft) selber 
programmieren. Das Platinen-Layout stelle ich dafür sogar bereit, 
wahlweise für AVR oder PIC.

Nach passenden Programmbeispielen oder gar fertigen Bibliotheken dazu 
wirst du im Netz aber wohl lange suchen müssen. Dennoch, so ein Experte 
wie du erledigt das alles ja ganz sicher locker in ASM an einem 
Wochenende...

Now over to you...

Beste Grüße.

Micha

von Draco (Gast)


Lesenswert?

Die Idee dahinter ist schon geil!

Ich hab vor vielen Jahren mal mit 3DS gearbeitet ( 
http://f4u-draconix.deviantart.com/ ), aber das man inspiriert vom 
Reactor Plugin auf ein µC ableitet, wäre mir nicht in den Sinn gekommen 
:-D

von Michael P. (Firma: n.a.) (micha1102)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen,

Draco schrieb:
> Ich hab vor vielen Jahren mal mit 3DS gearbeitet (
> http://f4u-draconix.deviantart.com/

Hi Draco, da kannst du ja sicher bestätigen, dass so was fast süchtig 
machen kann, wenn oft schon mit der kleinsten Änderung eines Parameters 
gleich eine ganz neue dynamische Szenerie entsteht.

Ich lasse bei mir viele der Werte im Programm durch den Zufallsgenerator 
zuweisen und erhalte so Milliarden von verschiedenen Leucht- und 
Bewegungsmustern. Viele davon total faszinierend, noch nie gesehen und 
auf konventionelle Art wohl auch niemals zu programmieren.

Falls es Interessenten gibt, die Layouts zur Platine habe ich für PIC 
und AVR nun mal sauber gezeichnet und lade sie hier hoch. Bei der 
AVR-Variante liegt der Taster jetzt an Pin 7 vom Controller, also anders 
als in der Schaltung weiter oben gezeigt. Somit konnten auch da alle 
lästigen Drahtbrücken entfallen.

Pinkompatible Controller mit höherer Leistung wie 12F1840 oder 
ATtiny45/85 funktionieren natürlich auch. Bei mir haben die 2K 
Programmspeicher und 128 Byte RAM jedoch für alles gerade so 
ausgereicht.

Beste Grüße.

Micha

von Michael U. (amiga)


Lesenswert?

Hallo,

sehr interessant.
>(von den Kindern treffend Pusteblume getauft)

Ein Elektretmikro an den Pin und dann wirklich "Pusteblume" machen.
Kann ja einfach den Taster ersetzen, Pegel zum Triggern könnte beim 
raufpusten ausreichen...

PS: war der Source eigentlich irgendwo dabei, speziell AVR?

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Martin S. (led_martin)


Lesenswert?

Hallo, jetzt muß ich mich doch mal melden.

Mir gefällt das Projekt sehr gut.

Schlimm daß manche hier nur rummeckern, warum soll man, beim 
Eloktronikbasteln, keinen Spaß haben? Gerade mit Mikrocontrollern und 
LEDs lassen sich viele Dinge bauen, die zwar keinen praktischen Nutzen 
haben, aber großen Spaß machen. Ein Bereich, auf den ich mich sogar 
etwas spezialisiert habe. Leider komme ich, aufgrund meiner schlechten 
Verfassung, viel zu wenig zum Basteln, aber wenn ich solche Projekte 
sehe, juckt's mich in den Fingern.

Mit freundlichen Grüßen - Martin

von eProfi (Gast)


Lesenswert?

Ich denke, Du hattest viel Freude und Erfolg bei der Konstruktion.
Auch von meiner Seite danke für die investierte Zeit.
Das Layout ohne Drahtbrücken hat sicher einige Überlegungen gekostet.

> Man sollte auch nicht vergessen, dass zu jedem Zeitpunkt stets immer
> nur eine einzige LED leuchtet.

Franklin schrieb:
> Da bei Charlieplexing ja immer nur eine LED zur selben Zeit
> leuchten darf ist es sinnvoll die Impulslänge durch
> Kombination von Einzelimpulsen zu erreichen.

Das ist eine Urban Legend. Beim 20Led-5Pin-Plexing können immer 4 Leds 
gleichzeitig leuchten.
Wenn jetzt jemand argumentiert: dann wird aber der Common-Pin überlastet
(P=R*I^2)?
Nein, da die LEDs ja auch nur vier mal so kurz eingeschaltet sein 
brauchen.
Oder die Vorwiderstände vergrößern, das ist bei den modernen ultrahellen 
alles kein Problem mehr.
Meine Vermutung war ja, Du hättest ganz ohne Vorwiderstände und mit <3V 
Vcc gearbeitet, was auch oft gemacht wird. Dann ist die Helligkeit stark 
von der Spannung abhängig, aber ein U-Regler ist ja vorhanden.

Schade, dass im Video die Musik abrupt abreißt. Ich hätte es ohne Musik 
gemacht und dabei etwas zur Entstehung erzählt.

Die Überlegung ist auch, dass man 6 Leitungen für 6x5-Plexing verwendet.
Dann hat man 30 Leds, jede 2 Sekunden eine
Mit dem Taster legt man ein Pin über einen Widerstand nach Masse (evtl. 
internen PullUp und ADC zum Auswerten verwenden).


Mir scheint, heute sind etliche User mit dem linken Fuß aufgestanden, 
schade. Ich wünsche gute Besserung.

von Danish B. (danishbelal)


Lesenswert?

Michael schrieb:
> Dabei besteht eigentlich gerade ein besonderer Reiz und eine große
> Herausforderung darin, das maximale aus einer eher beschränkten Hardware
> herauszuholen.

Endlich jemand, der mich versteht :D

von Michael P. (Firma: n.a.) (micha1102)


Lesenswert?

Hallo alle zusammen,

Michael U. schrieb:
> Ein Elektretmikro an den Pin....

Die Idee mit dem Elektretmikro werde ich ausprobieren, bin schon 
gespannt. Werde ein altes Handy dafür ausschlachten.

Noch was für Interessierte an außergewöhnlichen Lösungen:

Für die Lichteffekte brauche ich im Programm einen Zufallsgenerator. Und 
der ist in jedem uC ja bekanntlich ein großer Schwachpunkt, da es in der 
digitalen Computerwelt einen echten Zufall nicht geben kann und darf. 
Auch der beste Algorithmus liefert also nach dem Programmstart leider 
stets exakt die gleiche Reihe an Zufallszahlen (Deshalb schließlich der 
Name Pseudo...). Behelfen kann man sich da nur, indem man externe 
variable Werte wie z.B. Licht oder Temperatur per ADC zum Initialisieren 
des Generators mit hinzufügt.

Da meine Schaltung mangels freiem Pin keine zusätzlichen Sensoren mehr 
verkraftet, bin ich auf der Suche nach Alternativen durch Zufall auf 
eine einfachste Lösung für einen "echten Zufallsgenerator" gestoßen.

Und der geht so:

Die Schaltung bleibt unverändert. Wenn ich nun einen Zufallswert 
brauche, schalte ich einfach  irgend ein Pin als Ausgang kurz auf 0 
(Damit werden stets 8 LED einseitig Richtung GND gezogen). Ein anderes 
Pin schalte ich kurz auf analogen Eingang um und starte da eine 
10bit-ADC. Der erhaltene "Messwert" erscheint zwar total unsinnig, ist 
dafür aber perfekt zufällig, sehr gleichmäßig verteilt und somit als 
Zufallswert ideal geeignet.
Das kann ich hier ganz einfach prüfen, indem ich in einer 
Endlos-Schleife mit dem generierten Zufallswert MODULO 20 direkt eine 
der LED im Kreis adressiere. Nach jedem Programmstart entstehen wie 
angestrebt völlig unterschiedliche Zahlenfolgen.

Ich vermute, die Leiterbahn am hochohmigen ADC-Pin fängt Funkwellen oder 
Störfelder ein, die am Halbleiterübergang der LED demoduliert bzw. 
gleichgerichtet werden und eine ausreichende Spannung aufbauen. Und Dank 
geringster Kapazitäten beim Pin und der LED ist dieser Wert für jede 
folgende ADC auch unterschiedlich hoch. Hier kann man Störfelder endlich 
auch mal zu seinem Vorteil nutzen...

Das Prinzip müsste überall da funktionieren, wo zumindest eine LED an 
einem uC-Ausgang hängt, der auch als ADC-Kanal umschaltbar ist. Kann ich 
echt zur Nachahmung empfehlen! (Oder ist das schon wieder nur ein alter 
Hut? ;-)) ).

Beste Grüße.

Micha

von Michael D. (mike0815)


Lesenswert?

@Martin Schlüter
> Schlimm daß manche hier nur rummeckern, warum soll man, beim
> Eloktronikbasteln, keinen Spaß haben?
Quatsch, das darf doch keinen Spaß machen, jetzt aber... :-))))
> Gerade mit Mikrocontrollern und
> LEDs lassen sich viele Dinge bauen, die zwar keinen praktischen Nutzen
> haben, aber großen Spaß machen.
Eben! Und gerade wenn was leuchtet, blinkt oder blitzt, besteht immer 
eine gewisse Faszination. "Jeder" muß da hinschauen, das ist 
naturgegeben!
Ich komme aus der Werbebranche, da wird u.A. mit Lichteffekten noch mehr 
Aufmerksamkeit erregt.
Kurz um, ich finde solche "Spielereien" einfach faszinierend, wie z.B. 
auch die LED-Cubes. Und 20 LEDs mit nur einem 8 beinigen µC zum 
leuchten/faden, etc. zu bewegen, einfach nur genial! Hätte ich mehr 
Programmierkenntnisse, würde ich mich sofort ans Werk machen.
Vielleicht stellt ja Jemand einen Atmel Code zum obigen Layout zur 
Verfügung?

Vom Themen Ersteller, liest man weiter nicht's mehr, wie ich das sehe?
Manchmal bin ich der Meinung, daß sich einige schon gar nicht mehr 
trauen,
hier etwas vorzustellen, weil man befürchten muß, auseinander genommen 
zu werden, was hier schon oft der Fall war! Das ist natürlich 
demotiviertend und ich persönlich finde das zum...

Gruß Michael

von Oetti (Gast)


Lesenswert?

Martin S. schrieb:
> Schlimm daß manche hier nur rummeckern, warum soll man, beim
> Eloktronikbasteln, keinen Spaß haben?

Gerade die Pruckelei mit Mikrocontrollern kann süchtig machen - auch ich 
baue Dinge "weil ich's kann" und Spaß dran habe!

Michael D. schrieb:
> Manchmal bin ich der Meinung,
> daß sich einige schon gar nicht mehr trauen,
> hier etwas vorzustellen, weil man befürchten muß, auseinander genommen
> zu werden, was hier schon oft der Fall war! Das ist natürlich
> demotiviertend und ich persönlich finde das zum...

Es sind zum Glück nicht alle Schreiber so negativ drauf. So manche 
Antworten hier gehen garnicht, hast Du recht.

von Wolfgang (Gast)


Lesenswert?

Michael schrieb:
> (-- Das im Video sichtbare leichte Flimmern einiger LED ist in
> Wirklichkeit nicht wahrzunehmen --)

Da sind sich wohl PWM-Frequenz und Kamerabildfrequenz ins Gehege 
gekommen. Das nenne sich Aliasing.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Schönes Projekt!
Um die Notwendigkeit zu umgehen, den Tiny25 dauerhaft auf HV Programming 
umstellen zu müssen, um Reset als Portpin zu benutzen, könnte man den 
Trick mit dem ADC auf Pin1 machen und dort den Benutzerknopf 
anschliessen. Mit einem Spannungsteiler kann man dann den Pin nur 'ein 
bisschen' runterziehen und das mit dem ADC erkennen.
Somit bleibt ISP weiter benutzbar. Reset ist ja als I/O auch nicht so 
kräftig wie die anderen Pins.

: Bearbeitet durch User
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.