PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pwm-auswertung mit PICAXE



Zentauro
15.07.2005, 17:35
hi!

ich will mit einem picaxe ein pwm-signal auswerten... ich wüsste zwar wie (8051 erfahrung), aber hier gibt es keinen konkreten timer, den ich ansprechen, bzw. auslesen kann, wenn ein interrupt auftritt.

kann mir hierbei bitte jemand helfen???

danke, mfg

15.07.2005, 18:08
mit dem befehl pulsin...

lg

15.07.2005, 18:10
danke, die frage, die sich nun stellt ist folgende-->

muss ich den befehl ganz oben im programm ausführen und die sache läuft immer, oder muss ich den befehl ausführen und warten, bis die messung abgeschlossen ist???

danke, mfg zentauro

17.07.2005, 20:33
Hallo

das Programm lautet:

main:
readadc10 1,w0 ' Analogwert einlesen
pwmout 2, 255, w0 ' PWM setzen
pause 10 ' 10ms Pause, je nach Potiabfragerate
goto main

An IN 1 wird ein Poti über einen Spannungsteiler 10 + 22 K angeschlossen,
dazwischen ein Poti mit 50 K. Am Ausgang OUT2 liegt dann eine nach dem Eingang veränderbare Rechteckspannung an. Super zum realisieren, und nur Sekundensache. Übrigens kann der Befehl "readadc10" 10 Bit am Eingang auflösen im Gegensatz zu nur "readadc".

Grüße
Jon

Zentauro
17.07.2005, 22:40
hi!

danke für die antwort, aber eigentlich wollte ich ein signal, welches von einem modellflugempfänger rauskommt (servosignal) auswerten und darauf reagieren.

der controller soll nämlich je nach signal etwas anderes machen...

mfg

08.08.2005, 20:02
Hallo,
also wenn ich Deine Frage richtig interpretriere, dann willst Du folgende Schaltung aufbereiten:

- Einlesen des Signals vom Fernsteuerempfänger (Rechteck ?)
- Auswerten des Signals und ausgeben an ?

Also ich würde das mit einem PICAXE-08M tun, denn damit hat man alles was man benötigt. Die PICAXE beinhaltet PWM Einlesen und PWM auslesen, und das mit nur ein paar Zeilen Programm.

Was willst Du eigentlich mit dem Wert der auszulesen ist, tun, was genau soll da passieren bzw, geschaltet werden ?
Versuch mal eine exaktere Schilderung des Problems, vielleicht kann ich Dir dann besser helfen.

Gruß Jon

08.08.2005, 20:02
Hallo,
also wenn ich Deine Frage richtig interpretriere, dann willst Du folgende Schaltung aufbereiten:

- Einlesen des Signals vom Fernsteuerempfänger (Rechteck ?)
- Auswerten des Signals und ausgeben an ?

Also ich würde das mit einem PICAXE-08M tun, denn damit hat man alles was man benötigt. Die PICAXE beinhaltet PWM Einlesen und PWM auslesen, und das mit nur ein paar Zeilen Programm.

Was willst Du eigentlich mit dem Wert der auszulesen ist, tun, was genau soll da passieren bzw, geschaltet werden ?
Versuch mal eine exaktere Schilderung des Problems, vielleicht kann ich Dir dann besser helfen.

Gruß Jon

Zentauro
08.08.2005, 23:03
ich will vom empfänger ein signal auslesen und dann einen motor über eine h-brücke in die eine richtung bzw. in die andere ansteuern...


ich bin aber der meinung, dass ich das problem schon fast gelöst habe... ich denke nämlich, dass pulsin der richtige befehl für mich ist...oder???

mfg

Jon
09.08.2005, 10:19
Hallo,

also ich habe das mal durchgetestet und bin zu folgendem Ergebnis gekommen.

Syntax "pulsin"
pulsin pin, state, variable
pin > pin 0-7
state > 0 oder 1
variable > b1 oder w1
- länge eines Impulses kann gemessen werden
- keine Frequenzmessung

Syntax "readadc und readadc10"
readadc channel, variable
channel > pin
variable > b1 oder w1
- liest eine analoge Größe z. B. eine Spannung an einem pin ein
- keine Frequenzmessung

Syntax "count"
count pin, period, variable
pin > pin
periode > Zeitfenster
variable > b1 oder w1
- liest über einen Eingangspin die Frequenz ein
- legt die Impulsrate in eine Wortvariable (w0-w6)
- Wortvariable kann mit if - then weiterverabeitet werden

start:
count 1, 1000, w1 ‘ einlesen der Impulse für Zeitfenster 1 sec
pwmout 2, 255, w1 ` Ausgabe z. B. als Analogsignalwert
if w1 > 5 then led_ein ` Abfrage, wenn w1 > dann Entscheidung fällen
` hier kann man eine zweite if then Bedingung einbauen !!!
if pin1 = 0 then null_w1 ` Abfrage, wenn pin1 Null ist, dann Entscheidung fällen
`debug w1 ‘ augenblicklichen Wert der Wortvariable am Bildschirm anzeigen
goto start ‘ Rücksprung zum Hauptlabel

` Ab dieser Adresse kann eine weitere Operation erfolgen
led_ein: ` bei erreichen des if then Wertes hier her springen
high 4 ` Ausgang 4 auf high setzen (LED leuchtet)
pause 250 ` Pause einlegen
low 4 ` Ausgang 4 auf low
goto start ‘ Rücksprung zum Hauptlabel

null_w1: ` ist pin1 null, dann w1 null setzen
w1 = 0 ` setze w1 auf Null
goto start ‘ Rücksprung zum Hauptlabel

Ob Du nun mit einer Anlogwertverarbeitung oder digital weiter verfährst, ist Dir überlassen, Tatsache ist, daß man beide Funktionen für eine Entscheidungsabfrage verwenden kann.

Gruß Jon