Bilgiler > Arduino Kamera Kontrolü Devresi
Arduino Kamera Kontrolü Devresi
Devrenin Elemanları:Joystick(kumanda Kolu): 5 bacaklı devre elemanıdır. Bu bacaklar + ve - uçları, yatay ve düşey uçları ve kumanda butonu ucudur. Bu elemman kumanda kolunun pozisyonuna göre 2 farklı gerilim değeri üretir.Servo Motor: 3 adet bacağı bulunur. Bunlar -, + ve sinyal uçlarıdır. Sinyal ucuna uygulanan sinyalin şekline göre 0 'la 180 derece arasında yön değiştirir. Devrenin çalışması:kumanda kolunun konumu değiştiğinde, kumandadan arduinoya bağlı uçlardaki gerilim değerleri değişir. Bu değerleri okuyan arduino bu değerlere göre kameraya sinyal göndererek, konumun değişmesini sağlar. Normal bir servo motor 180 derece hareket edebilmektedir. Kameranın altında iki servo motor bir birine bağlanarak, hareket kabiliyeti 360 dereceye çıkarılmıştır. _____Program_______________________________________________________________#include <Servo.h>int sensorPinh = A0; // to Vry pin of Left joystickint sensorPinv = A1; // to Vrx pin of right joystickint datah = 0;int datav = 0;int sensorValueh = 0; // variable to store the value coming from the sensorint sensorValuev = 0;Servo myservoh1; //horizantal 1 servoServo myservoh2; //horizantal 2 servoServo myservov; //vertical servoint temph = 0;int tempv = 0;void setup() { Serial.begin(9600); myservoh1.attach(8); myservoh2.attach(9); myservov.attach(10);}void loop() { // read the value from the sensor: sensorValueh = analogRead(sensorPinh); Serial.println(sensorValueh); sensorValuev = analogRead(sensorPinv); datah = sensorValueh / 2.84f; datav = (sensorValuev / 5.67f);//release servos when joysticks are free if (datah > 166 && datah < 172) { temph++; if (temph > 10) { myservoh1.detach(); myservoh2.detach(); } } else { temph = 0; myservoh1.attach(8); myservoh2.attach(9); } if (datav > 87 && datav < 92) { tempv++; if (tempv > 10) { myservov.detach(); } } else { tempv = 0; myservov.attach(10); }//divide one joystick to two servoif(datah>180){ myservoh1.write(180); myservoh2.write(datah-180); } else { myservoh2.write(datah-180); myservoh1.write(datah); } myservov.write(datav); Serial.print("yatay:"); Serial.print(datah); Serial.print("dusey:"); Serial.print(datav); Serial.println(); delay(400);}________________________________________________________________
***