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);
}
}