www.mikrocontroller.net

Forum: Codesammlung Ansteuerung einer RGB LED (PWM)


Autor: Th. de Buhr (Gast)
Datum:

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:

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:

@Stefan Noll
Habe Dir eine Mail geschieckt..
Autor: Stefan Noll (Gast)
Datum:

@Franzis:
ist leider nichts angekommen
Autor: Dominik Blunschi (paradoxon)
Datum:

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:

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:

@Stefan Noll

hast du die Schaltung irgendwo eingestellt?

MfG
Thomas
Autor: Ghadieh (Gast)
Datum:

hi leute,

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

MfG
Autor: Stephan (Gast)
Datum:

kanns du mir den Plan vielleicht an ucon@gmx.de schicken? wäre super!!!
Autor: Stefan B. (sbs)
Datum:

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:

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:

Hätte da noch eine Frage mit welcher Software ist das geschrieben mit
C++?
Autor: rookie (Gast)
Datum:

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net