Merhaba arkadaşlar, bu yazımızda sizinle NodeMCU ile servo motor kullanımını inceleyeceğiz. Bu devrede kullanacağımız servo motor SG90 modeli.
Servo motor; yapı olarak dc veya ac motor tiplerine benzeseler de bu sistemlere ek olarak iç yapısında bir potansiyometre veya encoder ve motor milinin (şaft) konumunu ölçen bir kontrol devresi bulunur. Ayrıca servo motor 3 bağlantı ucuna sahiptir. İkisi servo motorun giriş ve çıkışlarıdır diğer ucu ise sinyal bağlantısıdır. Motor şaftının konumunu sinyal ucu belirlemektedir. Servo motor hakkında daha detalı bilgi için https://akademi.robolinkmarket.com/servo-motor/ bağlantısına tıklayarak ulaşabilirsiniz.
Biz şimdi devre kurulumuna ardından kodlamamıza geçelim.
3 çıkışımızdan sarı olan sinyal kablosudur, nodeMCU üzerinde pwm pinlerinden ben D1 e bağladım siz herahngi birine bağlayabilirsiniz. Siyah kablo GND kablosudur nodeMCU üzerinde GND pinine bağladık. Kırmızı kabloysa güç kablosudur, nodeMCU üzerinde 3.3V pinine bağladık.
Kodlarımız;
#include <Servo.h>
Servo servo;
void setup() {
servo.attach(5); //D1 pinine bağladık
servo.write(0);
delay(2000);
}
void loop() {
servo.write(0); //0° deki konumu
delay(1000); //1 sn ara ile konum değiştirecek
servo.write(90); //90° deki konumu
delay(1000);
servo.write(180); //180° deki konumu
delay(1000);
}
NOT: SG90 servo motorunun çalışma voltajı 4.8V ile 6V arasındadır. Biz NodeMCU üzerindeki 3.3V u kullanacağımızdan servo motorumuzun açısal hareketleri tam olarak doğruyu vermeyecektir. Daha doğru sonuç almak istiyorsanız devrenize 3.3v-5v voltaj regülatörü ekleyebilirsiniz.
Şimdi aynı işlemleri blynk uygulaması üzerinden deneyelim.
Blynk kodlarımız;
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <Servo.h>
Servo servo;
char auth[] = "******************"; //mailinize gelen token
char ssid[] = "************"; //internet adınız
char pass[] = "************"; //internet şifreniz
void setup() {
Blynk.begin(auth, ssid, pass);
servo.attach(5); // Servo Nodemcu üzerinde D1 pinine bağlanacaktır.
}
void loop() {
Blynk.run();
}
BLYNK_WRITE(V0) //blynk uygulaması ile haberleşmesi için pin seçimi
{
servo.write(param.asInt()); // 0-179° arasında konum değiştirmekte
}
Blynk uygulaması üzerinden yapacaklarınız yine çok kısa. Wİdget box dan sliderı seçiyorsunuz. Çıkışınızı virtual den V0 seçtikten sonra 0 ile 179° arasına ayarlıyorsunuz.
Slider üzerinden istediğiniz açıya sürükleyebilirsiniz. Servo motor da sizi takip edecektir. 🙂
Nodemcu ile servo motor kontrolünü de öğrenmiş olduk. IoT başlangıç seti serimizin önceki yazıları ve daha fazlası için Robolink Akademi‘yi ve hem bu devredeki hem de daha fazla kompanente göz atmak için Robolink Market‘i ziyaret edebilirsiniz.
Sorularınız olursa aşağıda buluşalım. 🙂
Herkese iyi çalışmalar dilerim. 🙂