ws2812b + Atmega 8

Fragen zu Schaltungen, Elektronik, Elektrik usw.

Moderator: T.Hoffmann

slsb02
Super-User
Super-User
Beiträge: 85
Registriert: Mo, 21.08.06, 17:50

Di, 21.01.14, 15:06

Hallo,

hat schon einmal jemand, WS2812B LEDs mit einem Atmega 8 kombiniert?
Ich habe schon so viel im Internet gesucht aber irgendwie keine wirkliches Ergebnis erhalten, was mich weiter bringen würde. Habe schon diverse Schaltungen mit dem ATMEGA 8 gemacht aber stoße ich an meine persönliche Grenze. Ich freue mich auf eure Antworten!

Liebe Grüße
slsb02
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Di, 21.01.14, 16:25

Die 'Schaltung' ist eigentlich nichts besonderes. Ist ja ein rein serielles Protokoll. Dementsprechend ist hier nur die Software 'kompliziert'. Hier steht einiges dazu: http://www.mikrocontroller.net/articles ... nsteuerung Bzw. speziell hier: https://www.mikrocontroller.net/topic/292775 )
slsb02
Super-User
Super-User
Beiträge: 85
Registriert: Mo, 21.08.06, 17:50

Di, 21.01.14, 16:28

Hallo Borax,

diese Seite hatte ich auch schon besucht... Nur leider hilft es mir nicht wirklich weiter... Oder ich übersehe das, was mir helfen würde...
Bei meinem ersten Atmega Projekt, hatte ich einen Code als Vorlage und daraus habe ich dann alles andere entwickelt. Aber das hier, will sich mir einfach nicht erschließen...

Vielleicht hast du / jemand anderes noch Ideen?
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Di, 21.01.14, 16:30

Was genau ist das Problem? Den dort angegebenen Code zu verwenden (in ein eigenes Projekt integrieren) oder komplett neuen Code dafür zu schreiben? Falls ja, in welcher Sprache?
slsb02
Super-User
Super-User
Beiträge: 85
Registriert: Mo, 21.08.06, 17:50

Di, 21.01.14, 16:41

Genau das ist das Problem, den Code zu übernehmen und zu verstehen, was dort passiert. Wenn ich das wüsste dann sollte auch alles weitere kein Problem sein.

Ich arbeite bisher mit Basecom für die Programmierung.
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Di, 21.01.14, 17:11

Ich arbeite bisher mit Basecom für die Programmierung.
Ok. Dann wird es etwas schwieriger... Ohne (ein wenig) Assembler Kenntnisse wirst Du das nicht verstehen.
Bascom Beispiel gibt es im Bascom Forum: http://bascom-forum.de/showthread.php?4 ... u-Mega328P
Auf einem Mega 8 läuft die Software einwandfrei !
Aber Achtung: Das geht nur mit einem 10MHz Quarz!
$crystal = 10000000
Bei 8MHz wird es (wahrscheinlich) nicht klappen. Dafür ist das Timing zu kritisch. Wenn man Assembler Kenntnisse hat, müsste sich der Code wahrscheinlich auch auf 12MHz oder 16MHz anpassen lassen (möglicherweise auch auf 8MHz - aber da bin ich etwas unsicher weil in der C-Lib für einen Mega8 auch nur 12MHz angegeben sind).
slsb02
Super-User
Super-User
Beiträge: 85
Registriert: Mo, 21.08.06, 17:50

Di, 21.01.14, 17:36

Wow, danke für die Hilfe...

Aber ich glaube, das packe ich nicht... Schade, wäre ein schönes Projekt gewesen. Danke auf jeden Fall, für die Hilfe!!!

Liebe Grüße
slsb02
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Di, 21.01.14, 17:47

Nicht gleich aufgeben... Hier gibt es noch ein ausführliches Bascom Projekt (Nachfolger des vorigen Links):
http://bascom-forum.de/showthread.php?5 ... LED-Strips
Erfordert aber einen ATMega8A und einen 16MHz Quarz (was aber soo teuer auch nicht ist ;) ein DIL ATMega8A kostet bei Reichelt 1.80€ und ein 16MHz Quarz ca. 0.2€)
Auf der letzten Seite ist ein Codebeispiel was (getestet!) bis 240Leds funktioniert :D (einschließlich fertigem Bascom code für Lauflicht, 4'er Lauflicht...) Um den ASM Code musst Du Dich da nicht mehr kümmern... Der ist ja schon fertig ;)
slsb02
Super-User
Super-User
Beiträge: 85
Registriert: Mo, 21.08.06, 17:50

Mi, 22.01.14, 09:44

Borax, danke für deinen Einsatz... Wenn man weiß wonach man sucht, wird es glaube ich einfacher ;-)

nur damit ich nicht das falsche kaufe:
Atmega8:
http://www.reichelt.de/Atmel-ATMega-AVR ... MEGA+8A-PU
Quarz:
http://www.reichelt.de/Quarze/10-0000-H ... 00-HC49U-S
Kondensator vor jede LED in der Datenleitung:
http://www.reichelt.de/SMD-1812-100N/3/ ... nsator+100

An die LED lege ich ja permanent, 5V an und den Rest erledigt ja dann der Atmega.

Habe ich das so alles richtig zusammensortiert?

Danke!!!

Liebe Grüße
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Mi, 22.01.14, 15:19

Passt noch nicht ganz...
Der 10Mhz Quarz wäre für den ATMega8 (nicht den 8A) und den Code aus dem ersten Link. Für den ATMega8A: http://www.reichelt.de/Atmel-ATMega-AVR ... CLE=119677 brauchst Du einen 16MHz Quarz: http://www.reichelt.de/Quarze/16-0000-H ... ICLE=32852
Für den Quarz sind noch 2 sogenannte Stützkondensatoren erforderlich. Laut ATMega8A Datenblatt sollen die 22pF haben: http://www.reichelt.de/KERKO-22P/3/inde ... TICLE=9281
Auch noch wichtig: Für 16MHz muss die Fuse CKOPT gesetzt sein:
For resonators, the maximum frequency is 8MHz with CKOPT unprogrammed and 16 MHz with CKOPT programmed.
Die Kondensatoren für die LEDs passen ;) kommen aber nicht in die Datenleitung (DIN) sondern als Pufferkondensatoren zwischen VCC und GND (möglichst nahe an der LED).
slsb02
Super-User
Super-User
Beiträge: 85
Registriert: Mo, 21.08.06, 17:50

Do, 23.01.14, 08:37

Borax, danke!

Das mit dem Kondensator wäre mir bestimmt noch aufgefallen aber danke für den Hinweis!

Dann komme ich gleich noch zu einer anderen Frage, wie steuere ich den Atmega über eine beliebige Fernbedienung, hast du dazu auch eine Idee?
Ich bin nicht sicher ob der Atmega beide Aufgaben gleichzeitig bewältigen kann?
Bei dem Infrarotempfänger bin nicht sicher welchen ich verwenden sollte, dann die Frequent unterscheidet sich ja nur...
Sollte man alle kaufen uns schauen welcher am besten funktioniert?

http://www.reichelt.de/TSOP-31230/3/ind ... mpf%E4nger

Danke!
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Do, 23.01.14, 10:12

'Beliebige Fernbedienung' ist natürlich schwierig. Die Standard-Träger Frequenz ist 38kHz. Dafür wäre dieser Empfänger passend: http://www.reichelt.de/Fotodioden-etc-/ ... CLE=107210
Ich bin nicht sicher ob der Atmega beide Aufgaben gleichzeitig bewältigen kann?
Ja. Das geht schon. Halt nicht mit 'beliebiger' Komplexität ;) Wird natürlich ein bisschen tricky, das Timing hinzukriegen.
Ich würde irgendeine Universalfernbedienung nehmen und auf einen Philips TV einstellen, der RC5 verwendet. Dafür gibt es dann reichlich code im Netz und Bascom unterstützt das auch.
slsb02
Super-User
Super-User
Beiträge: 85
Registriert: Mo, 21.08.06, 17:50

Do, 23.01.14, 11:20

Ich bringe es einfach mal auf den Punkt, was ich machen möchte ;-)

Es gibt doch die FB für die LED - Stripes auch einzeln zu kaufen... Und ich wollte die einfach nehmen zur Steuerung... So, nun isses raus ;-)

Danke!
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Do, 23.01.14, 11:39

Dann wirst Du nicht drum rum kommen, das Protokoll dieser Fernbedienung selbst zu analysieren (Du kannst auch mal im Netz suchen, ob das schon jemand anderes gemacht hat). Ich hab so was auch schon öfter mal gemacht. Hierzu hab ich eine Standard-IR-Diode genommen (z.B. so eine: http://www.reichelt.de/SFH-203-FA/3/ind ... ICLE=60573 keine TSOP o.ä. wo ja schon die demodulation mit drin ist) und an den Mikrofoneingang meiner Soundkarte angeschlossen. Mit Audacity o.ä. kannst Du dann die einzelnen Tasten der Fernbedienung 'aufnehmen' und das Protokoll analysieren. Ist aber schon ein gewisser Aufwand ;)
t_schulz
Mega-User
Mega-User
Beiträge: 358
Registriert: Di, 04.10.11, 14:43
Wohnort: Streichen

Do, 23.01.14, 12:03

Hi,

bei meinen bisherigen Fernbedienungsprojekten war es eigendlich ganz einfach:

IR- Empfänger (mit Demodulation) an uC anschließen und Breakpoint nach empfangenem Signal setzen.
Dann steht in der Variable, welches Zeichen gesendet wurde. :D

LG
Thomas
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Do, 23.01.14, 12:19

nach empfangenem Signal
Bei RC5 o.ä. code geht das. Aber bei anderen Protokollen gibt es ja noch keinen Code der das empfangenen Signal interpretieren kann. Nach der Demodulation (ist ja nicht mal gesagt, das die im Manchester Type übertragen wird) sind ja nur unterschiedlich lange Pulse und Pausen dazwischen vorhanden. Da ist noch nicht mal klar, wann das Ende des Signals eigentlich ist.
t_schulz
Mega-User
Mega-User
Beiträge: 358
Registriert: Di, 04.10.11, 14:43
Wohnort: Streichen

Do, 23.01.14, 12:29

Dann hilft nur noch low level Analyse, da hast Du recht.
slsb02
Super-User
Super-User
Beiträge: 85
Registriert: Mo, 21.08.06, 17:50

Do, 23.01.14, 13:38

Ich habe bei euch beiden jetzt einfach mal mitgelesen... Was kann ich tun?
Die Idee von t_schulz schien mir "einfach" bis Borax diesem wiedersprach...

Wie kann ich was herausfinden?
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Do, 23.01.14, 16:37

Anscheinend ist es ein NEC Protokoll:
http://blog.allgaiershops.com/2012/05/1 ... ed-remote/
t_schulz
Mega-User
Mega-User
Beiträge: 358
Registriert: Di, 04.10.11, 14:43
Wohnort: Streichen

Fr, 24.01.14, 10:56

Na das ist doch hübsch.

Codeschnipsel gibt es fast überall. (ich hätte auch noch einen. :D einfach mal PN)
slsb02
Super-User
Super-User
Beiträge: 85
Registriert: Mo, 21.08.06, 17:50

Fr, 24.01.14, 13:33

Danke t_schulz & Borax,

werde mich nun einmal dran machen... erst einmal Teile bestellen und dann basteln... Ich werde berichten. Wenn ich Fragen habe, bin auch wieder hier :-)

großes Danke an EUCH!!!
slsb02
Super-User
Super-User
Beiträge: 85
Registriert: Mo, 21.08.06, 17:50

Di, 11.02.14, 10:07

So, nun habe ich fein gebastelt und auch schon schöne Ergebnisse...

Die ws2812b brauchen ja 5V und haben eine Stromaufnahme von 60mA. Wenn ich 100stck. verbaue, landen wir bei 6A. Ich denke, es macht mehr Sinn diese immer in 2er Gruppen an 12V anzuschließen.
Bin aber gerade überhaupt nicht schlüssig, ob parallel oder in Reihe und welchen Wiederstand ich benötige. Könnt ihr mir da bitte noch einmal weiterhelfen?

Bisher arbeite ich immer mit Spannungsreglern aber ob das hier Sinn macht?

Ich freue mich!
t_schulz
Mega-User
Mega-User
Beiträge: 358
Registriert: Di, 04.10.11, 14:43
Wohnort: Streichen

Di, 11.02.14, 13:34

Hi,

afair haben die Dinger 5V, GND, Din und Dout, wobei sich die Pegel auf den Datenleitungen auf GND beziehen. Reihenschaltung dürfte schon schwierig werden
slsb02
Super-User
Super-User
Beiträge: 85
Registriert: Mo, 21.08.06, 17:50

Di, 11.02.14, 14:11

Danke t_schulz für die schnelle Antwort!

Was schlägst du vor, wie man etwas Stromsparender an die Sache dran gehen kann ohne ein Labornetzteil kaufen zu müssen?
Borax
Star-Admin
Star-Admin
Beiträge: 12243
Registriert: Mo, 10.09.07, 16:28

Di, 11.02.14, 16:36

diese immer in 2er Gruppen an 12V anzuschließen.
Das geht nicht. Die brauchen ihre stabilen 5V.
Bisher arbeite ich immer mit Spannungsreglern aber ob das hier Sinn macht?
Warum nicht einfach ein starkes 5V Netzteil? Die Dinger kosten doch nicht viel... Z.B.: http://www.reichelt.de/Schaltnetzteile- ... NT+MW40-05
Bei ebay findet sich so was ggf. auch versandkostenfrei...
und auch schon schöne Ergebnisse...
Gibt's dann auch Bilder?
Antworten