www.mikrocontroller.net

Forum: Projekte & Code AVR-Lauflicht


Autor: Rolf Magnus (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hab grade für eine Rundumleuchte für den Modellbau ("Blaulicht", aber
bei mir isses rot) ein AVR-basiertes Lauflicht mit 5 LEDs gebastelt.
Damit die Rotation nicht so ruckelig aussieht, wird ein weicher
Übergang per Software-PWM gemacht. Das Ganze braucht nur 50 Bytes
Speichr. Wieso gibt's eigentlich noch keine AVRs mit 64 Bytes Flash?
;-)
Es müßte im Prinzip auf jedem AVR-Mikrocontroller tun, da außer den 5
Digital-Ausgängen nichts (keine Timer, keine PWM, kein Stack, keine
Interrupts) verwendet wird. Primär ist es natürlich für die kleinen
8-Pin-Typen gedacht.
Das ist zwar nix besonderes, aber könnte für Einsteiger vielleicht als
Beispiel interessant sein.
Über den DELAY-Wert kann die Rotationsgeschwindigkeit angepasst werden.

Autor: Rolf Magnus (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch der dazugehörige Schaltplan. Abblockkondensator und
Reset-Pullup-Widerstand hab ich mal mit eingezeichnet. Es geht aber
wohl zur Not auch ohne.
Da zu jedem Zeitpunkt genau eine LED an ist, braucht man nur einen
einzelnen gemeinsamen Vorwiderstand für alle. Da der Mikrocontroller
bei low-Pegel mehr Strom schafft, sind die LEDs nach +5V verschaltet.
Die Software berücksichtigt das und verwendet für eine eingeschaltete
LED low-Pegel, für aus high-Pegel.
Es folgt noch ein kleines Video, das die Sache in "action" zeigt,
falls ich den PC überreden kann, die Videos von der Kamera anzunehmen.

Autor: Rolf Magnus (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also, hier noch das Video.
Man sieht ein kleines selbstgebasteltes Rundumlicht mit 5 LEDs in
Bauform 0603 und einem kleinen 1mm-Metallröhrchen in der Mitte (hatte
ich grad rumliegen), an das die Anoden aller LEDs direkt angelötet
sind. Unterhalb dieser Stelle ist dann etwas Schrumpfschlauch drauf,
damit die Katoden nicht an das Röhrchen kommen. An die Katoden ist
jeweils 0,2mm-Kupferlackdraht gelötet, der dann zur Zugentlastung
nochmal mit Schrumpfschlauch am Röhrchen fesgehalten wird. Das Gebilde
hat inklusive LEDs einen Durchmesser von ca. 4mm. Für ein
H0-Polizeiauto wäre es wohl noch zu groß ;-)

Autor: Jens D. (jens) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
fuer so etwas brauchst du gleich einen mikrocontroller, der 3 .. X EUR
kostet??

Autor: Herr Mueller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jens

Der Bauteile-Aufwand mit 4 Bauteilen ist, denke ich, nicht zu
unterbieten. Ausserdem kostet der Tiny12 nur 1.20 Euro. Auch das kann
man mit diskretem Aufbau nur schwer toppen. Wenn man den SMD Tiny
nimmt, braucht man weniger als 1 cm². - Und ausserdem ist das ein
Mikrocontroller Forum ;-)

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Etwas skrupel davor, gleich einen ganzen Mikrocontroller für sowas
einfaches zu nehemn, hatte ich ja schon irgendwie. Aber:

Der Tiny11 kostet bei Reichelt nur 82 cent. Wo anders hab ich
ihn sogar für 65 cent oder so gesehen. Einen HV-Programmer wollte ich
mir eh basteln, um bei den Achtbeinern auch mal den Reset-Pin als I/O
nutzen zu können, und damit kann ich dann auch den Tiny11
programmieren. Das Ganze ist als Ersatz für ein 5-Kanal-
Lauflichtmodul vom blauen Klaus gedacht, das vorher für das Rundumlicht
eingesetzt wurde. Es ist deutlich größer, mit €4,29 auch teurer
und macht keinen sanften Übergang. Wie Herr Müler schon schreibt,
gibt's kaum eine kleinere, billigere und einfachere Lösung als einen
Mikrocontroller, selbst wenn ich den "teuren" Tiny12 nehme.

@ Jens: Wo kaufst du eigentlich deine Mikrocontroller? Ich hab bisher
noch keinen 8-Pin-AVR gesehen, der 3 Euro oder gar mehr kostet.

Autor: felmster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tiny11@digikey: 0.44€ o.Mwst., also mit gerade mal nen halben
Euro! da gehen sich viele lauflichter aus!!!

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieht ja süß aus, das wär was als (in blau) für ein Polizeiauto für die
Modelleisenbahn. Geht wahrscheinlich sogar in Spur N. Lecker :)

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> tiny11@digikey: 0.44€ o.Mwst., also mit gerade mal nen halben
> Euro!

Stimmt, fast billiger als ein TTL-Baustein bei Reichelt.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rolf

Habs jetzt endlich geschafft, dein AVI anzusehen, mußte mir dazu erst
MPLayer ziehen weil der Mediaplayer von XP den Codec nicht hatte und
auch nicht ziehen konnte :(

Ich find dein Lauflicht cool!

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ...weil der Mediaplayer von XP den Codec nicht hatte und auch
> nicht ziehen konnte

Hmm, hatte eigentlich gedacht, das würde mit dem auch funktionieren.
Ist doch gewöhnliches divx (zumindest sollt es das sein).

Autor: Bernhard WALTER (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Terrageil" das 1s Video,echt toll bunt.
Respekt!
Tipp: nur zu C1 noch etwa 1nF (560pF - 2.2nF)(paral.), und die
Schaltung geht durch. (EMV -Prüfung).
(100nF haben bei 40Mhz ein neg. Loch)im blocken bei HF.
Spendiere gerne 5 EL Folien mit DIN A3 Format, nebst
High Speed HV Optokoppler.
(OK anstatt LED).
Wunsch:avr asm doku in deutsch, habe vor einer 1 Kw beschlossen ,
als Oldi, Analogknispel mit 48j noch avr asm (ohne
engl.)(Vorkenntnisse) reinzuziehen.

Autor: Hubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yoctogeil
Zeptogeil
Attogeil
Femtogeil
Picogeil
Nanogeil
Mikrogeil
Milligeil
Zentigeil
Dezigeil

geil

Dekageil
Hektogeil
Kilogeil
(Myriageil)
Megageil
Gigageil
Terageil
Petageil
Exageil
Zettageil
Yottageil

Autor: Jadeclaw (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Quote: "Ist doch gewöhnliches divx (zumindest sollt es das sein)."
Microsoft in seinem grenzenlosen Egoismus weigert sich schlicht,
Fremdcodecs mit in den Codec-Verteiler aufzunehmen.
Wem DivX fehlt, schaue hier:
http://www.divx.com/
Zum Gucken den Free Download nehmen.

Autor: Sebastian Schildt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Bernhard W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für den Tipp, die Lernunterlagen auf
deutsch, sind mir eine große Hilfe

Autor: Michael K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rolf Magnus

danke dir für die Mnemo- Codes und es geht wunderbar auf dem STK500...

Thx, Michael

Autor: lightninglord (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute, tolles Lauflicht echt.

Nur eine Sache:

Mir ist die Funtion des Codes nicht so wirklich verständlich, wie
machste den so nen schönen PWM übergang, ich Progge zwar auch asm aber
ich steige nciht durch den Code, wie läuft das denn genau ab?

Denke schonmal greezle lightninglord

Autor: netdive (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm, ich bin leider ncoh nicht so sehr in sachen µC bewandert.
ab kannst du mir sagen, warum du den PB5 über nen Widerstand auf Vcc 
gelegt hast?

Autor: Jadeclaw Dinosaur (jadeclaw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PB5 ist im Normalfalle der Reseteingang bei diesem Controller.
Da der interne PullUp-Widerstand recht hochohmig ist ( >= 100kOhm ),
schlagen Störungen natürlich voll durch und sorgen für unerwünschte 
Resets.
Ein zusätzlicher PullUp von 10kOhm reduziert das Problem deutlich.

Gruss
Jadeclaw.

Autor: Michael U. (tolle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rolf,

ich habe Dein Lauflicht nachgebaut.Super!
Welchen Wert müsste ich für den Delay eingeben, um die 
Rotationsgeschwindikeit halb so schnell zu erhalten?
Ich habe schon einige Versuche unternommen, bin jedoch zu keinem 
Ergebnis gekommen.

Autor: Bella (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich versucht gerade eine Aufgabe mit dem Mikrocontroller von MyAvr 
zu lösen. Da ist mir teilweise gelungen.Ich sollte ein lauflicht mit 
taste 1 von oben nach unten über die lEDs aktivieren und mit Taste 2 in 
umgekehrte Richtung. Ich habe zwar die Code für die zwei Taste getrennt 
programmiert aber ich kann es leider nicht auf eine laufen Lassen. Kann 
jemand mir ein tipps geben?

Autor: Bella (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Code Darstellung zu meine vorherige Frage.

Autor: TobyTetzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin grade dabei, ein 4 Kanal PWM lauflicht in C zu erstellen.
Leider klappt die Logik nicht so ganz.
ich habe 4 Soft PWM Kanäle mit je 100 Schritten.
In einem Timer lasse ich einen PWM Wert hoch und runter zählen.
So weit so gut, faden geht also, aber wie bekomme ich es nun hin,
das die erste LED 50% leuchtet, wenn die 2. LED 100% hat, und die 3. 
wieder 50%.
Das ganze muss dann natürlich auch noch "rotieren".

Danke für die Hilfe.

Gruß Toby

Autor: TobyTetzi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal.

Anliegend mein bisheriges Programm.
ich habe eine Software PWM auf PORTB 0-3 mit 100 Schritten.
Nun fehlt mir nur noch die Möglichkeit, ein Rotationslicht daraus zu 
bauen.

Wer kann mir dabei weiter helfen?

Gruß Toby

Autor: Franz Hägeli (Firma: Atelier34) (ledart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rolf

vielen dank für das assg lauflicht mit pwm. wenn ich dies gleiche lösung 
mit logikbauteilen machen würde, wäre der aufwand sehr gross! Ich 
arbeite erst seit ca. 2 wochen mit einem tiny13. ich bin künstler und 
bauen interaltive lichtobjekte. mehr hier www.atelier34.ch
diese sind alle mit logikbausteinen (cmos 4000-familie) und opamp 
aufgebaut. jetzt versuche ich, avr für die lösungen zu verwenden. deine 
lösung für eine lauflicht auf pwm-basis finde ich sehr gut. habe mich 
zwar mit assem auseinandergesetzt, verstehe aber den lösungsansatz nicht 
ganz. die werte 29 und 30 (store und store2) bezw. 1 und 5 verstehe ich 
nicht. kannst du mir mehr details geben? vielen dank für deine hilfe!
Franz

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> die werte 29 und 30 (store und store2) bezw. 1 und 5 verstehe ich
> nicht. kannst du mir mehr details geben?

30 ist einfach ein Wert, bei dem bit 1 bis 4 gesetzt und bit 0 gelöscht 
sind (11110). Der Wert 29 ist einfach das gleiche mit bit 1 (11101).
Da die LEDs nach +5V geschaltet werden, steht also in STORE der Wert, 
den man ans PORTB-Register schicken muß, damit die erste LED an ist und 
in STORE2 der Wert für die zweite LED. Meine PWM schaltet dann einfach 
zwischen diesen beiden Werten um und verändert dabei das Tastverhältnis, 
so daß die erste LED immer dunkler wird und die zweite gleichzeitig 
immer heller.

Ich nehme an, mit 1 und 5 meinst du die Werte:
    ori  STORE2, 1      ; the lsl makes the lsb 0, we need a 1
    sbrs STORE2, 5      ; do we need to wrap around?

Ich mache hier einen Bitshift, um das Rotieren zu erzeugen. Das heißt, 
beim nächsten Schritt wird aus meinem 11110 ein 11100 und aus dem 11101 
ein 11010. Wie man sieht, wird dadurch aber das letzte Bit 0, und wir 
bräuchten eine 1, damit immer nur ein Bit 0 ist und damit nur eine LED 
leuchtet. Also setze ich hier das unterste Bit wieder auf 1, also kommen 
dann die Werte 11101 und 11011 raus.
Die 5 ist die Bitnummer. Hier prüfe ich, ob die 0 schon einmal komplett 
durch die 5 Bits durchgelaufen ist und ich daher wieder von vorne 
anfangen muß.

Autor: Franz Hägeli (Firma: Atelier34) (ledart)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Rolf
vielen Dank für deine rasche Antwort. Es hilft mir weiter, trotzdem muss 
ich mich noch mehr in avrasm hineinarbeiten. Ich verstehe zwar Enlisch 
recht gut, aber die Zusammenhänge der Fachausdrücke muss ich noch 
verstehen.
Meine nächste Aufgabe ist dann ein ADC-avrasm Prog mit dem Lauflicht zu 
verbinden. Vielleicht ist der ATtiny13 mit 5 I/O Ports überfordert mit 
einem zusätzlichen Port für den analog Eingang.
Ich habe mir da eine echte Herausforderung gestellt. Ich bin zwar dipl. 
El.Ing, aber mit JG 1943...
Falls du mir weitere Links geben kannst, um mich noch besser in die 
AVR-Thematik einarbeiten zu können und/oder eine Quelle von Anwendungen 
geben könntest, wäre das sehr hilfreich.
Schöne Grüsse aus Basel
Franz

Autor: Alexander Schmidt (esko) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Franz Hägeli schrieb:
> vielen Dank für deine rasche Antwort. Es hilft mir weiter, trotzdem muss
> ich mich noch mehr in avrasm hineinarbeiten.
Eventuell willst du mal C ausprobieren, ist zwar ganz anders als 
Assembler aufgebaut, aber m.E. nach leichter zu verstehen, da es eben 
eine Hochsprache ist. ASM vs C

Hier mehr Informationen zu C: AVR-GCC-Tutorial

> Ich bin zwar dipl. El.Ing, aber mit JG 1943...
Respekt! Ich hoffe, dass ich mal in deinem Alter auch noch so am Puls 
der Zeit sein kann.

> Falls du mir weitere Links geben kannst, um mich noch besser in die
> AVR-Thematik einarbeiten zu können und/oder eine Quelle von Anwendungen
> geben könntest, wäre das sehr hilfreich.

AVR-Tutorial
und
AVR Softwarepool (fertige Programme)

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hübsches Projekt!
Dar Film hat mir gefallen.
Wenn du das Teil jetzt noch in ein halbkugelförmiges Gießharzblöckchen 
tauchst, dann hast du ein perfektes Rundumlicht. ;)

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Inzwischen hat mein Vater das auch noch mit den leistungsfähigeren LEDs 
und vorgeschalteten Treibertransistoren in seinen Modellhubschrauber 
eingebaut. Muß ich mal bei Gelegenheit auch aufnehmen.

Autor: Henrik Haftmann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ein Schaltplan für 9 LEDs. Die LED-Matrix ist derart angeschlossen, 
dass diese beim ISP-Programmiervorgang in-system nicht stört. Wenn die 
Firmware auf Anhieb stimmt, braucht man kein Hochvolt-Programmiergerät.

Bei Firmware-Änderung per Hochvolt-Programmierverfahren muss man R1 und 
R2 temporär auslöten.

Bei Verzicht auf die obere LED-Reihe kommt man auf 6 LEDs (immer noch 
mehr als 5) und kann bei SPI-Programmierung bleiben.

Die Firmware-Änderung ist marginal: Am sinnvollsten ist eine Tabelle für 
die 9 auszugebenden Bitmuster. So bleibt auch das tatsächliche Routing 
sowie der Umlaufsinn der Rundumleuchte wahlfrei.

Bei geschickter Wahl der ATtiny-Betriebsspannung kann man sogar auf die 
Widerstände verzichten und stellt die Helligkeit der LEDs mit der 
Speisespannung ein.

henni

Autor: Sam .. (sam1994)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit Charlieplexing kommt man auf 20 Leds bei 5 Pins und auf 30 bei 6.
Nur als Anregung.

Autor: Henrik Haftmann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Korrekter Einwand.

Für zehn antiparallele Zweifarb-LEDs an 5 Portpins sähe das dann so aus. 
Widerstände nicht eingezeichnet. Ausprobieren, ob man die weglassen 
kann.

Interessanterweise machen unterschiedliche Flussspannungen (bspw. 
zwischen Rotlicht und Blaulicht) nichts aus, sofern man die LEDs immer 
gleich herum orientiert.

Ob die Flussspannung der LEDs über die ISP-Pins beim Programmieren stört 
muss man wohl ausprobieren; blaue LEDs sind eh' unkritisch. Die 
vorherige 9-LED-Schaltung hatte dieses Problem nicht.

Die Firmware muss nun zwei Bitmuster mitschleppen, eins für PORTB und 
eins für DDRB. Genug Register sind ja dafür noch frei ...

Autor: Henrik Haftmann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist die 9-Einfarb-LED- und die 10-Zweifarb-LED-Variante auf je 
einer runden, zweiseitigen Platine mit 11 mm Durchmesser geroutet. Als 
Weihnachtsbastelei vielleicht ...

Die LEDs sind jeweils 0603-SMD-Typen, die auf Kante (also seitlich 
strahlend) auf die Leiterplatte gelötet werden sollen.

Bei der ersten Variante ist die Polarität der LEDs verschieden, um beim 
Layout Durchkontaktierungen zu minimieren, daher beim Bestücken 
aufpassen!

Bei der zweiten Variante waren für Widerstände und Stützkondensatoren 
kein Platz mehr; dafür sind hier die 10 LEDs schön regelmäßig. Falls 
keine Zweifarb-LEDs zur Hand, kann man auch einfarbige bestücken, oder 
zwei übereinander.

henni

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.