Rydym eisoes wedi ymddangos ar y blog Arduino (https://www.ikkaro.com/kit-inicio-arduino-super-starter-elegoo/) ac mewn gwirionedd yn ymddangos mewn sawl prosiect gan gynnwys yr un hwn (https://www.ikkaro.com/node/529)
Nawr, gadewch i ni fynd ychydig ymhellach a gadewch i ni modiwleiddio signalau yn ôl lled pwls (PWM), gellir defnyddio hyn er enghraifft i drin servomotors fel y rhai a gyflwynir yma (https://www.ikkaro.com/introduccion-al-aeromodelismo-electrico/) neu rgb leds ymhlith eraill. I'r rhai nad ydyn nhw'n gwybod beth yw PWM, mae'n fodiwleiddio sy'n cael ei wneud i signal ac sy'n gwasanaethu i "drosglwyddo gwybodaeth trwy sianel gyfathrebu neu i reoli faint o egni sy'n cael ei anfon i lwyth" (Wicipedia)
Mae'r servomotors yn cael eu rheoli gyda 3 gwifren: un ar gyfer y foltedd positif, un arall ar gyfer y ddaear ac un arall ar gyfer y signal rheoli, sy'n cael ei fodiwleiddio yn PWM.
Ar y llaw arall mae gan Arduino 6 allbwn digidol a all weithredu fel allbynnau PWM (nhw yw'r pinnau: 11, 10, 9, 6, 5, 4) a hefyd llyfrgell wedi'i pharatoi ar gyfer trin servos. Felly, rydyn ni'n mynd i ddefnyddio un o'r allbynnau hynny i wneud ein profion cyntaf yn rheoli servomotor.
Gall cod enghreifftiol llyfrgell servo Arduino ein gwasanaethu, rydym yn cysylltu'r foltedd â 5v, daear i gnd a signal rheoli'r servomotor (sef yr un sy'n cael ei fodiwleiddio yn PWM) ag un o'r pinnau arduino sydd â PWM, er enghraifft yn y cod hwn i pin digidol 9.
// Ysgubo
// gan BARRAGAN
#cynnwys
Servo myservo; // creu gwrthrych servo i reoli servo
// gellir creu uchafswm o wyth gwrthrych servo
int pos = 0; // newidiol i storio'r safle servo
setup gwag ()
{
myservo.attach (9); // yn atodi'r servo ar pin 9 i'r gwrthrych servo
}
dolen gwag ()
{
ar gyfer (pos = 0; pos <180; pos + = 1) // yn mynd o 0 gradd i 180 gradd
{// mewn camau o 1 gradd
myservo.write (pos); // dweud wrth servo am fynd i'w safle mewn 'pos' amrywiol
oedi (15); // yn aros 15ms i'r servo gyrraedd y safle
}
ar gyfer (pos = 180; pos> = 1; pos- = 1) // yn mynd o 180 gradd i 0 gradd
{
myservo.write (pos); // dweud wrth servo am fynd i'w safle mewn 'pos' amrywiol
oedi (15); // yn aros 15ms i'r servo gyrraedd y safle
}
}
Byddai'r cod hwn yn caniatáu inni gylchdroi'r servomotor o 0º i 180º ac yna yn ôl i 0º.
Mwy yn dod yn fuan.
[amlygwyd] Ysgrifennwyd yr erthygl hon yn wreiddiol gan ErSame ar gyfer Ikkaro [/ amlygwyd]