Çalışmalarımızda yavaş yavaş temel elektronik malzemelerden sensörlere geçiş yapıyoruz. Artık temel malzemelerden potansiyometre, LED, Servo, Motor vs. nasıl kullanılır, kodlarını nasıl hazırlarız biliyoruz.
Bugünkü çalışmamızda ise daha önce yapmış olduğumuz servo kontrolü uygulamalarımıza bir yenisini ekleyip esneklik sensörü kullanarak servomuzu hareket ettirmeye çalışacağız.
Öncelikle esneklik sensöründen bahsetmek gerekirse, kendisini kademeli direnç olarak düşünebiliriz.Dik durumda iken direnç değeri çok düşük fakat eğildiği zaman direnç değeri artıyor ve sistemimiz bunu bir sinyal olarak algılıyor. Bu sayede bir şeyleri kontrol etmede kullanabiliyoruz.
Dipnot ekleyecek olursak esneklik sensörü tek taraflı çalışan bir sensördür. Yani dik konumdayken bir tarafa esnediği zaman sinyalimizi sağlarken tam tersi esnemelerde her hangi bir tepki oluşturmuyor.
Esneklik sensörü fiyat itibariyle biraz pahalı, eğer projeniz için fazlaca ihtiyacınız varsa kendiniz de yapabilirsiniz. Buyurun: http://www.imagesco.com/articles/flex/sensor-pg1.html
Uygulamamıza geçecek olursak bağlantıları şekildeki gibi yapmamız gerekiyor: Sensörün bacaklarının nasıl bağlanacağına lütfen dikkat edelim.
Kodumuzu inceleyecek olursak daha önce yapmış olduğumuz potansiyometre ile servo kontrolünden neredeyse hiç bir fark olmadığını göreceğiz.
Koda direkt ulaşmak için:
//Esneklik sensörü ile servo kontrolü
//M.Furkan BAHAT
#include <Servo.h> // Servo kütüphanesini ekliyoruz.
const int pot=A0; // Esneklik sensörünü bağlayacağımız analog giriş.
Servo myservo; // Bu komutla servo kontrol nesnemizi oluşturduk.
int flexdurum=0;
int pos = 0;
void setup(){
myservo.attach(9); // Servomuzu bağlayacağımız pini belirledik.
}
void loop(){
flexdurum=analogRead(pot);
pos= map(flexdurum,0,1023,0,180);//Sensörden okunan değeri 180e oranlıyoruz.
{
myservo.write(pos); // Yukarıdaki oranladığımız değeri servoya yazdırıyoruz.
}
}
Bugünkü çalışmamızda ise daha önce yapmış olduğumuz servo kontrolü uygulamalarımıza bir yenisini ekleyip esneklik sensörü kullanarak servomuzu hareket ettirmeye çalışacağız.
Öncelikle esneklik sensöründen bahsetmek gerekirse, kendisini kademeli direnç olarak düşünebiliriz.Dik durumda iken direnç değeri çok düşük fakat eğildiği zaman direnç değeri artıyor ve sistemimiz bunu bir sinyal olarak algılıyor. Bu sayede bir şeyleri kontrol etmede kullanabiliyoruz.
Dipnot ekleyecek olursak esneklik sensörü tek taraflı çalışan bir sensördür. Yani dik konumdayken bir tarafa esnediği zaman sinyalimizi sağlarken tam tersi esnemelerde her hangi bir tepki oluşturmuyor.
Esneklik sensörü fiyat itibariyle biraz pahalı, eğer projeniz için fazlaca ihtiyacınız varsa kendiniz de yapabilirsiniz. Buyurun: http://www.imagesco.com/articles/flex/sensor-pg1.html
Uygulamamıza geçecek olursak bağlantıları şekildeki gibi yapmamız gerekiyor: Sensörün bacaklarının nasıl bağlanacağına lütfen dikkat edelim.
Kodumuzu inceleyecek olursak daha önce yapmış olduğumuz potansiyometre ile servo kontrolünden neredeyse hiç bir fark olmadığını göreceğiz.
Koda direkt ulaşmak için:
//Esneklik sensörü ile servo kontrolü
//M.Furkan BAHAT
#include <Servo.h> // Servo kütüphanesini ekliyoruz.
const int pot=A0; // Esneklik sensörünü bağlayacağımız analog giriş.
Servo myservo; // Bu komutla servo kontrol nesnemizi oluşturduk.
int flexdurum=0;
int pos = 0;
void setup(){
myservo.attach(9); // Servomuzu bağlayacağımız pini belirledik.
}
void loop(){
flexdurum=analogRead(pot);
pos= map(flexdurum,0,1023,0,180);//Sensörden okunan değeri 180e oranlıyoruz.
{
myservo.write(pos); // Yukarıdaki oranladığımız değeri servoya yazdırıyoruz.
}
}
kullandığımız sensörün direnç değer aralığı önemlimi
ReplyDeleteDirenç aralığını arduino ile okuyup ona göre servoya map yapmamız gerekiyor. Bu işlemi yaptığınız müddetçe problem değil. Örneğin sensör direnç aralığı 0-2023 arasında ise onu 0-180 e sıkıştırmamız gerekiyor.
Deletemerhaba bende benzer bir proje yapıyorum.benim direnç aralığım 5k ohm ve 5 ohm arası cıktı sizce bu normal mi?bir de direnç aralığını arduino ile okumaktan bahsetmişsiniz. bundan kastınız ne?
ReplyDeletenet bir şekilde fotoraf veya vidyo atabilir misiniz servo motor kablolarını baglanışını
ReplyDelete