Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
hamıya salam! bu bir DIY kamera kaydırıcısı üçün layihəmdir, mənimlə çətin bir vaxt keçirdim, amma əminəm ki, detala daha çox diqqət yetirsəniz işləyəcək!
nəzəri olaraq, bu tamamilə işləməlidir
bunu etməyi seçsəniz, ümid edirəm ki, zövq alacaqsınız!
Addım 1: Material toplayın
Elektron materiallar
- Arduino
- iki 360 servo
- çörək taxtası
- rezistorlar
- düymələr (tercihen 3)
Tikinti materiallari
- iki ədəd köpük lövhəsi
- taxta dübel parçaları (metal ola bilər)
- taxta oval formalı parçalar (şəkil giriş şəklinə baxın).
Addım 2: Quraşdırın
bu foto dövrə diaqramıdır
Bunu izləyin və layihəniz işləyəcək!
Addım 3: Çörək taxtasının yığılması
- hər şeydən əvvəl çörək taxtasına pozitiv və zəmini bağlayın.
- İkincisi, iki servosu birləşdirin … və yerə və müsbətə gedən iki tel, digərini isə seçəcəyiniz pinlə bağlayın. (kodun seçdiyim sancaqlar olacağını unutmayın)..
- sonra düymələrinizi yığın … seçdiyiniz pinlərə qoşulmağı unutmayın, ancaq seçdiyim sancaqlar istifadə etməsəniz kod işləməyəcək. düymələri də yerə bağlayın.
- və 220 rezistor istifadə edin.
- Nəhayət, bir LCD monitor istifadə etmək istəyirsinizsə, analog girişə 2 pin və müsbət terminala bir tel bağlamalı olacaqsınız.
Addım 4: Arduino Kodu
#daxil edin #daxil edin #daxil edin
LiquidCrystal_I2C lcd (0x27, 16, 2); // 16 simvol və 2 sətirli ekran üçün LCD ünvanını 0x27 olaraq təyin edin
Servo servo sol; // Sol servo Servo servoRight təyin edin; // Sağ servo təyin edin
const int startbut = 8; // startbut üçün pin (startbutton) const int forwardbut = 12; // irəli atma üçün pin (irəli düymə) const int tərsinə = 13; // geri çəkmə üçün pin (geri düymə) int tim = 500; // gecikmə müddətinin dəyəri int flag = 0; int sayı = 0;
char array1 = "xoş gəldin"; // LCD -də çap ediləcək sim ("xoş gəldiniz") char array2 = "sola = SOL, sağ = SAĞ!"; // LCD -də çap ediləcək sətir ("sola = SOL, sağa = SAĞ")
boş quraşdırma () {servoLeft.attach (10); // Sol servoyu rəqəmsal pin 10 -a təyin edin servoRight.attach (9); // Sağ servonu rəqəmsal pin 9 -a təyin edin servoLeft.write (90); // servoları 90 dərəcəyə təyin edin servoRight.write (90); gecikmə (100);
// sancağı pinMode girişlərinə çevirir (başlanğıc, GİRİŞ); // başlanğıc düyməsini (başlanğıc düyməsini) giriş pinMode (tərsinə, GİRİŞ) kimi işə salın; // geri düyməni (geri düymə) giriş pinMode (irəli, GİRİŞ) kimi başladın; // irəli düyməsini (irəli düyməsini) giriş olaraq işə salın
}
void loop () {// Hərəkət testlərindən keçmək // LCD monitor üçün kod əgər (flag == 1 && count == 0) {count = 1; lcd.init (); // lcd lcd.backlight () başlatmaq; // arxa işığı açın
lcd.setCursor (15, 0); // kursoru 15 sütunun 0 sətrinə qoyun (int positionCounter1 = 0; positionCounter1 <26; positionCounter1 ++) {lcd.scrollDisplayLeft (); // Ekranın məzmununu bir boşluq sola sürüşdürür. lcd.print (array1 [positionCounter1]); // LCD -yə mesaj yazın. gecikmə (vaxt); // 250 mikrosaniyəni gözləyin} lcd.clear (); // LCD ekranı təmizləyir və kursoru sol üst küncdə yerləşdirir. lcd.setCursor (15, 1); // kursoru 15 sütunun 1 sətirinə qoyun (int positionCounter = 0; positionCounter <26; positionCounter ++) {lcd.scrollDisplayLeft (); // Ekranın məzmununu bir boşluq sola sürüşdürür. lcd.print (array2 [positionCounter]); // LCD -yə mesaj yazın. gecikmə (vaxt); // 250 mikrosaniyəni gözləyin} lcd.clear (); // LCD ekranı təmizləyir və kursoru sol üst küncdə yerləşdirir. } //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////
/düymələrin basıldığını yoxlayın (digitalRead (startbut) == 1) {flag = 1; // düyməni başlamaq üçün dəyişən bayraq}
if (bayraq == 1) {if (digitalRead (tərsinə) == YÜKSƏK) // əksinə basıldığında servo açılacaq {tərs (); // əks düymə üçün tərs dəyişən} else if else (digitalRead (forwardbut) == HIGH) // forwardbut basıldıqda servo {irəli () açılacaq; // irəli düyməsi üçün irəli dəyişən} else {stop (); // düymələr basılmadıqda servoların hərəkətini dayandırmaq üçün dəyişəni dayandırın}}
}
// İrəli, geri və dayandırmaq üçün hərəkət qaydaları irəli () {// irəli əmri servoLeft.write (0); // servoların servoRight.write -ə çevrildiyi istiqamət (180); } void stop () {// stop command servoLeft.write (90); // hər iki servo eyni yerdə dayanır, əks halda fərqli mövqedə olarlar servoRight.write (90); } void reverse () {// əks əmr servoLeft.write (180); // servolar əks istiqamətdə aktivləşir servoRight.write (0); }
uğurun kodu budur! Arduino qurduqdan sonra hər şey işləməlidir! və zövq alın!
işə yaramırsa, bu təlimat verənə baxıb hər şeyi yoxlayın!