Forum: Mikrocontroller und Digitale Elektronik PWM Signal im PIC auswerten und weitergeben ?


von eXtremeCostumez (Gast)


Lesenswert?

Hallo !
Ich bin auf dem Gebiet PIC-Programmierung noch ein totaler "Noob" (oder 
auf gut bayrisch : "I hob ka Ahnung").
Nun möchte ich mit Hilfe eines PICs einen Fahrtregler bauen.
Assembler lerne ich gerade.
Nun folgendes:
Ich bekomme vom Empfänger ein PWM Signal.
Was muss ich mit dem machen ?
Einen Timer "hochzählen" und das Tastverhältnis messen ?
Wenn ich dann zum Beispiel ein Tastverhältnis vonm 25% rausbekomme wie 
geht es dann weiter ?

Gruß

von Andreas Paulin (Gast)


Lesenswert?

1
Ich bekomme vom Empfänger ein PWM Signal.

Was für ein Empfänger? Worum gehts eigentlich?
1
Was muss ich mit dem machen ?
Weiß nicht. Kommt drauf an, was passieren soll...

Du musst Dich etwas genauer ausdrücken, dann gibts genauere Hilfe ;-)

von Ratlos (Gast)


Lesenswert?

Es geht um Modellbau und den dort üblichen PWM Signalen zum Ansteuern 
von Servos und Fahrtreglern...
Für Atmel gibts hier unzählige Beispiele hier und im www. Solltest das 
mal als Referenz nehmen.

von Thomas B. (Firma: Druckerei Beste) (virtupic)


Lesenswert?

Wenn es wirklich ein Signal von einem Modellbauempfänger ist, dann 
brauchst du nur mit einem Timer oder per Software die Pulsweite zu 
messen. Die liegt zwischen 1 ms und 3 ms. Die 1 ms nur unter Vorbehalt, 
kommt aus dunkler Erinnerung.

virtuPIC

von eXtremeCostumez (Gast)


Lesenswert?

Schuldigung habe mich vielleicht etwas schlecht ausgedrückt.
Also ,es geht ,wie schon vermutet, um einen Modelbauempfänger.
Ich bekomme ja das PWM-Signal.Das Messe ich dann mithilfe eines Timers.

1.Muss ich mit dem Signal dann noch etwas machen oder nur weiter zum 
Motor leiten ?

2.Woher weiß ich ob das Signal für den "Rückwärtsgang" oder für den 
"Vorwärtsgang" ist ?

Und jetzt die wohl verbotene Frage : Hat vielleicht jemand einen 
Beispiel Assembler Quelltext ?

Gruß

von HildeK (Gast)


Lesenswert?

Ich habe zwar auch 1 ... 2 ms in Erinnerung, aber egal, man kann die 
Zeiten ja skalieren:

Es gibt zwei Möglichkeiten:
1. mit einem Kanal. 1.5ms -> Motor steht, 1ms -> Motor voll rückwärts, 
2ms -> Motor voll vorwärts.

2. mit zwei Kanälen: Kanal 1 bestimmt die Drehzahl, 1ms -> Motor steht, 
2ms Vollgas. Kanal 2 bestimmt die Fahrtrichtung, <1.5ms -> Motor läuft 
rückwärts, >1.5ms -> Motor läuft vorwärts.
Nach- oder Vorteil: man kann in voller Fahrt vorwärts den Rückwärtsgang 
'reinhauen' :-)

Jetzt musst du nur noch die entsprechend detektierten Zeiten in eine 
Spannung für deinen Motor umsetzten, z.B. mit einer PWM. Das was der 
Fernsteuersender /-empfänger als 'Protokoll' hat, ist m.E. keine PWM, 
zumindest nicht in dem Sinne, wie sie hier im Forum häufig zur 
Ansteuerung von LEDs und Motoren verwendet wird und auf die du die 
unterschiedlich langen Impulse umsetzen musst.

von eXtremeCostumez (Gast)


Lesenswert?

Danke erst mal !
Das Empfängersignal ist also gar kein PWM ?!Dann habe ich da was falsch 
verstanden.Wenn dann würde ich die 2.Möglichkeit wählen.
Ich könnte doch dann eigentlich den PWM Port des PICs gleich mit 
einbeziehen um den Motor anzusteuern.
Also :
Signal messen ->PWM erzeugen
und dann das PWM einfach zum Motor ?
Oder wäre es besser kein PWM zu erzeugen sondern die benötigte Spannung 
am Motor rauszumessen und die dann dem Motor zu geben ? (Wäre das 
überhaupt möglich wenn z.B 5v anliegen nur 2v zum Motor zu "geben" ?)

Gruß

PS: Echt tolles Forum habt ihr hier !

von Marco (Gast)


Lesenswert?

Hallo zusammen,
also ich habe mal ein wenig was gelesen über die Verarbeitung. Wie man 
im www lesen kann besteht das Singnal aus einer PWM. Im Ganzen hat das 
Paket mit mehreren Kanälen anscheinend 20ms und die Kanäle haben nen 
Range von 1 - 2ms wobei 1,5ms Mittelstellung beim Servo darstellt. Ich 
selbst interessiere mich sehr für das Thema steh aber leider noch sehr 
in der Kinderschuhen. Bis jetzt habe ich es gerade mal geschafft ein 
paar LED's blinken zu lassen(jeder hat mal klein angefangen). Ich würde 
gerne mit dem CCS-Compiler einen Servo ansteuern. Kann mir vielleicht da 
jemand unter die Arme greifen? Ich habe keine Ahnung wie man eine PWM 
umsetzt bzw programmiert. Ich dachte da eher an ein delay einzubauen 
wobei es ja mit dem 16f690 möglich ist PWM zu verwenden. Naja wie gesagt 
ich bin für jede Hilfe sehr dankbar.

MfG

von Claus P. (claus)


Lesenswert?

@eXtremeCostumez:

unter
http://home.arcor.de/claus.poltermann/dcms/asmprog.html

gibt es ein Tutorial, wie ich mit einem PIC einen 2-Kanal-Memory 
Schalter realisiert habe. Insbesondere ist hier genau beschrieben, wie 
man den Empfängerimpuls auswerten kann.

Den Sourcecode für den Schalter gibt's natürlich auch zum download, 
ebenfalls den Sourcecode für einen Fahrtregler, der das PIC PWM Modul 
nutzt (ohne Tutorial, da musst du dich selbst durchbeissen, oder 
nachfragen, aber die Empfängerimpulsauswertung ist die gleiche wie beim 
Schalter).

Grüße
Claus

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
Noch kein Account? Hier anmelden.