A motorokat lehúzva a műszer helyesen működött, rádugva viszont megzavarodott. Egyértelmű lett tehát, hogy a motoron keresztül kapott zavart a mérő.
Elsőként a PWM frekvencia átállításával próbálkoztunk, ami egyből meg is hozta a megoldást. A PWM-et magasabb - és főleg a 40kHz-t nem osztó - frekvenciára állítva a zavar megszűnt, a játék tökéletesen működött. A lassabb sebesség miatt az eredeti program időzítésein hangolni kellett, de hamar jó lett, és ügyesen keringett a szobában. Ezzel a kisebb sebességgel már tudtak játszani vele a kisebb gyerekek is - menekültek, elé álltak, hancúroztak. A motor divert ellenőriztük, nem melegedett beteges módon ezen a magasabb frekvencián sem.
Azt persze nem fejtettük meg, hogy a rezonancia akusztikusan, vagy esetleg elektromos úton terjed-e át, és hogy pontosan milyen úton, de a problémát megoldottuk. Vettem a fáradtságot, és a Sparkfunnak is írtam belőle egy jelentést, úgyhogy ettől a problémától már nyugodtan alszom.
A fixált kód: https://pastebin.com/1yj5TB7B
A lényeg (a 31,74 kHz-ben már nem vagyok biztos, lehet, hogy a duplája lesz az):
// Set timer2 period to 31,74 kHz - this is the period of the motor drivers - not in interference with 40kHz of the untrasound sensor
TCCR2B = TCCR2B & 0b11111000 | 0b00000001;
- asch blogja
- A hozzászóláshoz be kell jelentkezni
Hozzászólások
A tápokat is megszkópoltátok?
- A hozzászóláshoz be kell jelentkezni
Úgy érted, hogy esetleg az okozta a problémát, hogy a tápot "lerántja" a motor driver, vagy a tápvezetéken jut át a zavar a vevőre?
Nem, azt nem mértük. De érdemes lett volna, legközelebbre felveszem a listára.
- A hozzászóláshoz be kell jelentkezni
Pontosan úgy értem.
- A hozzászóláshoz be kell jelentkezni
Mint a Tékozló Homáron írják néhányan: Az a baj, hogy kondenzátor van benne!
No, itt meg az, hogy nincs. ;)
A túl nagy zavarhoz elegendő 10cm (~100nH) vezeték, aminek a végén nincs az árammal arányos szűrés.
- Tegyél egy >10uF/10V kondenzátort a breadboardra az 5V és GND után.
- Ezt követően indulhat az 5V - motor - tranzisztor - GND hurok,
-- minél közelebb a kondenzátorhoz,
-- minél kisebb legyen a hurok felülete!
Elkó helyett sokkal jobb, ha egy kételemű tüskesor rövidebb végére rágányolsz egy MLCC 0805, 10uF/16V/X7R kondenzátort.
Ugyanilyen kondenzátort felraknék az 5V és GND közé az MCU panel hátuljára is.
- A hozzászóláshoz be kell jelentkezni