LED Dimmen mit PBM

Gast #2504372
Lesenswert?

Hallo zusammen,

Ich bin Automatikerlehrling und habe ein Elektronikprojekt in der Schule 
bekommen.

Aufgabe: Hellikeitsregler mit Pulsbreitenmodulation

Mit einem Potentiometer kann die Lichtstärke einer Lampe eingestellt 
werden. Die Lichtsärke soll durch ein Pulsbreitenmoduliertes Signal 
verstellt werden. Dadurch wird die Verlustleistung sehr klein gehalten. 
(Wenn möglich soll die Schaltung mit einem Mikroprozessor realisiert 
werden)

Mein Problem ist ich habe noch nie einen Mikroprozessor programmiert.

Ist es möglich in ca. 3-4 Wochen eine Programmiersprache so weit zu 
verstehen um diese Aufgabe zu realisieren?

Wenn ja, welche Sprache könnt ihr für Einsteiger empfehlen?

Vielen dank für eure Antworten :D
Gast #2504407
Lesenswert?

Hallo Beni,

Für so eine einfache Aufgabe würde ich nicht versuchen mit einer 
Hochsprache die Du nicht kennst anzufangen.

Ich halte es für einfacher so etwas erst einmal in Assembler zu machen 
dann sieht man wenigstens was passiert.

Microchip bietet die Entwicklungsumgebung kostenlos zum Download, die 
kleinen Prozessoren sind 1€ Artikel bei Reichelt und Co. (zur Not auch 
von Conrad).

Das Programiergerät mit kleiner Entwicklungsplatine liegt bei 66€.

Für die Aufgabe kommt z.B. ein 12F683 in Frage. Hat 8 Beine ein PWM 
Modul ist in vernünftigem Gehäuse lieferbar und hat noch nen AD - 
Wandler so das Du mit einem Poti die PWM Pulsweite verändern kannst.

Dazu noch 20-30 Zeile Programm und gut ist es.

mfG
Michael
#2504412
Lesenswert?

Tach wenben,

> Ist es möglich in ca. 3-4 Wochen eine Programmiersprache so weit
> zu verstehen um diese Aufgabe zu realisieren?

ohne Vorkenntnisse in der Mikroprozessortechnik und Informatik? Eher 
nein. Die einzige Möglichkeit, die ich sehe ist ein fertiges 
Experimentierboard.

Ich stimme ja zu, dass Bascom leichter zu erlernen ist aber man muss 
auch die Umgebung berücksichtigen. Da dürfte wohl Arduino die Nase vorne 
haben.

@michael
Sorry, aber du willst einem Anfänger wirklich PIC assembler zumuten?

Thor
#2504432
Lesenswert?

PWM kann man auch mit einem NE555 erzeugen. Wenn es stromsparend sein 
muss nimmt man z.B den ICM7555 (60µA).

Wenn es doch ein µC sein soll, wäre Assembler wahrscheinlich das 
geeigneste. Schließlich ist das Programm sehr kurz und man kann alles im 
Datenblatt nachlesen.

Für einen Avr wäre dein Programm 20-30 Zeilen lang. Man könnte z.B einen 
Attiny13 nehmen.
#2504438
Lesenswert?

Kann es sein, dass du hättest eher damit anfangen sollen?

wenben schrieb:
> Mein Problem ist ich habe noch nie einen Mikroprozessor programmiert.
hast du denn überhaupt schon programmiert?

> Ist es möglich in ca. 3-4 Wochen eine Programmiersprache so weit zu
> verstehen um diese Aufgabe zu realisieren?
wenn nicht, würde ich sagen, es wird extrem knapp.
Es sei denn du hast eine sehr gute Auffassungsgabe.
Die Zahl der Unbekannten ist halt recht groß.

Zuerst das Erfassen von den Konzepten einer Programmiersprache und dann 
noch die Einarbeitung in die für dich komplett neue Welt der 
Mikrocontroller.

Das fängt ja niocht erst beim Programmieren an, das geht ja schon mit 
der Hardware los.
wenn du hier selbst bauen musst, sehe ich keine Möglichkeit, da ist 
einfach zu wenig Zeit zum experimentieren und Einarbeiten.

Die Aufgabe selbst ist ja nicht sehr schwer.
Von der Programmierung wäre es auf einen AVR nicht viel mehr als ~10-20 
Zeilen C-Code.
#2504463
Lesenswert?

Vlad Tepesch schrieb:
> hast du denn überhaupt schon programmiert?

Noch nicht so gross, das einzige war HTML.
Mein Berufschullehrer meinte es müsste machbar sein mit genügend Wille.

Ich kann im Notfall das ganze auch mit IC-Bausteinen realisieren, und 
das Programmieren langsam lernen.

Kennt ihr gute Bücher oder Internetseiten mit denen man das Ganze 
erlernen kann?

Und vielen Dank für eure schnellen Antworten und Unterstützung :D
Gast #2504476
Lesenswert?

Hallo Beni,

geht es nur um die Aufgabe (also was Abgeben) oder
folgen weitere Aufgaben oder besteht sogar eigenes Interesse.

Zu 1: Es gibt fertige Lösungenmit PIC und Tiny13 im Netz

Zu 2: Was wird in eurer Lehre verwendet (Prozessor und
      Sprache)

Zu 3: Was kannst du denn schon am PC

avr
#2504493
Lesenswert?

Beni W. schrieb:
> Noch nicht so gross, das einzige war HTML.

html ist keine Programmiersprache.

Beni W. schrieb:
> Ich kann im Notfall das ganze auch mit IC-Bausteinen realisieren,
was meinst du, was ein µC ist? richtig - ein IC
oder meinst du diskrete Logik-Bausteine?
dann wirds vermutlich bei Nachbauen und nicht Verstehen bleiben.

hier würde sich der NE555 eignen.
Beitrag "PWM mit NE555?"
je nach zu treibender LAst (was für eine Lampe?) muss noch eine 
entsprechende Treiberschaltung dahinter.

> und das Programmieren langsam lernen.
Lernen tut man so aber natürlich gar nix.
#2504506
Lesenswert?

avr schrieb:
> geht es nur um die Aufgabe (also was Abgeben) oder
>
> folgen weitere Aufgaben oder besteht sogar eigenes Interesse.

Ich schliesse die Grundausbildung zum Automatiker ab. Möchte später 
Automation und Elektronik studieren. Das Intresse ist 100% da, würde 
später auch gerne andere Projekte realisieren, jedoch ist die Zeit sehr 
knapp.
Für diese Aufgabe ist der Zeitrahmen gesetz von der Schule aus Gesetzt.

avr schrieb:
> Zu 1: Es gibt fertige Lösungenmit PIC und Tiny13 im Netz

Fertige lösungen jedoch haben bestehende Programme und die muss ich auch 
vertehen. Das ganze muss Dokumentiert werden. Am liebsten wäre mir wenn 
ich eine eigene Lösung habe. (Jedoch möchte ich das Rad nicht neu 
Erfinden)

avr schrieb:
> Zu 2: Was wird in eurer Lehre verwendet (Prozessor und
>
>       Sprache)

Da es nur die Grundausbildung ist und kein Studienlehrgang haben wir bis 
jetzt nur mit SPS und EASY-soft gearbeitet.

avr schrieb:
> Zu 3: Was kannst du denn schon am PC

Ist schwer zu sagen, ich kann einiges, jedoch ist die Welt am PC riesig 
und demendsprechend gibt es vieles das ich nicht kann. Ich bin aber sehr 
aufnahmefähig wenn es um PC bezogene Dinge geht.
Gast #2504512
Lesenswert?

> Das gilt nicht für LEDs

richtig. Für eine LED wird grundsätzlich ein Vorwiderstand benötigt. Der 
muss bei PWM genauso groß dimensioniert werden, wie wenn man keine PWM 
nutzt. Daher ergibt sich auch keine Verbesserung bezüglich 
Verlustleistung.
#2504521
Lesenswert?

Michael Roek schrieb:
> Hallo Wenben,
>
>
>
> in Deiner Aufgabenstellung verlangt keiner einen Mikrokontroller.
>
> Hoere also auf Amuel und bau das ohne.....kostet Dich einen NAchmittag.
>
> Und gibts auch jede Menge Vorschlaege im Netz.
>
>
>
>
>
> Gruss
>
>
>
> Michael

Das stimmt es wird nicht verlangt. Da mich das ganze aber sehr 
Intressiert und ich das Programmieren von Microcontrollern erlernen 
will, würde ich gerne (sofern es in der Zeit mögilich ist) das ganze mit 
einem Microcontroller lösen.

Ich werde aber eine zweite Variante ohne Mikrokontroller vorbereiten, 
falls es nicht klappen sollte.

Vielen dank für die Links :)
Persönliche Seite #2504524
Lesenswert?

> richtig. Für eine LED wird grundsätzlich ein Vorwiderstand benötigt. Der
> muss bei PWM genauso groß dimensioniert werden, wie wenn man keine PWM
> nutzt. Daher ergibt sich auch keine Verbesserung bezüglich
> Verlustleistung.

Was'n Quark..... auch hier wird die Verlustleisung reduziert.
Verlustleistung ist hier NICHT die im Leuchtkoerper umgesetzte Leistung, 
sondern die die in der Stellschaltung verheizt wird.
Egal ob LED oder Glueh oder Motor oder....


Gruss

Michael
Gast #2504546
Lesenswert?

Hallo Beni,

dann mach wie du selber sagst erstmal die analoge Lösung.
Genug Links hast du ja.

Für das Programmieren bist du in der Auswahl frei.

Pic oder AVR sind die üblichen Einsteiger-µCs.

Üblich ist C und/oder Assembler zum programmieren.

Atmel und Microchip haben kostenlose Software und günstige
IS-Programmierer.

Die AVR sind hier im Forum stark vertreten (auch Tutorials)
zusatzlich :
http://www.avr-asm-tutorial.net/avr_de/seminar2/seminar2.html

(hier ist dein Dimmer die Aufgabe 8)

Für Pic kann man bei Sprut schauen:

http://www.sprut.de/

(dein Dimmer ist unter den Lernbeispielen)

Auswählen must du selber ;)

avr
Gast #2504593
Lesenswert?

Karl Heinz Buchegger schrieb:
> tip schrieb:
>>> sondern die die in der Stellschaltung verheizt wird.
>>
>> yo - und den Vorwiderstand zähle ich dazu. ;)
>
> Yo. Und gegenüber einer Lösung, in der die LED mittels Poti gedimmt
> wird, ergibt sich nun mal mittels PWM eine Verringerung der
> Verlustleistung IN DEN DIMMSTUFEN.

korrekt - ich nehme alles zurück. :)
Gast #2504597
Lesenswert?

Beni W. schrieb:
> Was sind die Unterschiede von Pic und AVR bzw. vor und nachteile?


Diese Frage führt normalerweise zu einem "Glaubenskrieg" und einer
"Popkorn-Diskusion".

Schau die beide an und überlege dir auch die Bezugsquellen.

Assembler ist sehr µC-spezifisch aber gut um den µC kennenzulernen.

C ist übergreifender und strukturierter. Man kann auch auf dem
PC mit C programmieren.

avr
#2504634
Lesenswert?

David Kress schrieb:
> Mal eine Grundsatzfrage: Muss es ein Mikrocontroller sein, oder dürftest
>
> du die Aufgabe auch mit diskreten Bauteilen lösen?

Wie weiter oben schon erwähnt muss es nicht sein, da ich mich jedoch für 
Mikrokontroller interessiere und in dieses Gebiet einsteigen will wäre 
es schön es für mich mit einem Mikrocontoller zu schaffen wäre.

Notfalls werde ich das ganze mittels IC-Bausteinen lösen, was dann keine 
grosse Sache mehr ist.
Gast #2504745
Lesenswert?

Zum Lernaufwand:
Der Assemblerkurs, auf den avr(Gast) oben verwiesen hat, habe ich an 
zwei Tagen mit Berufsschullehrern gemacht, die keine Vorkenntnisse in 
Mikrocontrollern und Assembler hatten. Nur Grundkenntnisse in 
Digitaltechnik, aber die braucht man für jede denkbare Lösung der 
Aufgabe. Und ich behaupte mal, dass motivierte Schüler da nicht viel 
länger für brauchen als Lehrer.

Das Schöne an den Microcontrollern ist, dass wir heute das und morgen 
was anderes hineinprogrammieren. Der NE555 ist da doch etwas langweilig, 
weil er die nächste Aufgabe nicht mehr kann.

Und ganze 16 Zeilen Assembler ist nun wirklich eine bewältigbare Aufgabe 
und kein Hyper-Megaprojekt.

Nur Mut, wenn Du es jetzt gleich lernst, kannstes umso früher.

Spekulation: vielleicht war dein Lehrer in meinem Kurs und traut es Dir 
deshalb zu, dass Du das auch mit einem Micro schaffst?

mfg, gerd
Gast #2506124
Lesenswert?

Beni W. schrieb:
> Kennt jemand eine Onlineshop oder Laden in dem man günstig für
> Einsteiger eine Grundausrüstung bekommt?

Theoretisch vielleicht so was:
http://www.watterott.com/de/USB-Bit-Whacker-18F2553-Development-Board
Allerdings finde ich Bootloader als Anfänger immer etwas doof, falls die 
Adressen im Linker falsch eingestellt sind ist der nämlich hin und man 
braucht nen Programmer.

Vielleicht auch sowas:
http://www.reichelt.de/Programmer-Entwicklungstools/DM-180021/index.html?ACTION=3&GROUPID=2969&ARTICLE=96459&SHOW=1&START=0&OFFSET=16&;


Als absoluten Preishammer kann man das Launchpad von TI erwähnen.
Für nur 4,30$ echt der Hammer.
Aber einem Anfänger würde ich eher davon abraten.
Gast #2506208
Lesenswert?

Grundausstattung für PIC:

www.microchip.com  - MPLAB IDE 8.8 kostenlos

www.reichelt.de - Pickit3 mit Anfängerboard 66,66€

Lochrasterkarte

5V Spannungsregler + Abblock C

12F683 ggf. 3stk. a 1,xx€
+ 100nF Keramikcondensator und Sockel


und einen N-Kanal FET deiner Wahl

5Pin Stecker fürs PICkit3 zum einlöten

LED und Vorwiderstand

Poti 5KOhm

das müsste erst mal reichen

mfG
Michael
Gast #2506263
Lesenswert?

Beni W. schrieb:
> Wenn ja wie kann ich hier den eigenen
> Mikrokontroller brennen?

Die grüne Platine ist dein eigener uC.
Mit dem mitgelieferten Debugger kannst Du nicht nur Dein Programm 
"brennen", sondern Schritt für Schritt durchgehen (sehr gut zur 
Fehlersuche).
Natürlich kannst Du auch auf Run klicken und das Program läuft normal 
durch...
Gast #2506280
Lesenswert?

Der kleine 5 Polige Anschluss vorne am Programiergerät ist bei allen PIC 
Microcontrollern gleich legt man auf einen 5 PIN Berg - Stecker und 
verdrahtet das ganze mit seinem Controller.

Beim 12F683 verlierst Du zwar 2 Pins die für den Programmer genuzt 
werden aber es reicht für Deine Anwendung noch immer locker aus.

mfG
Michael

P.S. nicht bange machen lassen der Assembler ist einfacher als man 
denkt.
#2506303
Lesenswert?

> 18F*** den 12F*** vorziehnesollte.
PIC16 und kleiner haben sowas von ausgedient im hobbybereich!!! ja, die 
18 sind massiv einfacher (ganz besonders für einsteiger) und für die 
bekommst du kostenlos auch den C18-compiler, falls du doch noch auf C 
umsteigen willst.

wenn es billig sein muss, kauf dir einen PicKit2-Clone, wenn es etwas 
mehr kosten darf einen PicKit3. dazu ein beliebiger PIC18Fxxx(x), der 
einen PWM-modul hat (achtung: beachte, ob es 3.3V- oder 5V-typen sind, 
und was du lieber hast)

vielleicht sowas:
http://www.reichelt.de/Programmer-Entwicklungstools/DV-164131/index.html?;ACTION=3;LA=444;GROUP=A38;GROUPID=2969;ARTICLE=87178;START=0;SORT=artnr;OFFSET=16;SID=13TwSLUX8AAAIAAGD6MmQ3f4dfd6e91bb4d4c9457b672acdf1fd8
#2506384
Lesenswert?

ja, 18F1220 sieht sehr gut aus :-) dieser PIC hat zwar extrem wenig 
speicher, aber für dein vorhaben sicher ausreichend. der 18F1320 ist 
identisch zum 18F1220, hat aber doppelt so viel speicher und wird nur 
minim teuerer sein, kauf also lieber den 18F1320 - lieber etwas zu viel 
speicher als zu wenig ;-)

falls du lieber in C programmieren willst, hat Microchip idiotensichere 
bibliotheken (inkl. ein super einfaches nachschlage-PDF) für den 
kostenlosen C18-copiler bereit: 
http://ww1.microchip.com/downloads/en/devicedoc/51297c.pdf
da gibt es OpenADC(...), SetDCPWM(...) und so ähnliches; ist wirklich 
einfach damit zu starten.
an einem abend hast du das tutorial von http://pic-projekte.de durch, 
und dann kannst du an einem weiteren abend dein erstes blinklicht 
programmieren. anschliessend beherrschst du das wichtigste, und bist 
bereit die obigen libraries zu verwenden und hast somit dein programm im 
nu.

falls du lieber in assembler programmieren willst, schau doch auf 
www.sprut.de vorbei - super seite fürs verständnis, wie der PIC intern 
funktioniert (selbst wenn du doch in C programmierst, ist ein blick auf 
Sprut immer wieder gold wert).
#2510572
Lesenswert?

Master Snowman schrieb:
> ja, 18F1220 sieht sehr gut aus :-)

Hmm, möchte das ganze erweitern auf 3 pwm, um mit RGB Farben zu mischen. 
Auf sprut.de hat es eine Liste mit 18F... Controllern. Da steht der 
18F2220 hat 6 PWM module, im Datenblatt ist aber die rede von 2 PWM 
modulen.
Bin jetzt nicht sicher ob ich das Datenblatt falsch interpretiere oder 
ob die Liste falsch ist.
Wenn der 18F2220 nur 2 PWM Module hat klappt das ganze nicht, kennt 
jemand ein günstigen Mikrokontroller mit mindestens 3 PWM modulen und 
nicht zu gross das man ihn noch gut von Hand löten kann?
#2510638
Lesenswert?

Beni W. schrieb:
> nicht zu gross das man ihn noch gut von Hand löten kann?

hast du zu kleine Hände oder was für µCs benutzt du sonst? ;)

Beni W. schrieb:
> 6 PWM module, im Datenblatt ist aber die rede von 2 PWM
> modulen.

vermutlich hat er 2 Timer mit je 3 PWM Kanälen?

Beni W. schrieb:
> kennt
> jemand ein günstigen Mikrokontroller mit mindestens 3 PWM

attiny25 45 85. der timer 1 alleine hat 3 PWM Kanäle. aber nur 8bit.
Für richtig schönes RGB wären >=12 wünschenswert, aber da gibts unter 
den AVRs leider nix mit 3 Kanälen in DIP.
Gast #2510696
Lesenswert?

Der Controller hat zwei PWM Module wer mehr braucht muß einen größeren 
wählen. Es gibt z.B. 18F ind 40Pin DIP mit 4PWM Motion control (bis 4 
Ausgänge pro Modul) + 2 Kanal normale PWM.
Insgesamt also 6 unabhängige PWM Module.

mfG
Michael
#2510902
Lesenswert?

bitte den neuling nicht mit Tiny etc. verwirren, wenn er doch nach PICs 
ausschau haltet. ich empfehle euch ja auch nicht fahrradwege, wenn ihr 
euch entschieden habt ein auto zu kaufen.

mögliche lösungen:
a) Software-PWM: http://www.mikrocontroller.net/articles/Soft-PWM
b) grösserer PIC mit mehr PWM-kanälen
c) externer baustein, der vom uC angesteuert wird und die PWMs generiert
#2520753
Lesenswert?

So habe mir nun das PicKit 3 besorgt, MPLAB 8.50 und C-18 installiert.
Die Demo-Programme kann ich super laden und funktionieren, doch sobald 
ich ein Programm abschreibe kann ich es zwar laden ohne fehlermeldung, 
jedoch passiert nix.
Habe auch schon das Demo-Projekt geladen und dan mit project->build all 
wider eine .HEX datei zu machen dan kommt immer: Error: unable to locate 
'+FH'
woran kann das liegen?
#2522742
Lesenswert?

ich kenn zwar die meldung "Error: unable to locate '+FH'" nichr, aber 
mach doch mal ein demo-programm von http://pic-projekte.de/ durch. 
wahrscheinlich hast du bei deinem compiler einige einstellungen nicht 
richtig gemacht - wer weiss - beim alten MPLAB musste man zu beginn 
jeweils die linker-pfade einstellen. ...beim MPLABX ist das nicht mehr 
der fall - zumal dieser auch viel(!!!) angenehmer ist um zu 
programmieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren