Har monterat ett RC-servo, Hitec HS-300, som ska dra runt ett lås. När jag testade styrdes servot av en vanlig Arduino, och det var inga problem att dra runt låset.
Nu använder jag istället en Arduinoklon utan kristall. Detta medför att klockfrekvensen är hälften så låg. Servot fungerar dock med samma kod, det snurrar som det ska när det är obelastat. Problemet kommer när jag kopplar in servot, då orkar inte servot längre. Koden är densamma, och det går att dra runt låset helt om jag försöker att köra servot till rätt läge 2-3 gånger på rad. Med den första Arduinon strömförsörjdes allt via USB från laptopen, nu kör jag med en switchad 5V nätdel på 2 ampere, så det är inte strömmen som inte räcker till.
Kan det vara så att pulslängderna som styr servot ändrats och att servot därmed får sämre dragkraft?
RC-Servo - påverkas dragkraften av pullängden?
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: RC-Servo - påverkas dragkraften av pullängden?
Om du kör samma program - oändrat - och har halva frekvensen kommer pulserna att vara dubbelt så långa och PRF går ner till hälften. Detta ger inte lägre kraft som sådan men istället samma kraft - i pulser.
Så det är bara att ändra pulslängder och PRF till den nya lägre hastighet, då skulle saken vara biff.
Så det är bara att ändra pulslängder och PRF till den nya lägre hastighet, då skulle saken vara biff.
- PHermansson
- EF Sponsor
- Inlägg: 4340
- Blev medlem: 22 december 2004, 00:46:38
- Ort: Särestad Grästorp
- Kontakt:
Re: RC-Servo - påverkas dragkraften av pullängden?
Förmodar att du i koden har en variabel som anger klockfrekvensen så du får rätt pulståg till servot = önksad vinkel.
Får du fel pulståg så kommer du få fel vinkel på servot, inte mindre kraft.
Pulse Cycle: 20 ms
Pulse Width: 900-2100 µs
Kraften i servot genereras av motorn i det och går på 5V matningen.
HS-300 kan matas med 6V vilket ger ca 20% mer kraft.
Torque:
4.8V: 42.0 oz-in (3.02 kg-cm) = 0.030Nm
6.0V: 51.0 oz-in (3.67 kg-cm) = 0.036Nm
Får du fel pulståg så kommer du få fel vinkel på servot, inte mindre kraft.
Pulse Cycle: 20 ms
Pulse Width: 900-2100 µs
Kraften i servot genereras av motorn i det och går på 5V matningen.
HS-300 kan matas med 6V vilket ger ca 20% mer kraft.
Torque:
4.8V: 42.0 oz-in (3.02 kg-cm) = 0.030Nm
6.0V: 51.0 oz-in (3.67 kg-cm) = 0.036Nm
Re: RC-Servo - påverkas dragkraften av pullängden?
Elektroniken i ett vanligt RC servo är byggt för att få en puls på
1-2 (1.5 +/- 0.5) ms varje 20 ms. Alla (större) avvikelser från
det kommer att sänka prestanda på servot som t.ex svarstid men
det är tänkbart att även kraften påverkas.
Så svaret är enkelt, kör med rätt signal till servot!
Varför man *inte* skulle vilja göra det föstår jag inte alls...
> Kan det vara så att pulslängderna som styr servot ändrats
Ja, det är väll klart att de gör. Processorn går med halva farten.
Om du inte har någon tidsreferens *utanför* processorn...
1-2 (1.5 +/- 0.5) ms varje 20 ms. Alla (större) avvikelser från
det kommer att sänka prestanda på servot som t.ex svarstid men
det är tänkbart att även kraften påverkas.
Så svaret är enkelt, kör med rätt signal till servot!
Varför man *inte* skulle vilja göra det föstår jag inte alls...
> Kan det vara så att pulslängderna som styr servot ändrats
Ja, det är väll klart att de gör. Processorn går med halva farten.
Om du inte har någon tidsreferens *utanför* processorn...
Re: RC-Servo - påverkas dragkraften av pullängden?
Ja, kraften påverkas av _pulsavståndet_.
Antar Du använder någon färdig funktion för att generera pulserna och att därmed längden på dessa blir rätt så att servots positioner därmed också stämmer. Denna tar då hänsyn till den ändrade hårdvaran.
Om sedan tiden mellan pulserna bestäms av en mjukvaruloop i Ditt eget program så blir det dubbla pulsavståndet om prestandan på MCU'n halveras och därmed sjunker kraften. Du måste då ändra i programmet så det åter blir rätt timing.
Ett analogt RC-servo jämför längden på inkommande puls med en lokalt genererad och som beror på servots nuvarande läge. Skillnaden mellan dessa pulser ger drivpulserna till motorn. Dessa filtreras så de skall bli lite längre. Kommer de hälften så ofta som de skall så fungerar inte filtreringen som är beräknad för 50Hz.
Antar Du använder någon färdig funktion för att generera pulserna och att därmed längden på dessa blir rätt så att servots positioner därmed också stämmer. Denna tar då hänsyn till den ändrade hårdvaran.
Om sedan tiden mellan pulserna bestäms av en mjukvaruloop i Ditt eget program så blir det dubbla pulsavståndet om prestandan på MCU'n halveras och därmed sjunker kraften. Du måste då ändra i programmet så det åter blir rätt timing.
Ett analogt RC-servo jämför längden på inkommande puls med en lokalt genererad och som beror på servots nuvarande läge. Skillnaden mellan dessa pulser ger drivpulserna till motorn. Dessa filtreras så de skall bli lite längre. Kommer de hälften så ofta som de skall så fungerar inte filtreringen som är beräknad för 50Hz.
