Arduino Devreleri #44 Arduino İle Servo Motor LDR Uygulaması
Merhabalar, bu yazımızda Arduino İle Servo Motor LDR Uygulaması hakkında bilgi vereceğim. LDR ve Servo Motor kullanarak ışığa duyarlı açılıp kapanan perde veya akşam kapanan kepenk projesi nasıl yapılır? bu yazımızda bilgilendirme yapacağım.
Arduino programı ayrıntılı kod kısmı, devre bağlantı şeması, devre kurulumu detaylı anlatımı ve devre çalışma videosu şu şekildedir.
Bir önceki makalemizde Servo Motor nedir? Servo Motor Nedir? Nasıl çalışır? Servo motor iç yapısı nasıldır? Servo motor ile ne kadar yük kaldırılır? Servo motor nerelerde kullanılır? sorularını görsellerle anlatmıştık. Ayrıca Servo motoru 90 derece döndürme, Servo motoru 0 – 90 – 180 derece döndürme, Servo motoru 180 derece sağa sola döndürme, Servo motoru potansiyometre ile 180 derece döndürme konularını anlattık. Bu konuyu okumadan önce önceki anlatıma aşağıdaki linkten göz atabilirsiniz.
https://egitim.ahmetcandemir.com.tr/arduino-devreleri-43-arduino-ile-servo-motor-uygulamalari/
NOT: Kod bölümü içerisinde yer alan ve // işareti ile başlayan satırlar açıklama satırlarıdır. O satırdaki kod bloğunun ne anlama geldiği ve nasıl çalıştığı ile ilgili bilgi verir. Arduino // işaretli alanı çalıştırmaz. Kod satırından isterseniz // işaret ile başlayan açıklama satırlarını silebilirsiniz.
LDR İLE BELİRLİ IŞIK SEVİYESİ ALTINDA SERVO MOTORU ÇALIŞTIRMA
LDR ve SERVO MOTOR İLE AKŞAM KAPANAN PERDE DEVRESİ
KOD BÖLÜMÜ:
//LDR ile Belirli Işık Seviyesi Altında Servo Motoru Çalıştırma
// Akşam kapanan kepenk yada perde projesi
#include <Servo.h> // Servo motor kütüphanesini ekledik
Servo motor; //Servo için motor ismini verdik
int led = 8; // Led diyotun bağlandığı pini tanımladık
void setup()
{
pinMode(A0,INPUT); // LDR'nin bağlı olduğu pini giriş olarak ayarladık.
pinMode(led,OUTPUT); // Led'in bağlı olduğu pini çıkış olarak ayarladık.
motor.attach(9); // Servo motor çıkış pinini ayarladık
Serial.begin(9600); // Seri haberleşme hızını ayarlıyoruz
}
void loop()
{
int isik = analogRead(A0); // A0 dan aldığımız değeri isik isminde değişkene tanımladık.
Serial.println(isik); // Değişken değerinin Seri Port ekranında gösterilmesini sağladık
delay(50); // 50 milisaniye aralıklarla veriyi göstermesini istedik.
if (isik < 700) // LDR değeri 700 seviyesinin altında ise;
{
digitalWrite(led,HIGH); //LED'e güç göndererek ışık vermesini sağladık.
motor.write(180); //Servo motora 180 derece dönüş komutu verdik
delay(200); //200 milisaniye süre ile veri gönderimi sağladık.
}
else // LDR değeri 700 seviyesinin üstünde ise;
{
digitalWrite(led,LOW); //LED'in gücünü keserek ışığın sönmesini sağladık.
motor.write(0); //Servo motora 0 derece geri dönüş komutu verdik
delay(200); //200 milisaniye süre ile veri gönderimi sağladık.
}
}
DEVRENİN ÇALIŞMASI:
LDR den aldığımız ışık şiddeti değeri 700 altına indiğinde servo motor çalışacak ve 180 derece dönecektir. Işık şiddeti tekrar 700 üzerine çıktığında servo motor 0 derece konumuna dönecektir.
DEVRE BAĞLANTI ŞEMASI:
DEVRE KURULUMU:
Malzemeler:
Arduino Uno
1 adet SG90 Servo Motor
1 adet LDR
1 adet 10 KΩ direnç
1 adet led diyot
1 adet 220 Ω direnç
10 adet iki ucu erkek jumper kablo
Breadboard üzerine LDR yerleştirilir. LDR nin bir bacağına 10 Kohm luk direnç yerleştirilir. LDR nin diğer bacağı breadboard alt sırasındaki + şeridine bağlanır. Direnç ile LDR nin birleştiği noktadan kablo bağlantısı alınarak Arduino nun A0 pinine bağlanır. Board üzerine led diyot yerleştirilir. Led diyotun artı bacağına 220 Ohm’luk direnç bağlanır. Direncin diğer ucu Arduino da 8 numaralı pine bağlanır. Led diyotun eksi bacağı ile 10KOhm’luk direncin boştaki bacağı, board üzerindeki – şeridine bağlanır.
Servo motorun kırmızı uç çıkışına (+), jumper kablo bağlanarak kablonun diğer ucu breadboardın artı şeridine bağlanır. Servo motorun kahverengi uç çıkışına (-), jumper kablo bağlanarak kablonun diğer ucu breadboardın eksi şeridine bağlanır. Servo motorun turuncu uç çıkışına (data) jumper kablo bağlanarak kablonun diğer ucu Arduino’nun 9 numaralı PWM dijital girişine bağlanır. Breadboard artı şeridine kablo bağlanarak Arduino’nun +5 Volt pinine, breadboard eksi şeridine kablo bağlanarak Arduino’nun GND pinine bağlanarak devre tamamlanır.
IŞIK ŞİDDETİNE GÖRE HAREKET EDEN SERVO MOTOR
LDR ve SERVO MOTOR İLE IŞIK ŞİDDETİNE GÖRE KAPANAN PERDE DEVRESİ
KOD BÖLÜMÜ:
// Işık Şiddetine Göre Hareket Eden Servo Motor
// Güneş Işığı Şiddetine Göre Kapanan Perde
#include <Servo.h>
Servo motor; // Servo için motor ismini verdik.
int led = 6; // Led diyotun pin numarasını belirledik.
int pozisyon = 0; // Servo motorun başlangıç pozisyonunu belirledik.
void setup()
{
pinMode(A0,INPUT); // LDR'nin bağlı olduğu pini giriş olarak ayarladık.
pinMode(led,OUTPUT); // Led'in bağlı olduğu pini çıkış olarak ayarladık.
motor.attach(9); // Servo motor çıkış pinini ayarladık
Serial.begin(9600); //Seri haberleşme hızını ayarlıyoruz
}
void loop()
{
int ldr =analogRead(A0); // A0 dan aldığımız değeri ldr isminde değişkene tanımladık.
Serial.println(ldr); // LDR değerinin Serial Portta gösterilmesini sağladık
ldr = map(ldr, 0, 1023, 0, 180); // map komutu ile ldr aralığını dönme açısı aralığına eşitledik.
motor.write(ldr); // servo motorun ışık şiddetine göre 0-180 arasında dönmesini sağladık.
analogWrite(led,ldr); //LED'e ışık şiddetine göre güç göndererek ışık vermesini sağladık.
delay(100); //Veri aralığı için kısa bir süre verdik.
}
DEVRENİN ÇALIŞMASI:
LDR üzerini kapattığımızda servo motor yavaş yavaş dönmeye bağlayacak ve ilk başta yanan led diyot yavaş yavaş sönmeye başlayacaktır. LDR tam karanlık olduğunda servo motor 180 derece dönmüş olacak ve led diyot sönecektir. LDR üzerine yavaş yavaş ışık düştüğünde ise led diyot yanmaya başlayacak, servo motor da ilk konumuna doğru dönecektir.
DEVRE BAĞLANTI ŞEMASI:
DEVRE KURULUMU:
Malzemeler:
Arduino Uno
1 adet SG90 Servo Motor
1 adet LDR
1 adet 10 KΩ direnç
1 adet led diyot
1 adet 220 Ω direnç
10 adet iki ucu erkek jumper kablo
Breadboard üzerine LDR yerleştirilir. LDR nin bir bacağına 10 Kohm luk direnç yerleştirilir. LDR nin diğer bacağı breadboard alt sırasındaki + şeridine bağlanır. Direnç ile LDR nin birleştiği noktadan kablo bağlantısı alınarak Arduino nun A0 pinine bağlanır. Board üzerine led diyot yerleştirilir. Led diyotun artı bacağına 220 Ohm’luk direnç bağlanır. Direncin diğer ucu Arduino da 6 numaralı pine bağlanır. Led diyotun eksi bacağı ile 10KOhm’luk direncin boştaki bacağı, board üzerindeki – şeridine bağlanır.
Servo motorun kırmızı uç çıkışına (+), jumper kablo bağlanarak kablonun diğer ucu breadboardın artı şeridine bağlanır. Servo motorun kahverengi uç çıkışına (-), jumper kablo bağlanarak kablonun diğer ucu breadboardın eksi şeridine bağlanır. Servo motorun turuncu uç çıkışına (data) jumper kablo bağlanarak kablonun diğer ucu Arduino’nun 9 numaralı PWM dijital girişine bağlanır. Breadboard artı şeridine kablo bağlanarak Arduino’nun +5 Volt pinine, breadboard eksi şeridine kablo bağlanarak Arduino’nun GND pinine bağlanarak devre tamamlanır.
Arduino İle Servo Motor LDR Uygulaması
Devre hakkında yorumlarınızı aşağıdaki yorum kısmına yazabilirsiniz. Youtube kanalımızda da mBlock ve Arduino ile ilgili ders videoları bulabileceksiniz. Youtube kanalıma abone olmayı da unutmayınız.
https://www.youtube.com/@candemirahmet
Yorum Yap