Kan du skriva ut siffror rätt så har du antagligen läst in PWM-data riktigt.
För felsökningens skull borde du skicka ut test-data och se hur din servo reagerar. Kör från 0% till 100% på 10 sekunder och tillbaks igen... (skapa dessa data i processorn). Då har du kontroll på vad borde ske.... då ser du om själva genereringen av pulsen fungerar som den skall, innan du lägger dit data från insignalen.
Med Rätt signal menar jag om jag skriver in ett värde manuellt och om jag testar med inkopplad radio/mottagare
Anledningen till att jag testar så här är för att veta om servot går åt rätt håll när jag svängde höger.
Jag har mer kod som använder Servo.h men det var inte klart. Skall testa detta under dagen.
Att 490Hz är för snabbt för servot är det ingen tvekan om
Ser att du lagt in en begränsare också (constrain)
UndCon> Om jag inverterar signalen och skickar den till ett annat servo blir den helt ryckig och följer inte alls med 1a servots mjuka fina rörelser.
Vissa servon måste ha mer än 10ms periodtid för att funka. Har i mina egna projekt upptäckt att vissa servon klarar kortare periodtider än andra. Fenomenet på dom som inte klarar korta perioder är att det blir jittrigt/ryckigt.
Vet sedan inte heller vad du menar med "invertera" menar du att hög blir låg och låg blir hög? Då blir ju dutycykeln inverterad och inget stämmer väl längre?
Det löser knappast problemet med att välja om servon ska röra sig med styrningen, stå stil eller röra sig motsatt av styrningen och det är ju det essentiella efter vad jag förstår.
Och om tiden på inkommande puls mäts korrekt måste det vara ett programmeringsfel om man inte kan skapa en annan puls baserat på detta värde. Om det sedan skyllas att det ska ske på en Arduino ska jag låta vara osagt, jag hade enkelt klarat detta på en PIC.
När jag kör koden ToPNoTCH postade ovan fungerar det utmärkt - det var min kod som var knas
Nu håller jag på att läsa av den inkommande signalen som skall styra stegen som skall gås igenom
Den har bara MIN/MAX värden , PWM 1000 eller 2000 och jag monterade en momentan switch för att förenkla handhavandet.