mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RGB LED ATMega8


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

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend,


Sooo ich brauch eure hilfe :) unzwar will ich mir eine Zimmerbeleuchtung 
bauen. Vorerst mit 25 RGB LED's. (Hab mir ein Kabelkanal gekauft und mit 
einem kleinen Bohrer 6 Löcher gemacht die LED dan durchgesteckt verlötet 
und im Abstand von 5 cm die nächste.) Vorerst soll es nur ein Regenbogen 
Effekt sein.Später wen ich mich ein bisschen in die Microcontroller 
eingelebt habe will ich ein Programm schreiben wo man die Farbe 
auswählen kann.Nun hab ich das Problem das ich keine ahnung habe wie das 
anstellen soll was ich genau machen muss damit ich diesen Regenbogen 
Effekt auf mein Microcontroller übertrage und ihn schreibe :(. kann mir 
villeicht jemand den Grundstein setzen und mir ein bisschen helfen. Als 
Programmer benutze ich das Pollin Evulutions Board. Mir stehen diese 
Micrcontroller zur verfügung: ATMega8 , ATMega48 , ATMega32. Ich hoffe 
jemand kann mir helfen.Ne Schaltung hab ich schon gemacht.(Ist schnell 
gemacht  und die is jetzt nur für 1 RGB LED. Würde er eigentlich gehen 
ich denke schon oder ?)



MFG Denny

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Stichwort lautet Software-PWM. Hier mal ein Beispiel wie man es 
machen kann. Damit solltest du eigentlich schon fast fertig ein.

#include <avr/io.h>

#define RED       PC0    // Pin für Rot
#define GREEN     PC1    // Pin für Grün
#define BLUE      PC2    // Pin für Blau  
#define LED_PORT  PORTC  // LED-Port
#define LED_DDR   DDRC   // DDR des LED-Ports  

int main(void){
  uint8_t   i = 0,
            u_red   = 150,    // Pulslänge rot
            u_blue  = 100,    // Pulslänge blau
            u_green = 200;    // Pulslänge grün
  LED_DDR |= _BV(RED) | _BV(GREEN) | _BV(BLUE);      // Pins auf Ausgang 
  while(1){
    LED_PORT |= _BV(RED) | _BV(GREEN) | _BV(BLUE);   // Alle Farben an
    
    /*
    Hier die Werte von u_red, u_blue und u_green nach belieben ändern
    Die Werte sind proportional zur Intensität der jeweiligen Farbe.
    Nich vergessen, dass das menschliche Auge nicht linear ist!
    */
  
    for(i=0;i<255;++i){   // PWM-Schleife
      if(i>=u_red)   LED_PORT &= ~_BV(RED);   // Rot  aus
      if(i>=u_green) LED_PORT &= ~_BV(GREEN); // Grün aus
      if(i>=u_blue)  LED_PORT &= ~_BV(BLUE);  // Blau aus
      }
    }
}



Gruß Skriptkiddy

Autor: Denny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Cool vielen Dank jetzt hab ich nur noch eine Frage wa muss ich genau mit 
diesem Code mach muss ich ihn in Avr Studio einfügen und dan irrgendwie 
zu ner .hex datei machen und sie dan auf den Controller flashern `? sehe 
ich das richtig so ?

Autor: Thomas Müller (thomas1123) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JA
Schau am besten mal ins Tutorial da findest Du alles was Du brauchst.

mfg
Thomas

Autor: Denny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VIELEN DANK :D

gruß Denny

Autor: Kay R. (kay2718)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Sache, die mir gerade noch auffällt:

Du bist Dir hoffentlich im klaren, dass Du in der Regel an den Ports nur 
jeweils 10-20 mA abgreifen kannst (je nach Stromrichtung; wieviel mA es 
genau beim ATMega8 sind, weiss ich jetzt nicht); daher benötigst Du zum 
Anschluss von Verbrauchern z.B. MOSFET Transistoren.

Viel Erfolg!

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.