در این قسمت از سری آموزش آردوینو در الکسازشاپ، کار و نحوه راه اندازی ماژول SG90 را تجربه خواهیم کرد. این ماژول از سری ماژولهای سروو موتور خواهد بود و اصلی ترین کاربرد آنها مدیریت قدرت و بازه حرکتی موتور است. سروو موتور کاربرد بسیار زیادی در ساخت بازوهای کنترلی دارد که به عنوان مفصل در این نوع ربات ها عمل میکنند.
#include <Servo.h> int pos; int distanceCM; Servo servo_5; void setup() { pinMode(8, OUTPUT); pinMode(7, OUTPUT); } long readUltrasonicDistance(int triggerPin, int echoPin) { pinMode(triggerPin, OUTPUT); // Clear the trigger digitalWrite(triggerPin, LOW); delayMicroseconds(2); digitalWrite(triggerPin, HIGH); delayMicroseconds(10); digitalWrite(triggerPin, LOW); pinMode(echoPin, INPUT); return pulseIn(echoPin, HIGH); } void loop() { distanceCM = 0.01723 * readUltrasonicDistance(3, 4); if (distanceCM > 10) { servo_5.attach(5); digitalWrite(8,5); digitalWrite(7,0); for (pos=0 ; pos <= 180; pos += 1) { servo_5.write(pos); delay(15); distanceCM = 0.01723 * readUltrasonicDistance(3, 4); if(distanceCM < 10){ servo_5.detach(); digitalWrite(8,0); digitalWrite(7,5); } else{ servo_5.attach(5); digitalWrite(8,5); digitalWrite(7,0); } } for (pos=180 ; pos >= 0; pos -= 1) { servo_5.write(pos); delay(15); distanceCM = 0.01723 * readUltrasonicDistance(3, 4); if(distanceCM < 10){ servo_5.detach(); digitalWrite(8,0); digitalWrite(7,5); } else{ servo_5.attach(5); digitalWrite(8,5); digitalWrite(7,0); } } } else { servo_5.attach(5); digitalWrite(8,0); digitalWrite(7,5); } }
جلسهی بعدی آموزش
جلسهی بعدی کار با ماژول L298 یا ماژول موتور درایور را با هم تجربه خواهیم کرد. اگر چند جلسهی قبلی را دنبال کرده باشید، موضوع و عملکرد رباتی که در این چند جلسه در حال ساخته شدن است که میتوانید پیدا کنید.