Kontrolkirina Servomotors bi PWM û Arduino

Me berê jî tev li tevnvîsê kir Arduino (https://www.ikkaro.com/Tutoriales-basicos-arduino) û bi rastî ev di nav de ev projeyek (https://www.ikkaro.com/node/529)

Let'scar ka em hinekî din biçin û werin bi navgîniya pêlê (PWM) sînyalên module bikin, ev dikare wekî mînak were bikar anîn ku karûbarên servo mîna yên li vir hatine pêşkêş kirin (https://www.ikkaro.com/node/741) an rgb di nav yên din de rêber dike. Ji bo kesên ku nizanin PWM çi ye, ew modulasyonek e ku bi îşaretekê tête kirin û ku "agahdariya bi riya kanalek danûstendinê veguherîne an jî kontrola enerjiya ku ji barkirinê re tê şandin" dikeWîkîpediya de)

Servekêşîner bi 3 têlan têne kontrol kirin: yek ji bo voltaja erênî, yek jî ji bo erdê û yek jî ji bo sînyala kontrolê, ku di PWM de tête modul kirin.

Li alîyê din Arduino 6 encamên dîjîtal hene ku dikarin wekî derketinên PWM tevbigerin (ew pînek in: 11, 10, 9, 6, 5, 4) û di heman demê de pirtûkxaneyek ji bo birêvebirina servîsan jî amade ye. Ji ber vê yekê em ê yek ji wan encaman bikar bînin ku ceribandinên xweyên pêşîn ên kontrolkirina motora servo bikin.

Kodê nimûneya pirtûkxaneya servo ya Arduino dikare ji me re xizmetê bike, em voltaja bi 5v, erd bi gnd û sînyala kontrolê ya servomotor (ku yeka ku di PWM de modulkirî ye) bi yek ji pîneyên arduîno ku PWM heye ve girêdin, mînakî di vê kodê de pîne 9 ya dîjîtal.

// Paqijkirin
// ji hêla BARRAGAN

Abone navnîşa nameya me

#linavxistin
 
Servo myservo; // çêkirina servo objeyê ku servoyê kontrol bike
                // herî zêde heşt tiştên servo dikarin werin afirandin
 
int pos = 0; // guhêrbar da ku pozîsyona servo tomar bike
 
sazkirina betal ()
{
  myservo.attach (9); // servo li pin 9 bi servo object ve girêdide
}
 
 
betal loop ()
{
  ji bo (pos = 0; pos <180; pos + = 1) // ji 0 pileyî diçe 180 pileyî
  {// di gavên 1 dereceyê de
    myservo.write (pos); // ji servo re bêje ku biçe di pozîsyona 'pos' de
    taloqkirin (15); // li benda 15msê ye ku servo bigihîje pozisyonê
  }
  ji bo (pos = 180; pos> = 1; pos- = 1) // ji 180 pileyî diçe 0 pileyî
  {                               
    myservo.write (pos); // ji servo re bêje ku biçe di pozîsyona 'pos' de
    taloqkirin (15); // li benda 15msê ye ku servo bigihîje pozisyonê
  }
}

Ev kod dê bihêle ku em ê zivirînin servomotor ji 0º heya 180º û paşê jî vedigere 0 to.

Zû zû bêtir.

[nîşankirin] Ev gotar di destpêkê de ji hêla ErSame ve ji bo Ikkaro hatiye nivîsandin [/ diyar kir]

Leave a comment