Yazdır
Kategori: Arduino
Gösterim: 1250

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