Hur styra servo med AVR?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Hur styra servo med AVR?

Inlägg av Jonaz »

Hittade denna kod i BASCOM

Kod: Markera allt

'Servo's need a pulse in order to operate
'with the config statement CONFIG SERVOS we can specify how many servo's we
'will use and which port pins are used
'A maximum of 16 servos might be used
'The SERVO statements use one byte for an interrupt counter and the TIMER0
'This means that you can not use TIMER0 anymore
'The reload value specifies the interval of the timer in uS
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10
'we use 2 servos with 10 uS resolution

'we must configure the port pins used to act as output
Config Portb = Output

'finally we must turn on the global interrupt
Enable Interrupts

'the servo() array is created automatic. You can used it to set the
'time the servo must be on
Servo(1) = 100                            '1000 uS on
Servo(2) = 200                            ' 2000 uS on


Dim I As Byte
Do
 For I = 0 To 100
   Servo(1) = I
   Waitms 1000
 Next

 For I = 200 To 0 Step -1
   Servo(1) = I
   Waitms 1000
 Next
Loop
End
Men jag förstår inte riktigt vad den gör mer än talar om att det är 2 servon som skall kopplas in på PORTB.

Men om jag vill styra ett servo till olika lägen så måste väl man ta tex PORTA1 som input och då vrids servot i en riktning och PORTA2 i en annan riktning?
Eller är jag ute och cyklar?
Eller vet ni nån bra sida där man kan lösa mer? gärna med kod exempel.
Användarvisningsbild
RDX*
EF Sponsor
Inlägg: 1652
Blev medlem: 28 maj 2003, 22:52:04
Ort: Skåne - Lund

Inlägg av RDX* »

Kommandot: Servo(1) = X ställer servot i en position. [0<X<255]

Du behöver bara en pin per servo. Servo()=X kommandot sänder ut 1-2 ms pulser där Reload = 10 innebär att pulserna kommer med 10ms intervall.

Beroende på klockfrekvens och servo typ så behöver man ändra X:s intervall.

Jag kan även tipsa om Bascoms maillist http://www.grote.net/bascom/

För att söka i arkivet gå till altavista och sök med host:www.grote.net servo
Skriv svar