RGB LED Platine

Hardware- und Elektronikbasteleien, Ansteuerung von Schnittstellen und Peripherie.
Fragen zu "Consumer"-Problemen kommen in Offtopic.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

RGB LED Platine

Beitrag von R4z0r1989 »

einigen wird es jetzt vorkommen dass es das thema schonmal gab aber diesmal hab ich eine kongrete vorstellung was ich machen will.

Und zwar will ich eine Platine basteln die folgende Anschlüsse bereitstellt: 12V+ in, 12- in, RS232 GND, RS232 in, RS232 out. und das selbe auf der andren Seite

Auf der Platine sind 3 RGB LEDs die zusammen von einem microcontroller gesteuert werden sollen.
Die 3 LEDs sind nur zusammen steuerbar, sprich nicht unabhängig voneinander.


Jetzt zur idee:

die 12 Volt bekommt die erste Platine von einem netzteil und hat wie schon erwähnt auch einen ausgang um weitere Platinen der selben Art zu versorgen. Die erste Platine soll per RS232 am PC angeschlossen werden um ihr damit eine neue Farbe zuzuweisen die dann auch von den LEDs übernommen wird und dann über den 2. RS232 anschluss auf der platine zur nächsten geschickt wird usw.


von der Programmierung des Microcontrollers mal abgesehen. Da dies zwar nicht meine erste Lötarbeit ist aber ich noch nicht selbst einen Schaltplan geschrieben hab bzw. ein eigenes Projekt gemacht hab frage ich mal an dieser Stelle hier: Wie könnte ein Schaltplan aussehen? Welcher Mircrocontroller ist hier am besten einzusetzen? was brauche ich für Komponenten (wiederstände, kondensatoren ect.)?

Um ein genaueres Bild davon zu bekommen hab ich mal ne zeichnung gemacht: (nicht lachen xD)

Bild

EDIT: Aber es soll auf jeden fall möglich sein dass die Platinen verschiedene Farben zugewiesen werden.
z.B.: Platine 1 255,0,0 Platine 2 0,255,0 Platine 3 0,0,255
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: RGB LED Platine

Beitrag von WPö »

Hallo, Razor!

Ersteinmal muß Dir klar sein, was genau Du bezweckst. Ich vermute eine Token-Ring-Ansteuerung (pro Änderung müssen alle Daten aller angeschlossenen Platinen gesandt werden), was wie eine Eimerkette oder ein Schieberegister funktioniert. Das ist zwar möglich, aber programmtechnisch aufwendiger. Außerdem ist dem PC so nicht zwangsläufig klar, wieviele Platinen angeschlossen sind und somit, wieviele Daten zu schreiben.

Andere Methode, die ich an solcher Stelle bevorzuge: Bussystem. Jede Platine bekommt eine eigene Adresse, mit der der µC angesprochen wird. Dadurch kann der PC auch die Menge und die Adressen der angeschlossenen Platinen ermitteln. Leider verträgt sich das nicht mit RS232. Man kann zwar RS485 o.ä. nutzen, aber an dieser Stelle nähme ich SPI oder I²C. Alle Seriell-Eingänge würden demnach parallelgeschaltet, die Ausgänge eliminiert werden.

Einen USB-zu-I²C-Wandler habe ich fertig. Als µC empfehle ich Atmels, z.B. die Mega48er. Im TQFP-Gehäuse kosten die nur noch etwa 1,- €. Die Betriebsspannung kann auf unsymmetrisch 5-5,5V zusammengeschrumpft werden. Dadurch würde auch die Steuerleitung auf vier Adern schrumpfen (Kostenfrage). Schnell genug für das bißchen RGB-Daten ist I²C allemal.

Bei Fragen: stellen!

Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Re: RGB LED Platine

Beitrag von R4z0r1989 »

das will ich durch eine durchnummerierung erreichen welche dann mit wie du sagtest ein wenig aufwand abfragbar ist. und ich will dabei ja auch was lernen über rs232, deshalb will ich es so lösen :-)

wie viele pins hat der mega48?
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: RGB LED Platine

Beitrag von WPö »

28 als DIL und 32 als TQFP und MLF.
Den Indikator, "Platinen-ID", kannste digital mit einem Mäuseklavier eingeben oder als analoge Spannung über einen Spannungsteiler. Die Atmel-Dinger brauchen nichtmal einen externen Quarz, wenn man nicht auf einen exakten Takt angewiesen ist. RS232 toleriert noch gut ca. 1,5% Frequenzabweichung.

Token-Ring würde ich trotzdem sein lassen.

Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Benutzeravatar
R4z0r1989
Beiträge: 521
Registriert: 12.06.2005 18:06
Kontaktdaten:

Re: RGB LED Platine

Beitrag von R4z0r1989 »

Mit Token-Ring meinst du dass sobald die dinger Strom haben sie sich selbst durchnummerieren, oder?
weil auf die art will ich es machen. und mit nem jumper will ich dem ersten sagen dass er erster ist.
ist das keine gute lösung?
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: RGB LED Platine

Beitrag von WPö »

Kann man so machen. Wenn man es geschickt anstellt, kann man sogar ohne Brücke auskommen.

Der PC sendet ein HALLO an den ersten µC.
Der meldet sich am PC als Nr. 1 zurück. und sendet selbst ein HALLO an den nächsten µC.
Das geht so lange, bis keine Rückmeldung mehr an den letzten µC kommt und meldet dem PC über die ganze Kette zurück, daß er der letzte µC in der Reihe ist.

Jeder µC muß also das HALLO verstehen, dieses selbst an den nächsten µC senden können und von diesem kommende Bestätigungen wieder Richtung PC zurückleiten können. So mußt Du noch nicht einmal einen geschlossenen Ring haben.

Ich würde es anders machen, aber paßt schon - ist ja Deine Entwicklung. Ich helfe nur ein bißchen.

Vorschlag für Protokoll:
$00 = NOP
$01 = HALLO
$02 = HALLO_ACK
$03 $id = LASTID
$52 $id $xx = SET_RED
$47 $id $xx = SET_GREEN
$42 $id $xx = SET_BLUE
$40 $id $rr $gg $bb = SET_RGB

Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Crawler
Beiträge: 110
Registriert: 08.02.2009 19:52
Computerausstattung: PB 4.41
Win7 64bit

Re: RGB LED Platine

Beitrag von Crawler »

Ich verstehe noch nicht so recht, warum jeder µC zwei serielle Schnittstellen haben soll.
Ich denke, ich hätte das ähnlich wie WPö gelöst: Der PC schickt ein Datenpaket über sein Tx los, dieses besteht aus Adresse und Befehl. Am Rx des ersten µC kommt das nun an, hier wird als erstes die Adresse validiert. Wenn sie passt, wird der Befehl ausgeführt, ansonsten wird das gesamte Datenpaket über den Tx des ersten µC zum zweiten geschickt. Das wiederholt sich, der Tx des letzten µC kommt wieder an den Rx des PCs, schließt also den Ring. Wird nun ein Datenpaket mit ungültiger Adresse rumgeschickt, kommt das Paket wieder am Rechner an. Zusätzlich ließe sich sogar eine Bestätigung einbauen: Wenn ein µC einen Befehl ausgeführt hat, kann er ja ein Bestätigungspaket schicken.
Die Kodierung jeder Platine würde ich ähnlich wie WPö angehen, wem das Mäuseklavier unsympatisch ist, kann auch spezielle Kodierschalter nehmen, die bietet Reichelt sehr günstig an. Es kommt natürlich auch drauf an, wie viele Einzelplatinen verwendet werden sollen, nach der Anzahl der µC richtet sich ja die Anzahl der verfügbaren Adressen.
PB 4.41 | Win7 64bit
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: RGB LED Platine

Beitrag von WPö »

Danke, Crawler, für Rückendeckung. Ich habe mich mit Razor unterhalten und kam zum Schluß, es solle im wesentlichen ein Lehrstück sein. Er möchte sich offenkundig in RS232 einarbeiten - und da braucht es leider die beiden USARTs.
Als Schnittmenge der AVR-µC, die 2 USARTs haben, im DIL-Gehäuse erhältlich sind und von Bastlerläden wie Reichelt geführt werden, kommt nur noch der ATmega162-16PU heraus. Das will er sich heute noch ansehen. Zusätzliches Material und Werkzeug habe ich auch bekanntgegeben.

Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Crawler
Beiträge: 110
Registriert: 08.02.2009 19:52
Computerausstattung: PB 4.41
Win7 64bit

Re: RGB LED Platine

Beitrag von Crawler »

Naja, den mega162 kann man ja noch ganz gut handhaben. Wie seid ihr denn verblieben? Pegelanpassung für alle µC-Platinen oder nur für die erste µC-Platine und die Verbindung der Platinen über TTL-Level? Wie viele Platinen insgesamt? Wie werden die Treiber für die LEDs aufgebaut? Bipolare Transistoren? FETs? Oder was mit nem ULN2803?
Schön ist ja auch, dass, der mega162 6 PWM-Ausgänge hat, muss man nichts (mehr oder weniger aufwendig) in Software zusammenbasteln.
PB 4.41 | Win7 64bit
Benutzeravatar
WPö
Moderator
Beiträge: 669
Registriert: 27.05.2008 12:44
Wohnort: Oberland
Kontaktdaten:

Re: RGB LED Platine

Beitrag von WPö »

Servus!

Momentan warte ich auf seine Rückmeldung, wahrscheinlich erst heute abend. Im wesentlichen will ich die Entwicklungsgeschichten ihm überlassen, denn nur vorgekaut ergibt sich kaum ein Lerneffekt. Was die LED-Treiber angeht, wäre ein IRLML2803 o.ä. ganz gut, aber er will THT wegen Elektronikeinstiegs. Pegelwandlung überlasse ich ihm, dito mech. Aufbau usw.. Habe bislang kaum mehr als eine Empfehlung über die Entwicklungsumgebung STK500 und die Wahl der IC-Sockel gegeben.

Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Antworten