Sida 1 av 2

MotorKontroll

Postat: 27 mars 2007, 09:26:56
av tusse
Tänkte att ni skulle få tänka åt mig. Förutsättningen är, en motor med mekanisk varvtalskontroll som styrs av en 12 volts motor. Den styrmotorn har ingång för PWM styrning och back o fram, två ingångar vilket skiftar etta nolla. Det som ska sköta varvtalet är en 555 som jag kan styra frekvensen på 30 till 100 Hz. Jag får även sådana pulser från motorns pulsgivare. Nu till problemet, hur ska det kopplas samman. En Pic 16F628 får göra jobbet. Nu är programmering inte mitt bord men tänkte mig något i stil med detta.


'Varvkontroll




In1 VAR BYTE
In2 VAR BYTE
:Start

PulsIn PORTA.0,1,In1' läser pulslängd
PulsIn PORTA.1,1,In2' läser pulslängd


IF In1 > In2 Then 'Jämför pulsernas längd
PWM PORTA.2,127,100 'PWM till motor
PORTB.1 = 1 ' Rotations riktning
PORTB.2 = 0' Rotations riktning
EndIF

IF In1 + In1 > In2 Then 'Jämför pulsernas längd om dubbel
PWM PORTA.2,255,100
PORTB.1 = 1
PORTB.2 = 0
EndIF

' Samma som tidigare fast motsatt rotation.

IF In1 < In2 Then
PWM PORTA.2,127,100
PORTB.2 = 1
PORTB.1 = 0
EndIF

IF In1 < In2+In2 Then
PWM PORTA.2,255,100
PORTB.2 = 1
PORTB.1 = 0
EndIF

GoTo Start

Postat: 27 mars 2007, 10:57:50
av Mindmapper
Förutsättningen att man ska kunna tänka åt någon annan är att man förstår problemet. Kanske är det för att jag inte är hemma på programmering av PIC, men knappast att allt beror på det.

"Hur ska det kopplas samman" Jag tolkar det som att du behöver ett elektriskt kopplingsschema. Är det rätt? Isåfall blir det svårt med den information du gett!

Isåfall! 555'an sköter varvtalet och uc ska göra jobbet :?: Hur tänker du där :?:
Styrningen till motorn! Fattar att 12V motorn har en komplett PWM-styrning på ett kort. OK, då behövs inte byggas någon H-brygga och man behöver ej veta hur stor ström motorn drar. Detta kort har en ingång som vill ha pulser från 555 (30 - 100Hz) en annan ingång som vill ha fram/back information.

Jag får även sådana pulser från motorns pulsgivare :?: :?: Men dom tänker du inte göra något med eller vadå? Vad ska bestämma varvtalet????
Vad ska bestämma riktningen?

I programmet verkar det som motorns pulsgivare är IN1 och IN2!
Varvar du upp motorn och byter sedan riktning?

Postat: 27 mars 2007, 11:35:25
av tusse

Postat: 27 mars 2007, 11:52:45
av sodjan
Vill bara skjuta in att den minsta PIC18 i mitt sortiment (PIC18F1230)
http://www.jescab.se/Prod_PIC.html är en modell med en utökad
PWM modul anpassad för motorstyrningar. Många fler funktioner
än i den vanliga PWM modulen på andra PIC modeller. Programerbar
deadband, 14-bitars upplösning, 3 oberoende kanaler med komplementära
utgångar m.m m.m. Det blir nog enklare programmeringsmässigt och
speciellt säkrare än en helt mjukvaru-PWM lösning.

EDIT: Missade att du redan hade en PWM motorstyrning på ett kort...

Postat: 27 mars 2007, 12:19:23
av AMP
Varför ha med 555? Borde det inte vara bättre att skaffa en PIC med AD-omvandlare istället?

Postat: 27 mars 2007, 12:55:24
av tusse
Sodjan>> jag var inne på den linjen förut men varken mitt program eller programmerare stödjer den modellen sedan har jag 16F628 som bara ligger.
AMP Det finns POTIN som ger ett värde på 256 bitar, kan vara något.

Postat: 27 mars 2007, 15:42:09
av tusse
Nu är PicBasic mycket begränsad men om jag under en viss tid vill läsa av antalet pulser på en port, går det. Jag vill veta hur många pulser det kommer per sekund som exempel. Kan ni i annat språk så kom med förslag.

Postat: 27 mars 2007, 17:56:43
av squiz3r
POTIN tror jag är samma som RCTIME då mäter man hur långtid det tar för en konding att ladda ur sig genom en pot. Jag har alldrig programerat en "naken" PIC med basic, men en bs2 har jag räknat pulser per minut med. Jag har för mig att det finns något färdigt kommando för det, men jag tycker bättre om att göra det själv. varje gångingången blir hög lägger du till 1 i en variabel sen tar du det talet delatmed hur många sekunder du mätte, så får du svaret i pulser/sek.

//Daniel A

Postat: 27 mars 2007, 20:27:19
av $tiff
tusse skrev:AMP Det finns POTIN som ger ett värde på 256 bitar, kan vara något.
Det tror jag inte på! Möjlitvis 8 bitar -> 256 möjliga värden.
Huromhelst är det en vanlig AD-omvandlare du behöver.
Trilla nu _inte_ i fällan och skaffa en PIC16F84A bara för att den används på så många andra ställen. Den modellen tangerar värdelösheten.

Postat: 28 mars 2007, 08:16:01
av tusse
Jaaa, så är det $tiff, det blir fel tänkt ibland, tack. Pic 16F628 som jag tänkte använda är väl inte så dum eller? Tack för H-bryggan $tiff den fungerar perfekt. När det gäller att räkna pulser så skriver man så här i Pic-Basic Count PORTA.0, 1000, In1 vilket ger pulser per sekund. Pot kommandot borde fungera om man kallibrerar det vid start.

Postat: 28 mars 2007, 08:49:17
av sodjan
> Pic 16F628 som jag tänkte använda är väl inte så dum eller?

Den är i alla fall inte ett sämre val än Basic...

> så skriver man så här i Pic-Basic Count PORTA.0, 1000, In1

Och den behöver inte göra någonting annat under tiden ??

Personligen tror jag varken 628'an eller Basic är "rätt" för detta.

Postat: 28 mars 2007, 09:12:36
av tusse
Hej.

Du har alltid kritiserat Pic-Basic så det vet jag redan. Det är ett språk som jag har en hum om hur det fungerar därför är det mitt val. Har använt det förr och det har alltid fungerat även om jag lagt det på hyllan ett tag och behöver uppdatera kunskapen. Det är nog inte rätt att styra en 120 Hk motor på detta viset heller.

Postat: 29 mars 2007, 00:09:56
av Mindmapper
Om basic är användbart beror väl till stor del hur snabbt saker och ting ska hända. En 120hk motor behöver inte vara svårare att styra än en 0,5hk. Speciellt om det bara är en hastighetsstyrning utan reglering. Frågan är om 120hk motorn ens behöver vara med i resonemanget. Är det inte 12V motorn som är viktig? Att den sen har en mekanisk koppling till 120hk motorn kan vara en dimmridå, som gör problemet större.

Det finns många här som har stor erfarenhet och kan komma på smarta lösningar. Men jag känner fortfarande att problemet inte riktigt är definierat.

Edit: $tiff's förslag med A/D omvandlaren är en bättre lösning än 555'an, förutsatt att ingångarna på mikrocontrollern räcker.

Postat: 29 mars 2007, 22:25:03
av tusse
Nu tysnade min programmerare, fungerar, fungerar icke skulle man kunna säga. Hmmm. Jag är övertygad !! Hur får jag en egen Wisp628 ??Jo, jag vet Sodjan.

Då lär väl inte mitt program fungera till den,Icprog.exe, finns det något lika enkelt?

Postat: 29 mars 2007, 22:29:07
av sodjan
Wisp628 har sitt "eget" styrprogram till Windows (XWisp2)
som är mycket enkelt att använda.
Se : http://www.jescab.se/Programvara.html
för exempel på användning av XWisp2.