Hallo. Hab mir vor kurzen ein Arduino Duemilanove Board zugelegt und schon einiges it LED's ausprobiert. Ich hab sie leuchten lassen, blinken lassen. und auch shon diverse Lauflichter programmiert. Nun habe ich gesehendas jemand eine LED automatisch (ohne Poti oder so) hat dimmen lassen. So das sie gleichmäßig in ihrem voreingestellten Zeitabstand von ganz dunkel bis ganz hell und wieder bis ganz dunkel gedimmt wurde. Hat dafür jemand einen Code oder kann mir sagen wie das geht? LG
PWM ist hier wohl das Stichwort, man schaltet die LED ganz schnell ein und aus (mehr als 100 mal in der sekunde) je nach verhältnis von an und auszeit wird die led heller oder dunkler
Das Stichwort heisst PWM. Dazu gibts auch einen Artikel: http://www.mikrocontroller.net/articles/Pulsweitenmodulation http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM http://www.mikrocontroller.net/articles/Soft-PWM http://www.mikrocontroller.net/articles/LED-Fading Ralf
Danke für die schnellen antworten. Aber ich Programmiere in Arduino, kann mit den Programmcodes somit leider nix anfangen!? LG
Kann mir jemand in diesem Programm- Code die loop Funktion so ändern das die LED wie gewünscht aufleuchten? also zb 2 sekunden von dunkel über hell bis wieder dunkel !?
1 | int ledPin = 13; |
2 | |
3 | void setup() |
4 | {
|
5 | pinMode(ledPin, OUTPUT); |
6 | }
|
7 | |
8 | void loop() |
9 | {
|
10 | |
11 | |
12 | }
|
Danke
Fabian K. schrieb: > Kann mir jemand in diesem Programm- Code die loop Funktion so ändern das > die LED wie gewünscht aufleuchten? Sorry, aber das ist kein Code. Das ist ungefähr so, wie wenn du mit einer M8 Schaube ankommst und sagst du willst ein Auto bauen und du hättst schon mal angefangen und dabei stolz die M8 Schraube in die Höhe hältst. Fang mit den Grundlagen an. Bring eine LED zum leuchten Beschäftige dich mit PWM und wie man die mit einem Timer in Hardware realisieren kann. Und dann sieh zu dass du diese PWM in einem 2 Sekunden Intervall alle 100ms in ihren Einstellungen so veränderst, dass sich die Helligkeit alle 100ms verändert. Und vergiss loop-ing. So wird das nichts mit der Helligkeitsregelung einer LED. Du brauchst dazu Timer!
Grundlagen hab ich mit den LED's schon durch. Sie Leuchten, Blinken und LAuflichter hab ich auch shcon gemacht. Ich hab aber die Erfahrung gemacht das ich aus Beispielen am Besten lerne. Und irgendwer wir doch mit sicherheit schonmal sowas programmiert haben, sodass er mir den Programmcode posten kann.? LG
...in den genannten Tutorials findest du genug Beispielcode, den du halt nur für deine Hardware anpassen musst! Bei dieser Anpassung lernst du vielmehr, als wenn du fertigen Code vorgesetzt bekommst!
Fabian K. schrieb: > Ich hab aber die Erfahrung gemacht das ich aus Beispielen am Besten > lerne. Ja, das kennen wir schon. Andere nennen das 'Malen nach Zahlen' und denken sie lernen malen, wenn sie vordefinierte Felder mit vordefinierten Farben ausmalen. Im Ernst. Deine Aufgabenstellung ist nicht schwer, wenn man Timer und Hardware-PWM verstanden hat. Lernen heißt auch und vor allen Dingen: sich selbst etwas erarbeiten. Wenn dir hier jemand eine fertige Lösung aus dem Nichts präsentiert, lernst du genau 0 dabei. Du tippst es einfach ab, freust dich das es funktioniert, sagst vielleicht noch: Ach, so macht man das. Und wenn du das nächste mal ein ähnliches aber doch anders geartetes Problem hast, weißt du wieder nicht, wo du anfangen sollst. Schnapp dir das Datenblatt deines µC und studiere die Timer Abschnitte darin. Timer sind das um und auf, die Arbeitspferde deines µC. Studiere auch die Tutorien hier auf der Site. Ist egal, wenn das das Assembler-Tutorial ist, die grundlegenden Dinge sind identisch zu C, lediglich der Code unterscheidet sich. Mach ein paar Timer Vorübungen und realisiere letztendlich die PWM mit einem Timer in Hardware. Dein erstes Ziel ist es, dass du einen Helligkeitswert im Programm als fixe Zahl vorgibst, und die LED wird auf diese Helligkeit eingestellt. Und erst wenn das klappt, gehst du her und veränderst diesen Vorgabewert in regelmässigen Zeitabständen. Ganz anders hingegen sieht es aus, wenn du Code präsentierst. So nach dem Muster: Ich erzeuge meine PWM mit diesem und jenen Code, aber es funktioniert nicht. Wo habe ich meinen Denkfehler? Dann wirst du mit Hilfe geradezu überschüttet.
Danke für diesen Bitrag. Das klingt schon deutlich hilfreicher als einige andere. Danke ;)
Fabian, suchst du vielleicht sowas: www.dieelektronikerseite.de Basteleien -> Weichblinker lg.
PS: Du kannst ja einfach die Kapazitätswerte der Elkos ändern für deine gewünschte Blinkfrequenz.
Hey Leute Hab so ein ähnliches Problemchen: Ich möchte LED's mit einem Fade IN und Fade Out Effekt ausstatten, jedoch muss es mit einem MosFet funktionieren (Buz11), hab schon einige getestet, aber entweder machte der MosFet nichts oder wenn der Taster losgelassen wurde dann dauerte es noch einige Sekunden bis der MosFet wieder langsam die LED verdunkelte. Hab mal den Schaltplan angehängt, bei dem es noch einige Sekunden dauerte bis der MosFet reagierte. Also was ich will ist ne Schaltung die, wenn der Taster losgelassen wird dass dann sofort der Vorgang mit dem verdunkeln beginnt. Hoffe irgendjemand hat da ne Lösung. Vielen Dank im voraus !!! (-:
hier ist das was du suchst: http://arduino.cc/en/Tutorial/Fading aber an deiner stelle würde ich die arduino ide nicht nutzen. es ist damit zwar sehr einfach etwas schnell und lauffähig zu erstellen, aber man wird nie die leistungsfähigkeit und vielfältigkeit der hardwarenahen c programmierung kennen und schätzen lernen. kaufe dir zu deinen board entweder einen avr dragon oder mkii und nutze das avr studio. arbeite die dazu noch das tutorial hier auf der seite durch und die welt der avr µC steht dir offen. nicht das ich was gegen das prinzip der arduino boards und deren ide hätte, aber man ist doch sehr eingeschränkt und debuggen kann man damit auch nicht. ich habe hier selbst so ein board rumliegen (ist ca. 3 jahre alt) damals fand ich es noch ganz nett innerhalb von 5 minuten eine led zum blinken zu bringen, aber irgendwann wollte ich auch die grundlagen und das ganze drum herum kennen und verstehen zu lernen. aber das ist nur meine meinung und empfehlung
Sey Danke für deine schnelle Antwort ! (-; Leider kenn ich Arduino gar nicht, und AVR kenne ich aber hab noch nie AVR programmiert also kann ich es auch ni^cht. Hab aber viel darüber gelesen aber ich versteh's nicht wirklich. Das Tutorial (finde ich) ist wohl für Profi-Anfänger. Trotzdem hab ich nen AT90S2313 herum liegen, hab ihn gestern an den PC angesteckt, das funktionierte +/- Software (PonyProg) konnte ihn auslesen aber weder beschreiben noch löschen. Vielleicht hat jemand sowas wie ein LED Blinker für mein AT90S2313. (fertig geschrieben bitte) will zuerst einen programmieren und dann erst selbst meine eigenen Befehle schreiben. Vielen vielen Dank Tschüss
Mike C. schrieb: > Vielleicht hat jemand sowas wie ein LED Blinker für mein AT90S2313. > (fertig geschrieben bitte) will zuerst einen programmieren und dann erst > selbst meine eigenen Befehle schreiben. Ich meine, dass der auch im Tutorial veröffentlicht ist. Ansonsten habe ich den Code schon öfters im Forum gesehen. Mal suchen. Btw. der Prozessor ist der Vorgänger des ATtiny2313 (ohne internem RC-Oszillator). Hier: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Warteschleifen_.28delay.h.29
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.