www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 12F629 LED Ansteuern in versch. Helligkeitsstufen


Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

Ich würd gerne mit dem Pic 12F529 eine kleine LED Steuerung realisieren
und Zwar benutze ich 3 Ausgänge an denen Jeweils eine LED ,mit 180ohm
Vorwiderstand, hängt (1ne rote, 1ne grüne, 1ne blaue).
Ich würde Gerne die LEDs in einer unterschiedlichen Helligkeit haben so
das es Verschiedene Farbverläufe gibt zum Beispiel:

Am Anfang 3 Sek nur die Rote LED mit 100% Helligkeit dann nimmt die
rote LED auf ca. 70% ab und zusätzlich wird die grüne Led auf 30% hoch
gefahren. Danach die rote auf 30% die grüne auf 60% und die blaue auf
30%.

Ich hoffe ihr versteht was ich mit dem Beispiel meine :).

So, nur wie schaffe ich es das die LEDs in einer versch. Helligkeit
leuchten ?
Spannung am Ausgang kann ich ja nicht ändern, da es Digitale Ausgänge
sind. Eine Puls-Weiten-Mudulation hat der 629 nicht. Den Storm am
Ausgang verändern geht auch nicht.

Das einzigste was ich mir vorstellen könnte sowas zu Programmieren wäre
mehrer Schleifen.

Wenn ich z.B. Annehme das wenn eine LED mit einer Schleife 1sek lang
für 100% an ist das das die maximale Helligkeit wäre und ich sie dann
500ms an und dann 500 ms aus schalte das sie dann nur 50% Helligkeit
hat.

Könnte das klappen ?

Hättet ihr vieleicht andere Lösungsvorschläge ?

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> und ich sie dann 500ms an und dann 500 ms aus schalte das sie dann
>> nur 50% Helligkeit hat.

Nein, Sebastian... dann blinkt sie!

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt hab das irgentwie von der PWM genommen aber da sind die ja mit
ner Frequenz von 10khz angesteuert da merkt man das ja nicht mehr ob
die nur 10% davon leuchtet.

Mhm wie könnte man es denn noch realiesieren ? oder gehts überhaupt
oder dann doch lieber nen 16F84A der kleine wäre nur so schön klein
gewesen.

Vieleicht Hat ja noch jmd ne Antwort :)

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich könnte mir vorstellen dass das mit einem IR2E27A (IC) geht. das
ist ein LED Treiber der bei verschiedenen spannungen auch LEDs dimmen
kann (soweit ich weiß). du könntest dann einen kleinen addierer davor
bauen der dir verschiedene spannungen liefert. Aber warum nicht einfach
nen chip nehmen der PWM hat ;)?

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann auch gewisse Hardwaremodule mit Software simulieren ;-).
In deinem Fall würde ich auch nicht mal aufs PWM-Modul zugreife, wenn
eines vorhanden wäre. ISt ja zu umständlich.

Wie Magnus schon gesagt hat, 500ms sind zu lang.. versuchs mit 5ms oder
so.. Probieren geht über studieren ;-)

Ich würds mal so versuchen:
while(1)
{
 LEDrot=1;
 delay_ms(3000);

 for(i=0;i<=??;i++){// ?? steht für eine Zahl die du errechnen musst..
        //??=(Gewünschte Leuchtdauer)/(Dauer des SChleifendurchlaufes)

   LEDrot=1;
   LEDgruen=0;
   delay_ms(7);
   LEDrot=0;
   LEDgruen=1;
   delay_ms(3);
   }

 for(i=0;i<=??;i++){// ?? steht für eine Zahl die du errechnen musst..
        //??=(Gewünschte Leuchtdauer)/(Dauer des SChleifendurchlaufes)

   LEDrot=0;
   LEDblau=0;
   LEDgruen=1;
   delay_ms(7);
   LEDblau=1;
   LEDrot=1;
   LEDgruen=0;
   delay_ms(3);
  }

}
In der letzten schleife habe ich etwas geschummelt.. die grüne LED
würde mit ca 70PRozent leuchten. Was natürlich auch noch eine
verfälschung bringt, ist die if Abfrage die etwas zeit braucht.dH du
müsstest den Wert des letzten delay_ms in den schleifen dem
entsprechend anpassen.

mfg Schoasch

PS.: Der code soll eher als Inspiration dienen ;-) Er wurde nicht
überprüft.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alternativ Software-PWM!

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Simon

Ja so eine Software PWM Könnte evtl die Lösung sein. Kannst du mir auch
sagen wie man sowas realisiert ?


@Schoasch

Ist das ne C Programmierung ? damit kenn ich mich nicht so aus kenen
nur die Assembler sprache direkt vom PIC

@Philipp

Ich hab den 629 genommen weil ich ihn Grad da hab und er sehr klein ist
mit seinen 8 Pins Ich hab aber auch den 16F84A da auf den würde ich wenn
alles Platzt ausweichen. Aber so klein wie möglich wäre am besten

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.emanator.demon.co.uk/bigclive/rgb.htm
Der hat sowas ins Netz gestellt. Früher (bevor er die Chips fertig
verkauft hatte) war sogar ein Hex-File vorhanden. Vielleicht einfach
mal anfragen, ob er das noch rausrückt. Eventuell hat ja auch noch
Jemand die alte Version der Seite (inklusive der Files) aufm
Rechner...

bye

Frank

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

Bewertung
0 lesenswert
nicht lesenswert
im Zweifelsfall sogar ich selbst...
Eins der ASM Files häng ich einfach mal an, vielleicht ists ja ne
Hilfe.

bye

Frank

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Ja, es ist in C-geschrieben. Aber ich glaube schon, dass du ungefähr
verstehen kannst was ich meine. Das gnaze sollte sich recht einfach in
ASM umschreiben lasse.

Autor: kevin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
ich weiß der thread ist schon etwas älter. wollte mal fragen ob jemand 
das asm file von frank zum laufen bekommen hat. welche mikroprozessor 
hat denn der typ auf der 
http://www.emanator.demon.co.uk/bigclive/rgbcont.htm seite verwendet? 
und gibt es nen einfachen brenner für diesen chip wenn ja wo ?
wäre nett wenn mir einer helfen würde. (oder gibt es gar einen 
einfacherern weg zu einem rgb controller zu kommen )

mfg
kevin

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.