Szervomotoros vezérlés PWM és Arduino segítségével

A blogon már szerepeltünk Arduino (https://www.ikkaro.com/kit-inicio-arduino-super-starter-elegoo/), és valójában több projektben is megjelennek, beleértve ezt is (https://www.ikkaro.com/node/529)

Most menjünk egy kicsit tovább, és menjünk modulálja a jeleket impulzusszélesség szerint (PWM), ez felhasználható például az itt bemutatott szervomotorok kezelésére (https://www.ikkaro.com/introduccion-al-aeromodelismo-electrico/) vagy rgb ledek többek között. Azok számára, akik nem tudják, mi a PWM, ez egy olyan moduláció, amelyet egy jelre végeznek, és amely "információk továbbítására szolgál kommunikációs csatornán vagy a terhelésre küldött energia mennyiségének szabályozására" (Wikipedia)

A szervomotorokat 3 vezetékkel vezérlik: az egyik a pozitív feszültségre, a másik a földre és egy a vezérlőjelre, amelyet PWM-ben modulálnak.

Az Arduino a maga részéről 6 digitális kimenettel rendelkezik, amelyek PWM kimenetként működhetnek (ezek a csapok: 11, 10, 9, 6, 5, 4), valamint egy szervóval ellátott könyvtár is. Tehát ezen kimenetek egyikét fogjuk használni az első tesztek elvégzésére egy szervomotor vezérlésével.

Az Arduino szervo könyvtár példakódja szolgálhat minket, a feszültséget 5 V-ra, földet gnd-re és a szervomotor vezérlőjelét (amely PWM-ben modulálódik) az egyik arduino-PIN-mel rendelkező csaphoz csatlakoztatjuk, például ebben a kódban a 9. digitális tűhöz.

// Söprés
// BARRAGAN

#include
 
Servo myservo; // szervo objektum létrehozása a szervo vezérléséhez
                // maximum nyolc szervo objektum hozható létre
 
int pos = 0; // változó a szervo pozíció tárolásához
 
void setup ()
{
  myservo.attach (9); // a 9. tűn lévő szervót rögzíti a szervo objektumhoz
}
 
 
void loop ()
{
  mert (pos = 0; pos <180; pos + = 1) // 0 fokról 180 fokra megy
  {// 1 fokos lépésekben
    myservo.write (pos); // utasítsa a szervót, hogy menjen a "pos" változó pozíciójába
    késés (15); // 15 ms-ot vár, amíg a szervo eléri a pozíciót
  }
  mert (pos = 180; pos> = 1; pos- = 1) // 180 fokról 0 fokra megy
  {                               
    myservo.write (pos); // utasítsa a szervót, hogy menjen a "pos" változó pozíciójába
    késés (15); // 15 ms-ot vár, amíg a szervo eléri a pozíciót
  }
}

Ez a kód lehetővé tenné számunkra a szervómotor 0 ° -tól 180 ° -ig, majd vissza 0 ° -ra.

Hamarosan még több jön.

[kiemelve] Ezt a cikket eredetileg az ErSame írta az Ikkaro számára [/ kiemelve]

Szólj hozzá