Kleine C++ Klasse zur Ansteuerung eines LPD8806 RGB LED Strip mit diversen Effekten inklusive Demoprogramm. Für Atmega103L oder Atmega1284P, eigentlich egal solange MOSI und SCK mit dem Strip verbunden sind und die SPI Initialisierung entsprechend angepasst wird. Dies hat jetzt nicht den Anspruch perfekt zu sein, aber aufgrund einer Anfrage veröffentliche ich den aktuellen Stand schonmal hier. Für avr-gcc.
Hallo Marcus, dein Code sieht echt super aus zum Testen der LPD8806 Ketten. Leider bin ich was C/C++ Code angeht absoluter Neueinsteiger und finde mich derzeit in der AVR Welt noch nicht in allzu großer Tiefe zurecht. Kannst du evtl. "kurz" die Portierung auf einen ATmega16 oder 32 schreiben bzw. mir hilfreiche Tipps geben? Habe zwar versucht die Definitionen des SPI und UART auf den m16 umzubiegen, jedoch bin ich damit leider gescheitert. Vielen Dank für deine Hilfe! Grüße futuretec
Hi, im Prinzip sollte das recht einfach an einen anderen Controller anzupassen sein. Erstmal im Makefile diese Einträge an deinen Controller anpassen: MCU = atmega103 F_OSC = 6000000 Danach dann in uart.c und spi.c einen entsprechenden Abschnitt analog zu #elif defined(_AVR_ATmega1284P_) für deinen Controller einfügen. Ich weiss leider nicht was bei dir schief geht, eigentlich sollte der atmega103 recht ähnlich zu deinen beiden Controllern sein. Und beim SPI init ist nur wichtig das SCK, MISO und MOSI auf Ausgang konfiguriert werden.
marcus6100 schrieb: > im Prinzip sollte das recht einfach an einen anderen Controller > anzupassen sein. Hallo marcus6100 habe ein ähnliches Projekt vor und leider von AVR und C Programmierung null Ahnung. Kannst du dir das mal ansehen, ob eine Portierung des Codes von z.Zt. Attiny und HC595 auf einen Atmega8 mit nicht allzu großem Aufwand möglich ist ? es werden nur 10 RGB Leds verwendet. Das Multiplexing müßte denke ich von seriell auf parallel geändert werden. Die neue Portzuordnung befindet sich in der xls Datei. Alle Informationen habe ich mal in der Zip Datei zusammengefasst. Gruß
Hallo snapper, viel Ähnlichkeit hat dein LED strip nicht mit meinem, bei weiteren Fragen solltest du deshalb im µC & Elektronik Forum einen neuen Thread aufmachen. Die Portierung deines Projekts sollte mit recht wenig Aufwand auf einen Atmega8 möglich sein, zur Änderung des Multiplexing musst du auch nur fillShiftRegisters() und die Makros RED_OFF() bis FETS_OFF() anpassen. Ich empfehle den urspünglichen Autor der Software um Hilfe zu bitten. Mir ist aufgefallen das die Beschaltung von PD3 mit dem niederohmigen R1/R2 Spannungsteiler vermutlich ein Fehler ist weil die Spannung am Portpin und der Strom zu hoch sind, ausserdem würde ich damit an einen ADC Eingang gehen.
Guten Tag, ist es möglich dass du deinen Schaltplan postest? ich wüsste gerne wie man diese Strips an einen uC schließt wenn man Sie mit hardware SPI steuern möchte. Welchen MHz Tankt brauche ich mindestens, um 5m anzusteuern? Grüße
Hallo Martin, es gibt keinen Schaltplan. Du musst MOSI (Daten) und SCK (clock) des AVR mit dem LED Strip verbinden, sowie VCC und GND. Der Takt ist recht unkritisch, nur der Regenbogen Effekt ist etwas langsam mit einem AVR mit 6 MHz. Ich habe aber eine optimierte Version die ich noch nicht veröffentlicht habem. Wenn möglich würde ich einen AVR mit 16 oder 20 MHz Takt nehmen.
cool... so einfach ist das .... ? das ist ja n ding =) dann werd ich mich mal dran machen hehe. hab leider noch keine erfahrung mit SPI daher panik
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.