www.mikrocontroller.net

Forum: Codesammlung Ansteuerung einer RGB LED (PWM)

Autor: Th. de Buhr (Gast)
Datum: 26.02.2006 18:37

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: 03.04.2006 18:30

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: 10.04.2006 10:23

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

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

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: 08.05.2006 17:40

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: 27.11.2006 07:20

@Stefan Noll

hast du die Schaltung irgendwo eingestellt?

MfG
Thomas
Autor: Ghadieh (Gast)
Datum: 07.12.2006 15:11

hi leute,

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

MfG
Autor: Stephan (Gast)
Datum: 11.02.2008 14:45

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

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: 26.02.2008 13:11

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: 26.02.2008 13:14

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

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 Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos verwenden, Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel





Hinweis: der Originalbeitrag ist mehr als 6 Monate alt.

webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net