İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Herkese merhaba! Bu benim kendin yap kamera kaydırıcı projem, benimkiyle zor zamanlar geçirdim, ancak ayrıntılara daha fazla dikkat ederseniz işe yarayacağından eminim!
teoride, bu tamamen işe yaramalı
Bunu yapmayı seçerseniz, umarım beğenirsiniz!
Adım 1: Malzemelerinizi Toplayın
Elektronik Malzemeler
- Arduino
- iki 360 servo
- ekmek tahtası
- dirençler
- düğmeler (tercihen 3)
Yapı malzemeleri
- iki adet köpük tahta
- ahşap dübel parçaları (metal olabilir)
- ahşap oval şekilli parçalar (resim giriş resmine bakın).
Adım 2: Kurulum
bu fotoğraf devre şemasıdır
bunu takip edin ve projeniz işe yarayacak!
Adım 3: Breadboard'un Montajı
- her şeyden önce pozitif ve topraklamayı breadboard'a bağlayın.
- ikinci olarak iki servoyu bağlayın… ve toprağa ve pozitife giden iki kabloya ve seçeceğiniz pime bir tane daha bağlayın. (kodun seçtiğim pinlere sahip olacağını unutmayın).
- sonra butonlarınızı monte edin… seçtiğiniz pinlere bağlanmayı unutmayın ama benim seçtiğim pinleri kullanmazsanız kod çalışmayacaktır. düğmeleri de toprağa bağlayın.
- ve 220 direnç kullanın.
- son olarak, bir LCD monitör kullanmak istiyorsanız, analog girişe 2 pin ve pozitif terminale bir kablo bağlamanız gerekecektir.
Adım 4: Arduino Kodu
#include #include #include
LiquidCrystal_I2C lcd (0x27, 16, 2); // 16 karakter ve 2 satırlık bir ekran için LCD adresini 0x27 olarak ayarlayın
Servo servoSol; // Sol servo Servo servoRight'ı tanımlayın; // Sağ servoyu tanımla
const int startbut = 8; // startbut için pin (başlangıç düğmesi) const int forwardbut = 12; //ileri butonu için pin (ileri butonu) const int tersbut = 13; //tersbutton için pin (tersbutton) int tim = 500; //gecikme süresi değeri int flag = 0; int sayı = 0;
char dizi1=" hoşgeldiniz "; //LCD'ye yazdırılacak dize ("hoş geldiniz") char array2="sol itin=SOL, sağ=SAĞ !"; //LCD'ye yazdırılacak dize ("sola bas=SOL, sağ=SAĞ")
geçersiz kurulum () { servoLeft.attach(10); // Sol servoyu dijital pin 10'a ayarla servoRight.attach(9); // Sağ servoyu dijital pin 9'a ayarlayın servoLeft.write(90); // servoları 90 dereceye ayarla servoRight.write(90); gecikme(100);
//pin'i pinMode(startbut, INPUT) girişlerine çevirir; // startbut'u (startbutton) bir giriş pinMode (reversebut, INPUT) olarak başlat; //ters butonu (reversebutton) bir giriş pinMode(forwardbut, INPUT) olarak başlat; // forwardbut'u (ileri düğmesi) girdi olarak başlat
}
void loop() { // Döngü hareket testleri //LCD monitör kodu if (flag == 1 && count == 0) { count = 1; lcd.init(); // lcd lcd.backlight'ı başlat(); //arka ışığı aç
lcd.setCursor(15, 0); // imleci sütun 15'e ayarlayın, satır 0 için (int positionCounter1 = 0; positionCounter1 < 26; positionCounter1++) { lcd.scrollDisplayLeft(); // Ekranın içeriğini bir boşluk sola kaydırır. lcd.print(dizi1[konumSayacı1]); //LCD'ye bir mesaj yazdırın. gecikme(zaman); //250 mikrosaniye bekle } lcd.clear(); //LCD ekranı temizler ve imleci sol üst köşeye konumlandırır. lcd.setCursor(15, 1); // imleci sütun 15, satır 1 için (int positionCounter = 0; positionCounter < 26; positionCounter++) { lcd.scrollDisplayLeft(); // Ekranın içeriğini bir boşluk sola kaydırır. lcd.print(dizi2[konumSayacı]); //LCD'ye bir mesaj yazdırın. gecikme(zaman); //250 mikrosaniye bekle } lcd.clear(); //LCD ekranı temizler ve imleci sol üst köşeye konumlandırır. } //////////////////////////////////////////// ///////////////////////////////////////////// ////////////////////////////////
/Butonlara basılıp basılmadığını kontrol edin if (digitalRead(startbut) == 1) { flag = 1; // butonun başlaması için değişkeni işaretle }
if (flag == 1){ if(digitalRead(reversebut) == HIGH) //reversebut basıldığında bir servo çalıştırılır { reverse(); //reversebutton için ters değişken } else if(digitalRead(forwardbut) == HIGH) //forwardbut basıldığında bir servo açılacak { forward(); //ileri düğmesi için ileri değişken } else { stop(); //Düğmelere basılmadığında servoların hareketini durdurmak için değişkeni durdur } }
}
// İleri, geri ve dur için hareket rutinleri void forward() { //ileri komutu servoLeft.write(0); //servoların servoRight.write(180); } void stop() { //durdur komutu servoLeft.write(90); //her iki servoyu da aynı noktada durdurur, aksi takdirde servoRight.write(90); } void reverse() { //reverse komutu servoLeft.write(180); //servolar ters yönde aktifleşir servoRight.write(0); }
İşte başarının kodu! arduino'nuzu kurduktan sonra her şey çalışmalı! ve keyfini çıkarın!
işe yaramazsa, bu talimata tekrar baktığınızdan ve her şeyi kontrol ettiğinizden emin olun!