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
wenben schrieb:> 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?
Bascom. Eindeutig.
Das ist doch schon mal eine positive Neuigkeit.
Auf was muss ich achten bei der Wahl des Mikrocontrollers?
Gibt es sonst spezielle Dinge auf die ich achten muss? (bin in Bereich
Mikrocontrolle ein blutiger Anfänger)
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
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
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.
wenben schrieb:> 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.
Das gilt nicht für LEDs.
Gruss
Harald
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.
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
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
Beni W. schrieb:> Harald Wilhelms schrieb:>> Das gilt nicht für LEDs>> Wie meinst du das? Kann ich mit PBM keine LED's dimmen?
Du kannst damit dimmen, aber Du hast dadurch keine Verringerung der
Verlustleistung. Übrigens sagt man normalerweise PWM.
Gruss
Harald
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.
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
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.
> 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.
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 :)
> 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
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
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.
avr schrieb:> Pic oder AVR sind die üblichen Einsteiger-µCs.
Was sind die Unterschiede von Pic und AVR bzw. vor und nachteile?
Welche Sprache bietet einen, für später, einfacher Umstieg auf Komplexer
Programmiersprachen?
Vielen dank für deine Zeit
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. :)
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
Hallo Beni W.
Mal eine Grundsatzfrage: Muss es ein Mikrocontroller sein, oder dürftest
du die Aufgabe auch mit diskreten Bauteilen lösen?
Grüsse,
David
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.
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
Also habe mich nun doch für PIC entschieden, da ich doch Mitarbeiter mit
PIC kenntnisen gefunden habe und mein Berufschulelehrer ebenfalls stark
auf PIC ist.
Kennt jemand eine Onlineshop oder Laden in dem man günstig für
Einsteiger eine Grundausrüstung bekommt?
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
michael_ohl schrieb:> das müsste erst mal reichen
Und bestell gleich noch das Material für die Analoge Version mit. Denke
mal die hat man in ein paar Stunden mit 2 Ops oder einem NE555
aufgebaut.
michael_ohl schrieb:> 12F683 ggf. 3stk. a 1,xx€
Ich habe auf der Internetseite sprut.ch gelesen das man wenn man mit PIC
programmiert 18F*** den 12F*** vorziehnesollte.
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...
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.
michael_ohl schrieb:> P.S. nicht bange machen lassen der Assembler ist einfacher als man>> denkt.
Ich werde ziemlich sicher C lernen, da ich da Personen kenne die diese
Sprache beherschen. Assembler kann niemand so richtig in meinem
Bekanntenkreis.
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).
Master Snowman schrieb:> für den>> kostenlosen C18-copiler
wenn ich etwas auf microchip.com runterladen will muss ich mich
anmelden. Ist das anmelden auch wirklich kostenlos? Kommen da keine
versteckten kosten? Melde mich nur ungern auf englischen Seiten an. Bin
da schonmal in eine Abo-falle getretten.
ps: nee, da bekommst du wirklich keine werbung. du bekommst höchstens
hinweise zu uC, die du mal gesamplet hast wie z.b. erratas (das kannst
du aber auch abbestellen)
unter meinem link von oben brauchst du dich nicht zu registrieren
Master Snowman schrieb:> nee, da bekommst du wirklich keine werbung
Naja, Werbung bekommt man normalerweise immer (egal ob Microchip, TI,
Maxim oder was auch immer.
Das Anmelden ist aber bei allen Standard und solange du nicht explizit
was einkaufst normalerweise kostenlos.
Gruß
da musst du dich irgendwie für den newsletter angemeldet haben. ich auf
alle fälle bekomme ca. alle 3 monate einmal ein infomail bezüglich der
uC, die ich bis jetzt gesamplet habe. damit kann ich gut leben.
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?
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.
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
Warum 28pin, wenn 8pin reicht? Wenn 8bit PWM (Tiny25) nicht reichen,
muss Software-PWM her, was bei 3 Kanälen und 12bit in Asm leicht
implementierbar ist.
Bei SW-PWM kann man dann auch den Tiny13 nehmen.
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
Heinz schrieb:> Was bitte ist PBM? Ich lerne gern dazu.
Pulsbreitenmodulation so steht es in der Aufgabe meines Lehrers. Nach
Wikipedia einfach ein anderer Ausdruck für PWM
Beni W. schrieb:> Heinz schrieb:>> Was bitte ist PBM? Ich lerne gern dazu.>> Pulsbreitenmodulation so steht es in der Aufgabe meines Lehrers.
Vielleicht kann ja auch Dein Lehrer noch dazulernen, das das ein
völlig unüblicher Ausdruck ist. PWM hat ausserdem noch den Vorteil
das er auch im Englischen genauso lautet.
Gruss
Harald
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?
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.