mikrocontroller.net

Forum: Projekte & Code Ansteuerung einer RGB LED (PWM)


Autor: Th. de Buhr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leutz,

hier ein kleiner Beitrag von mir, vllt kanns wer brauchen.
Ist in erster Linie für Einsteiger gedacht, die Ideen zum Proggen
suchen.
Controller ist ein AT Mega8.

-------------- Code -----------------

#include <stdlib.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <inttypes.h>
#include <avr/delay.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <stdlib.h>


/****************************
 RGB-LED-Steuerung
 26.02.06 Th. de Buhr

 Ansteuerung einer RGB-LED
 Port B: 0=R, 1=G, 2=B
****************************/


#define CLK 8000000

#define delay_ms(ms) _delay_loop_2(ms * (CLK/4000))
#define delay_us(us) _delay_loop_2(us * (CLK/4000000))

#define bit_on(BYTE, BIT)  BYTE |= 1 << BIT;
#define bit_off(BYTE, BIT) BYTE &= ~(1 << BIT);


volatile char colour=1, led_out=0;
volatile int time=0, pwm=0;
volatile char palette[12]={0,1,2,4,1,2,3,4,5,6,7};


SIGNAL(SIG_OVERFLOW0)
{
  TCNT0 = 0x80;
  time++;

  if(time>=100) time=0;

  if(time>pwm)
  {
    led_out=0;
  }

  else
  {
    led_out=palette[colour];
  }

  PORTB = led_out;
}



int main()
{
  char i=0;
  //pwm = 0...100%, colour = 0...10

  DDRB=0xFF;
  PORTB=0x00;

  DDRD=0xFF;
  PORTD=0x00;

  //Timer 8Bit setup
  bit_off(TCCR0, CS00);    //Int. CLK/8
  bit_on(TCCR0, CS01);
  bit_off(TCCR0, CS02);

  TCNT0 = 0x00;        //Timer-Reg. löschen

  bit_on(TIMSK, TOIE0);    //Overflow-Int. enable


  sei();

  delay_ms(20);        //Pause, falls Programmierfehler den 
Programmierport
überschreibt


  while(1)
  {
    for(i=0; i<=100; i++)
    {
      pwm=i;
      PORTD = 16;

      delay_ms(20);
      PORTD = 0;
    }

    if((colour++) > 10) colour=1;
   }
}


Viel Spass damit!

MfG,
Th. de Buhr

Autor: Stefan Noll (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

ich habe eine RGB Ansteuerungsplatine für 1 Watt RGB LEDs entworfen,
Schaltung gibts bei mir auf Anfrage. Wenn größeres Interesse besteht
werde ich es als wiki Eintrag festhalten.

Autor: Franzis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Stefan Noll
Habe Dir eine Mail geschieckt..

Autor: Stefan Noll (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Franzis:
ist leider nichts angekommen

Autor: Domi Nick (paradoxon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo. ich habe das Problem beim Forum "Mikroprozessor und Elektronik"
- die Power-LED-Ansteuerung mit PWM in Assembler (PIC16F84).

Das Programmieren bereitet mir ein bisschen Probleme, aber es muss
Assembler sein - Könnt ihr mir helfen? Guckt doch mal dort hinein, wäre
nett.

Gruss und bis bald

Autor: Jörg Pferdmenges (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also für einen Beispiel Code in Assembler wie man eine PWM für einen
ATMEL ATtiny13 programmiert, wäre ich auch sehr dankbar.
Hat da evtl. jemand etwas adäquates für mich.
Gruß und vielen Dank im Vorraus

Autor: Thomas Walter (firefox)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Stefan Noll

hast du die Schaltung irgendwo eingestellt?

MfG
Thomas

Autor: Ghadieh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi leute,

wo kann ich so was finden, ich meine elektronische Ansteuerung des 
Motors mit 12V Spannung durch PWM.

MfG

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kanns du mir den Plan vielleicht an ucon@gmx.de schicken? wäre super!!!

Autor: Stefanie B. (sbs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stephan wrote:
> kanns du mir den Plan vielleicht an ucon@gmx.de schicken? wäre super!!!

warum nicht hier im Forum veröffentlichen?
Dann haben alle etwas davon. ;-)

Gruss
Stefan

Autor: Andre Kolodziei (andre2208)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Würde mich auch für die Schaltung Interessieren könntest du mir das per 
Mail zuschicken  ?
Wäre Super !!
a.klimasch@arcor.de

Autor: Andre Kolodziei (andre2208)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hätte da noch eine Frage mit welcher Software ist das geschrieben mit 
C++?

Autor: rookie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo stefan,

ich suche einen code um mit einer rgb-led farbwechsel zu erzeugen.
hab mich mal umgeschaut und mich informiert und mir wurde gesagt, dass 
eine rgb led mit 6 pins besser zum farbmischen sei als eine led mit 4 
pins.
als controller wollte ich einen avr nehemen.
hast du zufällig einen passenden code ???

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.