PWM Steuerung einer Modellok (Motor) DRINGEND HILFE!!!
-
Hallo,
und zwar muss ich in IT ein Projekt abgeben und dazu oben genannte Steuerung programmieren für einen Microcontroller. Benutzt wird dazu C. Wir programmieren in MPLAB.
Ich hab leider keine Ahnung wie ich die Aufgabe umsetzten soll.
Aufgabenstellung:
Eine Modellok soll mithilfe einer Pulsweitenmodulation in ihrer Geschwindigkeit gesteuert werden. Der Motor der Lok soll dabei über ein PWM-Signal in der Drehzahl gesteuert werden. Die Drehzahl soll über zwei Taster T+ und T- verändert werden können. Die aktuelle Drehzahl wird dann an 2 7-Segment Anzeigen ausgegeben.
Dazu brauch ich meines Erachtens nach einen Interrupt + Hardwaretimer. Über die Taster wird der Prozentwert eingegeben. Ich hab eine periodendauer von 20ms. Über die prozentzahl soll der Wert an ms berechnet werden, der ein Signal an den Motor liefert.
Wie realisiere ich denn jetzt genau die Ansteuerung an den Motor bzw. die Periodendauer?Pinbelegung:
RB0=a
RB1=b
RB2=c
RB3=d
RB4=e
RB5=f
RB6=g
RB7= Signal an MotorInitialisierung der 7-Segment Anzeige
RA0=0
RA1=0Taster:
RA2= +
RA3= -
-
In den Forumsregeln steht folgendes:
Du solltest bereit sein, uns ein Stueck entgegenzukommen. Dazu gehoert, dass du zwar Hilfe bei deinen Hausaufgaben bekommst, sie aber dennoch selbst machen musst.
Das führt mich zu der Frage, ob du dich überhaupt mit dem Thema auseinander gesetzt hast? Ich denke es gibt genug Vorlagen für uC-Programme, vorallem bei der Anstuerung von Motoren.
Siehe hier: http://www.mikrocontroller.net/articles/AVR-Tutorial
-
wenn ihr mit mplab programmiert gehts sicher um nen pic - demo - board. die pic's haben im normalfall einen port der eine pwm direkt rausgeben kann. dafür muss man die werte in den entsprechenden registern entsprechend setzen. wie genau ist dann aber wieder von dem jeweiligen µc direkt abhängig. wenn ich mich recht erinnere kann man so auch das pausen - verhältnis entsprechend einstellen.
-
Im Großen und Ganzen weiß ich wie ich das Projekt zu realisieren habe. Was nur über meinen Horizont hinausgeht ist die Sache mit dem Hardwaretimer bzw. die richtige Ansteuerung des Motors. Es gibt eine Zeitspanne innerhalb der 20 ms in der der Motor ein Signal bekommt sich zu drehen und die andere zeitspanne bekommt er keinen Strom zugeführt.
Bevor ich da nicht weiterkomme, kann ich den weiteren Verlauf leider auch nicht korrekt umsetzten
-
das puls - pause - verhältnis kannst du ebend über diesen port einstellen. wenn dein motor schneller laufen soll muss entsprechend der "high" - puls länger sein.
göögle hat mir diese seite hier rausgehauen. keine ahnung ob dein pic dabei ist (oder du überhaupt einen benutzt, hast ja nix zu gesagt). jedenfalls kann man sich hier die portbelegung etc. anzeigen lassen.
http://www.micro-examples.com/public/microex-navig/doc/097-pwm-calculator.html