Merhaba arkadaşlar...
Bugün daha önce yaptığım çalışmayı sizlerle paylaşmak istiyorum.
Servo için 3 ayrı program vermeye çalışacağım. Servo motorlar günümüzde 3d Printer, robot kol, kaldırma tutma yani bir nevi iskeletteki eklem görevi görmektedir. İleride de bende uzaktan kumandalı arabamda kullanmaya çalışacağım.
Gerekli Malzemeler
- Arduino Geliştirme kartı
- 9V pil ve Pil başlığı
- 10 K pot
- Jumper kablolar
- 7805
Bağlantı Şeması
Kullanılacak Kodlar
//Program1 (pot ile servo konum ayarı)
#include <Servo.h> //servo kütüphanesi koda dahil ediliyor
const int ServoPals=9; //servoyu kontrol edecek pals çıkış pini
const int Pot=0; //potun bağlanacağı adc pini
Servo servoKontrol; //servo sınıfıdan bir nesne yaratılıyor
int deger=0; //adc nin okuduğu değeri tutacak değişken
void setup(){
servoKontrol.attach(ServoPals); //servoKontrol nesnesine hangi pinden pals çıkışı alnıcağı belirtiliyor
}
void loop(){
deger=analogRead(Pot); //pottan değer okuuyor
deger=map(deger,0,1023,0,179); //0-1023 arasında okunan değeri 0-179 arasında sınırla
servoKontrol.write(deger); //deger kadar açıda motoru hareket ettir.
delay(15);
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Program2 (tek yön 180 derece yavaşlatılmış otomatik tarama)
#include <Servo.h> //servo kütüphanesi koda dahil ediliyor
const int ServoPals=9; //servoyu kontrol edecek pals çıkış pini
Servo servoKontrol; //servo sınıfıdan bir nesne yaratılıyor
void setup(){
servoKontrol.attach(ServoPals); //servoKontrol nesnesine hangi pinden pals çıkışı alnıcağı belirtiliyor
}
void loop(){
for (int i=0; i<180;i++){
servoKontrol.write(i); //i kadar açıda motoru hareket ettir.
delay(20);
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Program3 (tek yön 180 derece tarama, pot ile hız ayarı)
#include <Servo.h>//servo kütüphanesi koda dahil ediliyor
Servo servoKontrol; //servo sınıfıdan bir nesne yaratılıyor
int deger=0; //adc nin okuduğu değeri tutacak değişken
void setup(){
servoKontrol.attach(9); //servoKontrol nesnesine hangi pinden pals çıkışı alnıcağı belirtiliyor
}
void loop(){
for (int i=0 ; i<180 ; i++){
deger=analogRead(0); //pottan değer okuuyor
deger=map(deger,0,1023,5,100); //0-1023 arasında okunan değeri 5-100 arasında sınırla,
servoKontrol.write(i); //deger kadar açıda motoru hareket ettir.
delay(deger);
}
}
-------------------------------------------------------------------------------------------------------------------
Umarım ileride daha da iyi programlar yapacağız
Herkese iyi çalışmalar dilerim
Hiç yorum yok:
Yorum Gönder