Mysterium med PWM'et och de fyra knapparna

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
fosfor
Inlägg: 453
Blev medlem: 13 februari 2013, 05:43:15
Kontakt:

Re: Mysterium med PWM'et och de fyra knapparna

Inlägg av fosfor »

Mr Andersson skrev:Om körfunktionen är konstant aktiv efter att du bytt från aktiv hög till aktiv låg har du troligen glömt att invertera knapp-logiken i koden.
Hej Mr Andersson & Adent!
Det trodde jag också! Men det verkar faktiskt inte ha varit fallet just nu.
MEN är något på spåren angående det där nu tror jag. :idea:
Det fungerade nämligen när jag testade med 2 kör knappar, men inte med alla kör 4 knappar.
Fast det borde tillsynes inte spela någon roll, tills jag såg detta:

Två av dom knapparna var till digitala & pwm IO.
Två av dom knapparna var enbart digitala IO.

Jag tror att däri kan kruxet ligga.
Det blir någon slags "krock" när dessa kablar korsar varandra. Eller att PWM IO inte gillade detta. Varför? Jo..
De går ju dels till samma jord, och kanske framförallt Dessutom via dioder går till en och samma interrupt (pinne 19) på MEGA'n! :shock:
Dioderna är till för att man ska kunna använda en och samma interrupt till alla fyra knappar som då väcker Arduinon om någon av dom trycks.
Vilket har fungerat när jag kör externa pull-downs, men som då alltså jävlas när man byter om till interna pull-ups. Trots att man inverterar allt i koden.
Och nör allt "borde" fungera, så är det PWM utgången som börjar strula?! Fast man inte ens hållt på med den?!

Så antingen behöver jag nog köra alla 4 knappar på 4 digital/pwm I/Os.
Eller om det är så att jag behöver köra alla 4 knappar på 4 enbart digitala I/Os.

Sannolikt behöver jag nog bara köra alla via enbart digitala I/Os.
Detta för att tidigare knappar jag bytt om till intern pull-up har inte påverkat PWM alls. Där har "konverteringen" till interna pull-ups gått bra.
Jag tror att det är först när digitala/PWM I/O's kom in i leken som det började strula med PWM utgången till motorkontrollen, som för övrigt
har varit helt orörd både fysiskt och kodmässigt under hela processen.
Så jag tror att när jag gjorde om I/Os med PWM till intern pull-up så blev det något knas där, som påverkade PWM utgången och där gav fullt
blås (5V) istället för de 0V som den annars ger.

Jag ska alldeles strax ta och testa det ena, och sedan det andra, för att se om det blir någon skillnad.
Återkommer :)
Skriv svar