Hur snygga till signalen?
Hur snygga till signalen?
Hej på er!
Det här är nog ganska basic, men jag lyckas inte få till det ändå. Hoppas ni har tid för en amatör!
Det handlar om en RC-modell, där mottagaren genererar en servosignal som behandlas i en Arduino. En servosignal är en 1-2ms puls var 20ms. Arduinon varvtalsstyr sedan en enkel (=Kina, borstad) DC-motor enligt följande schema: Motorstyrningen (gul mätpunkt ch2) genererar ganska fula spikar på styrsignalen (blå mätpunkt ch1), vilket gör att Arduinon ibland feltolkar den: Jag har provat följande för att snygga till signalen:
- Keramiska avstörningskondensatorer på motorn: Pol till pol och poler till skal. Det hade ingen synlig effekt på oscilloskopet (men jag har inte provlyssnat effekten på FM-radio).
- Elektrolyt + keramisk kondensator över motorn, men nära MOSFET:en. Verkningslöst.
- Elektrolyt + keramisk kondensator mellan Arudinons 5V och jord. Verkningslöst.
Tilläggas kan att +5V till både Arduinon och RC-mottagaren genereras av en BEC kopplad till samma batteri som driver motorn (24V). Den sitter en bit bort. Jag matar Arduinon med 5V bakifrån och ja, jag har förstås råkat koppla in USB-kabeln samtidigt, men det verkar inte vara några problem, även om man ska låta bli sådant. Jag har inte riktigt velat skaffa en BEC till för att göra om 24V till 7V för att mata Arduinon den rätta vägen och som den sedan gör om till 5V. Borde jag det?
Motorn, som egentligen är fyra st parallellkopplade drar tillsammans c:a 0,3A.
Tacksam för tips!
Det här är nog ganska basic, men jag lyckas inte få till det ändå. Hoppas ni har tid för en amatör!
Det handlar om en RC-modell, där mottagaren genererar en servosignal som behandlas i en Arduino. En servosignal är en 1-2ms puls var 20ms. Arduinon varvtalsstyr sedan en enkel (=Kina, borstad) DC-motor enligt följande schema: Motorstyrningen (gul mätpunkt ch2) genererar ganska fula spikar på styrsignalen (blå mätpunkt ch1), vilket gör att Arduinon ibland feltolkar den: Jag har provat följande för att snygga till signalen:
- Keramiska avstörningskondensatorer på motorn: Pol till pol och poler till skal. Det hade ingen synlig effekt på oscilloskopet (men jag har inte provlyssnat effekten på FM-radio).
- Elektrolyt + keramisk kondensator över motorn, men nära MOSFET:en. Verkningslöst.
- Elektrolyt + keramisk kondensator mellan Arudinons 5V och jord. Verkningslöst.
Tilläggas kan att +5V till både Arduinon och RC-mottagaren genereras av en BEC kopplad till samma batteri som driver motorn (24V). Den sitter en bit bort. Jag matar Arduinon med 5V bakifrån och ja, jag har förstås råkat koppla in USB-kabeln samtidigt, men det verkar inte vara några problem, även om man ska låta bli sådant. Jag har inte riktigt velat skaffa en BEC till för att göra om 24V till 7V för att mata Arduinon den rätta vägen och som den sedan gör om till 5V. Borde jag det?
Motorn, som egentligen är fyra st parallellkopplade drar tillsammans c:a 0,3A.
Tacksam för tips!
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Hur snygga till signalen?
Blir spikarna samma om du kopplar in ett motstånd istället för motorerna?
D.v.s är det styrningen eller motorerna som genererar störningen?
Har du prövat att dra in ett pi-filter på matningen?
D.v.s är det styrningen eller motorerna som genererar störningen?
Har du prövat att dra in ett pi-filter på matningen?
Re: Hur snygga till signalen?
Och hur är mätkopplingen gjord? Så man inte plockar upp störningar som inte finns där annars.
- Synesthesia
- Inlägg: 584
- Blev medlem: 22 januari 2010, 19:14:10
- Ort: Mellan Göteborg och Kungsbacka
Re: Hur snygga till signalen?
Sådana störningar kan man, när de finns, ofta se även om man mäter på GND och ibland även med kortsluten prob. Hur och i vilken ordning man drar GND och andra ledare där större strömmar går genom påverkar ganska mycket hur det ser ut med störningar.
Jag skulle (förutom att ha sett över ledningsdragningen) se till att störa av ingången: antingen med ett lågpassfilter + schmitt-trigger eller också i programmet så den filtrerar bort värden som avviker för mycket jämfört med de senaste inkommande värdena. Gör du hårdvarufilter-varianten (dvs lågpassfilter + schmitt-trigger) så gäller det att inte få in störningen igen efter filtret (lägg filtret nära Arduinon)
Jag skulle (förutom att ha sett över ledningsdragningen) se till att störa av ingången: antingen med ett lågpassfilter + schmitt-trigger eller också i programmet så den filtrerar bort värden som avviker för mycket jämfört med de senaste inkommande värdena. Gör du hårdvarufilter-varianten (dvs lågpassfilter + schmitt-trigger) så gäller det att inte få in störningen igen efter filtret (lägg filtret nära Arduinon)
- prototypen
- Inlägg: 11076
- Blev medlem: 6 augusti 2006, 13:25:04
- Ort: umeå
Re: Hur snygga till signalen?
Prova med kondensator+motstånd i serie direkt på motorns poler.
Bara en kondensator kan förvärra störningarna då kondensator och motorns induktans kan bilda en svängningskrets.
Sätter man in ett motstånd så blir det värme av det som vill självsvänga.
Prova med 10 ohm och 0,22 uF
En drossel i serie med motorn brukar minska störningar OCH få motorn att må bättre, blir renare likström till motorn.
Ett motstånd mellan Aurdino och gaten på MOS transistorn kan slöa ned transistorn som minskar spikarna. Förlusterna ökar i transistorn men det får man ta.
Filter mellan RC mottagaren och Aurdinon där får man prova tills pulsen börjar få rundade hörn.
Digital filtrering i Aurdinon, helt enkelt göra en bedömning, är det rimligt med en signal nu.
Bara en kondensator kan förvärra störningarna då kondensator och motorns induktans kan bilda en svängningskrets.
Sätter man in ett motstånd så blir det värme av det som vill självsvänga.
Prova med 10 ohm och 0,22 uF
En drossel i serie med motorn brukar minska störningar OCH få motorn att må bättre, blir renare likström till motorn.
Ett motstånd mellan Aurdino och gaten på MOS transistorn kan slöa ned transistorn som minskar spikarna. Förlusterna ökar i transistorn men det får man ta.
Filter mellan RC mottagaren och Aurdinon där får man prova tills pulsen börjar få rundade hörn.
Digital filtrering i Aurdinon, helt enkelt göra en bedömning, är det rimligt med en signal nu.
Re: Hur snygga till signalen?
Ett stort tack till er alla för alla bra förslag! Vilken uppställning - jag är hänförd!
Jag har försökt att kompensera för störningarna i programlogiken genom att kräva x antal avläsningar med samma värde. Det har hjälpt, men gör samtidigt att responsen blir sämre. Det blir ändå fel ibland, så nu känns det som att jag är tvungen att hantera problemet vid källan.
5V har samma spikar, så jag tror jag ska börja med två saker:
1 Koppla in labbagregatet som 5V-försörjning i stället för BEC och se vad det ger.
2 Koppla in ett motstånd i stället för motorerna som JustNeed föreslår för att förvissa mig om vad som orsakar störningarna. Jag tog liksom för givet att det var motorerna...
Sedan provar jag de andra lösningarna beroende på vad jag hittar i första steget. Jag är väldigt sugen på Prototypens idé om seriedrossel vid motorerna också. Kan kanske göra dem tystare om inte annat. De liksom "sjunger" som det är nu.
Tackar och bockar!
Jag har försökt att kompensera för störningarna i programlogiken genom att kräva x antal avläsningar med samma värde. Det har hjälpt, men gör samtidigt att responsen blir sämre. Det blir ändå fel ibland, så nu känns det som att jag är tvungen att hantera problemet vid källan.
5V har samma spikar, så jag tror jag ska börja med två saker:
1 Koppla in labbagregatet som 5V-försörjning i stället för BEC och se vad det ger.
2 Koppla in ett motstånd i stället för motorerna som JustNeed föreslår för att förvissa mig om vad som orsakar störningarna. Jag tog liksom för givet att det var motorerna...
Sedan provar jag de andra lösningarna beroende på vad jag hittar i första steget. Jag är väldigt sugen på Prototypens idé om seriedrossel vid motorerna också. Kan kanske göra dem tystare om inte annat. De liksom "sjunger" som det är nu.
Tackar och bockar!
Re: Hur snygga till signalen?
Först: Se till att du mäter på rätt sätt. När du mäter på två signaler såhär så behöver du ansluta båda probarnas jordklämmor på samma ställe, och helst låta båda probkablarna ligga invid varandra. Det optimala är att ha oscilloskop med fler kanaler och differentialmäta med två probar för varje signal, en för själva signalen och en för den relevanta signaljorden. I ditt fall kan du antagligen ställa osciclloskopet för att göra så och visa en kurva i taget.
Jag skulle gärna vilja se en bild på hur kopplingen ser ut rent fysiskt.
Om de tre jordsymbolerna på schemat motsvarar fysiska kablar till chassie/jordpunkt så är det som gjort för jordslingor.
Se till att hela slingan med motorbatteriet, motorn och FET-transistorn dras med rätt hårt tvinnad kabel, eller åtminstone med tvåledare och inte separata enkelledare. Ha inte någon jordning till nån gemensam jordpunkt ute i denna slinga.
Åtminstone minus/jord till din BEC ska tas vid FET-transistorn.
Ur störningssynpunkt så är det nog bättre att ha så korta kablar från batteri till motor som möjligt, och hellre ha lång kabel mellan Arduino och gate på FET. Jag skulle föreslå att "bestämma" att ha en gemensam jordpunkt nära batteriet, och ansluta FET, batteri och BEC där. Jag antar att din BEC har jord ihopkopplad på ingång och utgång. I så fall så kan denna jord med fördel dras i samma ledare som signaljorden för styrspänningen till din FET.
Om du ändå inte blir av med störningarna så kan det kanske hjälpa med skärmad kabel till motorkretsen, med skärmen ansluten på "rätt" sätt. Men det kommer vi till senare.
Jag skulle gärna vilja se en bild på hur kopplingen ser ut rent fysiskt.
Om de tre jordsymbolerna på schemat motsvarar fysiska kablar till chassie/jordpunkt så är det som gjort för jordslingor.
Se till att hela slingan med motorbatteriet, motorn och FET-transistorn dras med rätt hårt tvinnad kabel, eller åtminstone med tvåledare och inte separata enkelledare. Ha inte någon jordning till nån gemensam jordpunkt ute i denna slinga.
Åtminstone minus/jord till din BEC ska tas vid FET-transistorn.
Ur störningssynpunkt så är det nog bättre att ha så korta kablar från batteri till motor som möjligt, och hellre ha lång kabel mellan Arduino och gate på FET. Jag skulle föreslå att "bestämma" att ha en gemensam jordpunkt nära batteriet, och ansluta FET, batteri och BEC där. Jag antar att din BEC har jord ihopkopplad på ingång och utgång. I så fall så kan denna jord med fördel dras i samma ledare som signaljorden för styrspänningen till din FET.
Om du ändå inte blir av med störningarna så kan det kanske hjälpa med skärmad kabel till motorkretsen, med skärmen ansluten på "rätt" sätt. Men det kommer vi till senare.
Re: Hur snygga till signalen?
En balun fungerar väldigt bra.
Jag monterade en balun ut till sevot som matades
från samma 5V som övrig elektronik som styrde
R/C-servot. Alla problem försvann direkt.
Jag monterade en balun ut till sevot som matades
från samma 5V som övrig elektronik som styrde
R/C-servot. Alla problem försvann direkt.
Re: Hur snygga till signalen?
Jag hade den här i arkivet och den kanske du kan modifiera så det passar...
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Hur snygga till signalen? [LÖST]
Efter att ha klurat lite, kändes det logiskt att börja med steg två, dvs att koppla in ett motstånd i stället för motorerna för att lokalisera om källan var motorerna eller styrningen som JustNeed föreslog. Det visade sig vara styrningen - hade jag ju aldrig trott!
Därmed var det logiskt att prova Prototypens förslag med ett seriemotstånd på gaten. Eftersom jag inte hade en aning om vilket värde som skulle passa, tog jag en 100K trimpot, för att kunna justera in så att det blev så bra som möjligt.
Titta så fint det blev! Motorerna blev faktiskt tystare också på kuppen!
Det finns nog mycket som kan göras bättre med både mätkrets (hängde bara proberna på Arduinon...) och kabeldragning (jordslingor - jorå!), men det verkar inte behövas i dagsläget.
Än en gång tack till alla som lagt pannan i djupa veck och kommit med konstruktiva förslag - jag har lärt mig på dem också, även om jag inte behövde ta till allt.
Därmed var det logiskt att prova Prototypens förslag med ett seriemotstånd på gaten. Eftersom jag inte hade en aning om vilket värde som skulle passa, tog jag en 100K trimpot, för att kunna justera in så att det blev så bra som möjligt.
Titta så fint det blev! Motorerna blev faktiskt tystare också på kuppen!
Det finns nog mycket som kan göras bättre med både mätkrets (hängde bara proberna på Arduinon...) och kabeldragning (jordslingor - jorå!), men det verkar inte behövas i dagsläget.
Än en gång tack till alla som lagt pannan i djupa veck och kommit med konstruktiva förslag - jag har lärt mig på dem också, även om jag inte behövde ta till allt.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
- prototypen
- Inlägg: 11076
- Blev medlem: 6 augusti 2006, 13:25:04
- Ort: umeå
Re: Hur snygga till signalen?
Men håll koll på hur varm transistorn blir.
Skulle vara kul veta vilket värde potten står på?
Protte
Skulle vara kul veta vilket värde potten står på?
Protte
Re: Hur snygga till signalen?
15K, men jag tror jag satte den på fel sida av pull-down-resistorn, så att den utgör en spänningsdelare mot gaten. Toppspänningen sjönk till typ 3V där... Syns på sista oscilloskopbilden. Men det löste problemet ändå, så jag har gått vidare till andra utmaningar.prototypen skrev:Men håll koll på hur varm transistorn blir.
Skulle vara kul veta vilket värde potten står på?
Protte