Examples içinde yer alan sweep isimli programda değişiklikler yapılmıştır. Normalde sürekli ileri geri 180 derece dönen motor programına buton eklenerek kontrol sağlanmıştır. Pull-up bağlantı yapılmıştır. Yani butona basıldığında arduinonun 5 nolu pinine 0 (sıfır) gönderilmektedir. Daha hızlı dönüşler için pos=pos+1 komutunda olduğu gibi derece 1 yerine 5 arttırılmalı ya da delay komutu ile sağlanan gecikme düşürülmelidir. (setup fonksiyonunda yer alan pinMode(buton1,INPUT); komutu yerine pinMode(buton2,INPUT_PULLUP); yazıldığında 10K değeirndeki dirence gerek kalmaz. Butonun bir ucu GND’ ye diğer ucu arduinonun 2 veya 3 nolu pinine bağlanır)

 

 

#include <Servo.h>

Servo myservo;

int pos = 0;

int buton1=2; // buton1, 2 nolu pine bağlanacak

int buton2=3; // buton2, 3 nolu pine bağlanacak

void setup()

{

myservo.attach(5);  // servonun data ucu 5 nolu pine takılacak.İstediğiniz pine takabilirsiniz.

pinMode(buton1,INPUT);

pinMode(buton2,INPUT);

}

void loop()

{

if (digitalRead(buton1)==0&&(pos<180))

// buton1 e basılmışsa ve motor en sağa ulaşmamışsa

{                                       // buton basılı olduğu sürece sağa döner

pos=pos+1;

myservo.write(pos);

delay(5);                         // bu değer düşürülerek daha hızlı döndürülebilir

}

if (digitalRead(buton2)==0&&(pos>0))

// buton2 ye basılmışsa ve motor en sola ulaşmamışsa

{                                     // buton basılı olduğu sürece sola döner

pos=pos-1;

myservo.write(pos);

delay(5);

}

}

 

2 butonlu servo 600 x 582