Mundarija:
- 1 -qadam: Dvigatellarni va masofadan boshqarish pultini yarating
- 2 -qadam: Ikki dvigatel uchun asos yaratish
- 3 -qadam: Servo dvigatellarning pastki qismiga qo'shing
- 4 -qadam: Katta konteynerda teshiklarni kesib oling
- 5 -qadam: quvur
- 6 -qadam: Hopper
- 7 -qadam: Hopper, quvur va motorlarni joylashtirish
- 8 -qadam: Yakuniy xizmat
- 9 -qadam: Ishchi qismlarni tekshirish uchun kod qo'shing
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Kerakli materiallar
1 x RFID sensori/ masofadan boshqarish pulti
1 x Arduino bilan
2 x doimiy dvigatellar
1 x 180 servo
1 x 360 servo
bir nechta simlar
Loyihani qurish uchun quti/konteyner
to'pni o'tkazish uchun quvur
1 -qadam: Dvigatellarni va masofadan boshqarish pultini yarating
Zanjirni qurish
yuqoridagi sxemani yarating va xuddi shu kodni ishlatish uchun bir xil pinlarga ulaning
2 -qadam: Ikki dvigatel uchun asos yaratish
Yonlari uchun 4, 5 dyuymdan 2 dyuymli to'rtburchaklar kesish uchun ko'pikli taxtadan foydalanish kerak bo'ladi. keyin yuqoridan va pastdan foydalanish uchun 2, 5 dan 5 dyuymli kvadratchalarni kesib tashlang. Keyinchalik, dvigatellarga o'tirish uchun joy kerak bo'ladi, shuning uchun to'pni otish uchun joy berish uchun diametri 23 mm va bir -biridan 39 mm masofada joylashgan 2 teshikni kesib oling. keyin pastki kvadratda dvigatellarning simlari sxemaga ulanishi uchun nuqta yoki juft teshik qiling.
3 -qadam: Servo dvigatellarning pastki qismiga qo'shing
kvadratning pastki qismiga (o'rtada) 180 yoki 360 servoni ehtiyotkorlik bilan yopishtiring. biz buni qilyapmiz, shuning uchun biz qo'lda masofadan boshqarish pulti yoki tasodifiy yo'nalishni o'zgartirishimiz mumkin, shunda to'p turli yo'nalishlarda o'q uzadi
4 -qadam: Katta konteynerda teshiklarni kesib oling
katta konteynerni oling va old va orqa tomondan teshikni kesib oling, aniq bo'lishi shart emas, lekin old tomonda biz servo harakatlanayotganda to'pni turli yo'nalishlarda o'qqa tutish uchun rasmda ko'rinib turganidek katta bo'lishi kerak. va konteynerning orqa qismi simlar chiqib ketishi va kontaktlarning zanglashiga olib kelishi yoki kerak bo'lganda sxemani o'zgartirish uchun kichikroq teshikni kesib tashlagan. oldingi qismda servo konteynerlardan birining qopqog'iga, so'ngra tayanch uchun idishning tagiga yopishtiriladi, ma'lumot uchun ikkinchi rasmga qarang.
5 -qadam: quvur
1 fut uzunlikdagi pvc trubkasini yasang yoki sotib oling, yaxshisi egri chiziqli to'pni aylantiring, keyin to'pni ichkariga kiritish uchun 1,5 dyuymni kesib oling.
6 -qadam: Hopper
Tanlash mumkin bo'lgan 4 ta teng trapezoidni kesib oling, lekin meniki 5 dyuymli edi va trubaga qo'yilganda biroz qiyshayib ketdi, keyin pastki qismidagi ko'pikli plastinka stol tennisi to'pi o'tishi uchun etarlicha katta teshikni kesib tashladi. Keyin ularni bir -biriga yopishtiring, shunda barcha to'plar o'tirishi mumkin. Keyin biz buni teshik kesilgan trubaning yuqori qismiga yopishtiramiz.
7 -qadam: Hopper, quvur va motorlarni joylashtirish
siz trubani konteyner ichidagi dvigatellar uchun mo'ljallangan oq qutining chetiga joylashtirmoqchisiz, shunda to'p chiqib ketadi va g'ildiraklar itariladi. endi trubaning ustki qismiga huniga yopishtirishingiz mumkin
8 -qadam: Yakuniy xizmat
bu servo sakrovchining pastki qismiga yopishtirilgan/ men kesgan trubka etarlicha yopishishi uchun tugma bosilmaguncha va ping to'plari qulab tushmaydi.
9 -qadam: Ishchi qismlarni tekshirish uchun kod qo'shing
// Mushuk tuzatuvchi
// kod bo'ylab buyruqlarni ishlatish uchun kutubxonalarni import qilish, masalan, pinlarni servo deb e'lon qilish va IR masofadan boshqarish pultini o'rnatish #include #include
// doimiy motorlar tezligini o'rnatish uchun o'zgaruvchilarni o'rnatish int onspeed = 255; int past tezlik = 100; int offspeed = 0;
// infraqizil qabul qilgich pinini va ikkita dvigatel pinini o'rnatish IR_Recv = 2; int motor1 = 10; int motor2 = 11;
// o'zgaruvchilarni servo deb e'lon qilish, shuning uchun dastur ma'lum bir buyruqlardan foydalanish servo ekanligini bilish uchun Servo flap; Servo burchagi;
// masofadan boshqarish pultidan kirishni qabul qilish uchun IR pinini e'lon qilish // natijalarni uzoqdan IRrecv irrecv (IR_Recv) dan olish; decode_results natijalari;
bo'sh o'rnatish () {
Serial.begin (9600); // ketma -ket muloqotni boshlaydi irrecv.enableIRIn (); // Qabul qilgichni ishga tushiradi
flap.attach (7); // servo qopqog'ini 7 -pinga biriktiradi, shuning uchun biz uni keyinchalik dastur burchagida ishlatishimiz mumkin.attach (4); // 4 -pinga servo burchakni biriktiradi, shuning uchun uni keyinroq pinMode (motor1, OUTPUT) dasturida ishlatishimiz mumkin; // motor1 ni chiqishga o'rnating, shunda biz tugma bosilganda tezlikni yuborishimiz mumkin pinMode (motor2, OUTPUT); // motor2 ni chiqishga o'rnating, shunda biz tugma bosilganda tezlikni yuborishimiz mumkin
}
void loop () {
flap.write (0); // to'p uzatgichni boshqaruvchi servo -ni 0 gradusga qo'ying, shunda hech qanday to'p o'tmaydi
if (irrecv.decode (& results)) {long int decCode = results.value; Serial.println (decCode); irrecv.resume ();
almashtirish (natijalar. qiymat) {
holat 0xFFA25D: // kuch analogWrite (motor1, tezligi); analogWrite (motor2, tezligi); kechikish (7000); flap.write (90); kechikish (500); flap.write (0); kechikish (2000); analogWrite (motor1, tezligi past); analogWrite (motor2, tezligi past); tanaffus;
holat 0xFFE01F: // EQ
analogWrite (motor1, tezligi); analogWrite (motor2, past tezlik); kechikish (7000); flap.write (90); kechikish (500); flap.write (0); kechikish (2000); analogWrite (motor1, tezligi past); analogWrite (motor2, tezligi past);
tanaffus;
holat 0xFF629D: // rejimi
analogWrite (motor1, past tezlik); analogWrite (motor2, tezligi); kechikish (7000); flap.write (90); kechikish (500); flap.write (0); kechikish (2000); analogWrite (motor1, tezligi past); analogWrite (motor2, tezligi past);
tanaffus;
holat 0xFF30CF: // sozlash 1, 90 daraja
burchak.yozish (30);
tanaffus;
holat 0xFF18E7: // 2, 0 daraja sozlash
burchak.yozish (90);
tanaffus;
holat 0xFF7A85: // 3, 180 daraja sozlash
burchak.yozish (150);
tanaffus;
} } }