[Underwater Thruster Control] Kuinka käyttää STM32:ta ESC:n ohjaamiseen PWM:n kautta?
Julkaissut Fengyukun
Monet opiskelijat, jotka haluavat käyttää mikro-ohjaimia ohjauspotkurien toiminnan ohjaamiseen, ovat löytäneet paljon tietoa Internetistä, mutta havainneet, että monet niistä eivät ole kovin selkeitä APISQUEEN kirjaa lyhyesti kuinka ongelma ratkaistaan.
Toivon, että jokainen voi jakaa kokemuksiaan kommenttialueella ja auttaa useampia ihmisiä.
Ostamasi ESC:t voivat olla erilaisia, mutta yleinen ohjausidea on sama, joten uskon, että pystyt saavuttamaan tavoitteesi tämän artikkelin lukemisen jälkeen.
PWM signaali:
(1) PWM-aallon ohjaus (yleensä ESC:itä ohjataan 50 Hz PWM-aalolla, joka on 20 ms);
(2) Välitauko (tässä yleensä viittaa käyttöjakson korkeaan tasoon) 1,5 ms Itse asiassa 1,475 ja 1,525 ms:n välinen aika katsotaan välitauoksi.
(3) Säätöalue on 1 ms - 2 ms;
(4) Kierto eteenpäin 1,5 ms:sta 2 ms:iin, taaksepäin 1,5 ms:sta 1 ms:iin.
Tässä on yksinkertainen viittaus Arduinoon:
Huomautus: ESC:n lukitus on avattava ennen kuin sitä voidaan käyttää! ESC antaa 3 piippausta, kun se on kytketty virtalähteeseen, ja 2 piippausta, kun se on avattu onnistuneesti, yhteensä 5 piippausta. Jos ESC:n lukitusta ei avata onnistuneesti, sitä ei voi käyttää ohjaukseen. Viitaten siis yllä olevaan koodiin, voimme päätellä, että tapa ESC:n lukituksen avaamiseen on asettaa se nollasignaaliin alustuksen jälkeen ja vasta signaalin vastaanottamisen jälkeen (kaksi piippausta) voidaan aloittaa nopeuden säätö.
Hallitse virheenkorjausmenetelmiä
Käytämme STM32F7-kehityskorttia ja HAL-kirjastoa ohjelmointiin ja virheenkorjaukseen. Itse asiassa ajastin tuottaa PWM-aaltoja. Mutta on monia asioita, joihin on kiinnitettävä huomiota, ja monien yksityiskohtien ymmärtämättä jättäminen vie aikaa ja energiaa. Tässä muutama sana virheenkorjauskokemuksestani.
Ensinnäkin, kun määrität PWM-aaltoa ajastimeen, ole varovainen, ettet alusta sitä lukituksen avaussignaalisi, anna sille satunnaista arvoa tai yksinkertaisesti et konfiguroi sitä. Koska ESC ei avaudu ennen kuin ajastin ja PWM on alustettu, 1,5 ms:n välissä oleva pysäytyssignaali on sen avaussignaali piippaa käynnistettäessä Kolmen äänimerkin jälkeen ESC piippaa vain kerran, eivätkä terät vieläkään käänny.
Toiseksi, kiinnitä huomiota viiveen käyttöön. Tämän seurauksena ESC vain piippasi ja sitten lakkasi vastaamasta. Sitten kun käytin oskilloskooppia tarkkaillakseni PWM-aaltoa Alustain välähdyksen suoraan Tämä edellyttää, että ESC:n on aika vastaanottaa lukituksen avaussignaali. Sinun tulisi kuitenkin kiinnittää huomiota myös tällä kertaa. Aluksi käytin sen määrittämiseen delay_us():ta, mutta ongelmaa ei saatu ratkaistua myöhemmin Ongelma oli edelleen. Joten kuinka ymmärtää tämän lukituksen avaussignaalin vastaanottoaika, on erittäin tärkeää.
Käytön aikana tulee myös kiinnittää huomiota oskilloskoopin käytön opettelemiseen, jotta voit tarkistaa, onko määrittämissäsi signaaleissa ongelmia. Alla on PWM-aalto, jonka toimintajakso on 1,5 ms, jakso 20 ms ja amplitudi 3,3 V, jonka alun perin alustin.
Yhteenvetona muutama huomioitava seikka koko prosessin aikana:
(1) ESC:tä ohjataan yleensä 50 Hz:n taajuudella ja ohjausalue on noin 1 ms ja 2 ms välillä, mikä tietysti riippuu tilanteesta.
(2) Kun virta on kytketty, ESC piippaa 3 kertaa Jos lukituksen avaaminen onnistuu, ESC piippaa 2 kertaa myöhemmin. Mutta jos ESC antaa vain yhden piippauksen, on todennäköistä, että ESC vastaanotti määrittämäsi signaalin, mutta ei avannut lukitusta onnistuneesti, joten sinun on tarkistettava huolellisesti avauskoodi nähdäksesi, onko siinä virhe. Jos ESC ei piippaa, se ei vastaanota signaalia ollenkaan, tarkista johdotus ja koodi.
(3) Kiinnitä huomiota viivetoiminnon käyttöön antaaksesi ESC:lle tietyn ajan lukituksen avaussignaalin vastaanottamiseen. Jokainen ESC on erilainen, joten säädä se itse.
(4) Kiinnitä huomiota maadoitukseen Liitä ESC-signaalijohto ohjauskortin signaalilähtöporttiin ja liitä sitten signaalijohdon maadoitus ohjauskortin GND:hen.
(5) Opi käyttämään oskilloskooppia määrittämiesi signaalien tarkistamiseen.
(6) Älä kytke vääriä johtoja!
Toivon, että jokainen voi jakaa kokemuksiaan kommenttialueella ja auttaa useampia ihmisiä.
Ostamasi ESC:t voivat olla erilaisia, mutta yleinen ohjausidea on sama, joten uskon, että pystyt saavuttamaan tavoitteesi tämän artikkelin lukemisen jälkeen.
PWM signaali:
(1) PWM-aallon ohjaus (yleensä ESC:itä ohjataan 50 Hz PWM-aalolla, joka on 20 ms);
(2) Välitauko (tässä yleensä viittaa käyttöjakson korkeaan tasoon) 1,5 ms Itse asiassa 1,475 ja 1,525 ms:n välinen aika katsotaan välitauoksi.
(3) Säätöalue on 1 ms - 2 ms;
(4) Kierto eteenpäin 1,5 ms:sta 2 ms:iin, taaksepäin 1,5 ms:sta 1 ms:iin.
Tässä on yksinkertainen viittaus Arduinoon:
Huomautus: ESC:n lukitus on avattava ennen kuin sitä voidaan käyttää! ESC antaa 3 piippausta, kun se on kytketty virtalähteeseen, ja 2 piippausta, kun se on avattu onnistuneesti, yhteensä 5 piippausta. Jos ESC:n lukitusta ei avata onnistuneesti, sitä ei voi käyttää ohjaukseen. Viitaten siis yllä olevaan koodiin, voimme päätellä, että tapa ESC:n lukituksen avaamiseen on asettaa se nollasignaaliin alustuksen jälkeen ja vasta signaalin vastaanottamisen jälkeen (kaksi piippausta) voidaan aloittaa nopeuden säätö.
Hallitse virheenkorjausmenetelmiä
Käytämme STM32F7-kehityskorttia ja HAL-kirjastoa ohjelmointiin ja virheenkorjaukseen. Itse asiassa ajastin tuottaa PWM-aaltoja. Mutta on monia asioita, joihin on kiinnitettävä huomiota, ja monien yksityiskohtien ymmärtämättä jättäminen vie aikaa ja energiaa. Tässä muutama sana virheenkorjauskokemuksestani.
Ensinnäkin, kun määrität PWM-aaltoa ajastimeen, ole varovainen, ettet alusta sitä lukituksen avaussignaalisi, anna sille satunnaista arvoa tai yksinkertaisesti et konfiguroi sitä. Koska ESC ei avaudu ennen kuin ajastin ja PWM on alustettu, 1,5 ms:n välissä oleva pysäytyssignaali on sen avaussignaali piippaa käynnistettäessä Kolmen äänimerkin jälkeen ESC piippaa vain kerran, eivätkä terät vieläkään käänny.
Toiseksi, kiinnitä huomiota viiveen käyttöön. Tämän seurauksena ESC vain piippasi ja sitten lakkasi vastaamasta. Sitten kun käytin oskilloskooppia tarkkaillakseni PWM-aaltoa Alustain välähdyksen suoraan Tämä edellyttää, että ESC:n on aika vastaanottaa lukituksen avaussignaali. Sinun tulisi kuitenkin kiinnittää huomiota myös tällä kertaa. Aluksi käytin sen määrittämiseen delay_us():ta, mutta ongelmaa ei saatu ratkaistua myöhemmin Ongelma oli edelleen. Joten kuinka ymmärtää tämän lukituksen avaussignaalin vastaanottoaika, on erittäin tärkeää.
Käytön aikana tulee myös kiinnittää huomiota oskilloskoopin käytön opettelemiseen, jotta voit tarkistaa, onko määrittämissäsi signaaleissa ongelmia. Alla on PWM-aalto, jonka toimintajakso on 1,5 ms, jakso 20 ms ja amplitudi 3,3 V, jonka alun perin alustin.
Yhteenvetona muutama huomioitava seikka koko prosessin aikana:
(1) ESC:tä ohjataan yleensä 50 Hz:n taajuudella ja ohjausalue on noin 1 ms ja 2 ms välillä, mikä tietysti riippuu tilanteesta.
(2) Kun virta on kytketty, ESC piippaa 3 kertaa Jos lukituksen avaaminen onnistuu, ESC piippaa 2 kertaa myöhemmin. Mutta jos ESC antaa vain yhden piippauksen, on todennäköistä, että ESC vastaanotti määrittämäsi signaalin, mutta ei avannut lukitusta onnistuneesti, joten sinun on tarkistettava huolellisesti avauskoodi nähdäksesi, onko siinä virhe. Jos ESC ei piippaa, se ei vastaanota signaalia ollenkaan, tarkista johdotus ja koodi.
(3) Kiinnitä huomiota viivetoiminnon käyttöön antaaksesi ESC:lle tietyn ajan lukituksen avaussignaalin vastaanottamiseen. Jokainen ESC on erilainen, joten säädä se itse.
(4) Kiinnitä huomiota maadoitukseen Liitä ESC-signaalijohto ohjauskortin signaalilähtöporttiin ja liitä sitten signaalijohdon maadoitus ohjauskortin GND:hen.
(5) Opi käyttämään oskilloskooppia määrittämiesi signaalien tarkistamiseen.
(6) Älä kytke vääriä johtoja!
Jaa tämä julkaisu
- 0 kommenttia
- Tunnisteet: ESC
← Vanhempi julkaisu Uudempi julkaisu →