Mundarija:
- 1 -qadam: mezonlar
- 2 -qadam: Koson
- 3 -qadam: elektronika
- 4 -qadam: Billni qabul qiluvchi
- 5 -qadam: Sinov
- 6 -qadam: Elektron korpusga
- 7 -qadam: Yakuniy test
- 8 -qadam: Arduino kodi + havolalar
Video: $ 1 Arduino asosidagi avtomat: 8 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
Biz o'z fikrimizni muhandislik o'qituvchimizdan oldik - hammamiz sinfimiz uchun avtomatni qo'yish yaxshi bo'lardi, deb o'yladik va u: "Ajoyib, bitta", dedi. Ma'lum bo'lishicha, avtomat katta loyiha bo'ladi va u tugagandan so'ng bizning muhandislik dasturimiz uchun mablag 'yig'uvchi bo'lib xizmat qiladi.
Uni 1 dollarlik avtomat deb atashadi, chunki uni yasash uchun 1 dollar kerak bo'ladi, aksincha, vekselni qabul qiluvchisi eski model bo'lgani uchun atigi 1 dollar pul oladi:)
1 -qadam: mezonlar
Biz stol ustiga to'g'ri keladigan va juda baland bo'lmagan avtomatni xohladik. Stolda osilgan avtomat yo'qligiga ishonch hosil qilish uchun biz stol kengligining o'lchamlarini oldik.
2 -qadam: Koson
Biz qutimizni 19 dyuym kengligida 17 dyuym uzunligida 25 dyuym qilib yasadik. Biz yog'ochni kesish uchun CNC mashinasidan foydalanardik. Biz yuzlarni loyihalash uchun qattiq ishlardan foydalandik va keyin ularni CNC dasturiy ta'minotimiz uchun fayl turiga o'tkazdik. Biz qirralarni silliqladik, so'ng ularni 1 dyuym bilan vidaladik. Biz old panelni menteşe bilan bog'ladik va vintlar boshqa tomonga o'tmasligi uchun ¼ vintlarni ishlatdik. Biz akril oynadan ham foydalanardik, uni javonlar va old panel uchun kesib tashladik.
3 -qadam: elektronika
Arduino
Biz Arduino Mega 2560 kartasidan foydalandik. Shuningdek, biz Adafruit dvigatel platalarini ishlatdik, ular step motorlarini boshqarishi mumkin edi. Biz bir -biriga ulanishi uchun adafruitga pinlar qo'shdik. Ularni bir -birining ustiga qo'yishdi. Ularning har biri 2 ta dvigatelni boshqarishi mumkin. Bundan tashqari, o'tish moslamasini ulash kerakligini unutmang.
Ish stoli quvvat manbai
Bestek ATX quvvat manbai, quvvat manbai yoqilishi uchun adapter yordamida. Adapter sparkfun.com saytidan olingan va har xil kuchlanishni ta'minlaydi.
Dvigatelga burilishlar
Biz motorni ushlab turish, rulonni ushlab olish va rulonni tokchaga yo'naltirish uchun qattiq ish modellarini tayyorladik. Biz eBay -dan rulonlarga ega bo'ldik va ularni o'lchamiga kesib tashladik. Bundan tashqari, biz ulardan 3tasini egishimiz kerak edi, chunki biz rulonga ulanish uchun to'g'ri uchlari bilan 6 olmaganmiz. Keyin biz ularni 3D formatida bosib, rulon va motorga biriktirdik. Bizda zinapoyali dvigatellar o'rnatildi. U dvigatelni ushlab turardi va rulonni to'g'ri yo'l bo'ylab boshqarardi.
LCD va klaviatura
Biz Arduino klaviatura va LCD displeyini quvvat manbai adapterining 5V kuchlanishiga, so'ngra o'sha Arduino kartasiga ulanganmiz.
Ulanish
18 o'lchagichli simlardan foydalanishni tavsiya etamiz. Bizning holatimizda, har xil o'lchagichlar yordamida murosaga kelishimiz kerak edi, chunki bizda 18 o'lchagich tugab qoldi
LED tasmasi
Mashinani yoritish uchun biz LED tasmasini ishlatdik. Biz uni quvvat manbai adapteridagi 12V kuchlanishli simga uladik. Biz ishlatgan svetodiodli tasmada + va - bor edi, bu uni ulash jarayonini osonlashtirdi.
4 -qadam: Billni qabul qiluvchi
Biz hisob -kitoblarni qabul qiluvchi sifatida Coinco BA30B -dan foydalandik. Quvvat manbai sifatida uni to'g'ridan -to'g'ri devorga ulash kerak edi. Biz uni 24 pinli adapter bilan birlashtirdik va uni simlarni ulashni osonlashtirish uchun atx quvvat manbaidan oldik. Biz kuzatgan pinouts quyidagi havolada topilgan:
techvalleyprojects.blogspot.com/2011/07/ard…
Bizning holatimizda, biz qonun loyihasini qabul qiluvchini ko'tarish uchun moslama yasashimiz kerak edi, chunki aks holda bu bizning korpusimiz uchun juda past bo'ladi.
5 -qadam: Sinov
Komponentlarning ishlashiga ishonch hosil qilish uchun avval elektronni korpus tashqarisida sinab ko'ring. Har qanday muammolarni korpus ichiga joylashtirishdan oldin hal qilish kerak.
6 -qadam: Elektron korpusga
Agar siz elektronikani sinab ko'rsangiz va natijalaridan qoniqsangiz, ularni korpusga joylashtirishni boshlang. Sim uzunligini shunday sozlangki, ular ichkariga qulay joylashsin.
7 -qadam: Yakuniy test
Kosonga qo'yilgach, yana hamma narsani sinab ko'ring. Agar hamma narsa siz kutgandek bo'lsa, tabriklayman! Siz avtomat yasadingiz.
8 -qadam: Arduino kodi + havolalar
Yuklamalar:
Arduino kodi
drive.google.com/drive/folders/1oC4MhOcMFy…
SolidWorks papkasi qismli fayllar va yig'ilishlar bilan
drive.google.com/drive/folders/1amZoypiWcZ…
Agar havola bilan biror narsa yuz bergan bo'lsa, bu erda arduino kodi to'liq ko'rsatiladi. Arduino kodi <<
#include #include #include "Arduino.h" #include #include #include "Utility/Adafruit_MS_PWMServoDriver.h" #include
const int stepsPerRevolution = 200; const bayt ROWS = 4; // to'rt qatorli const bayt COLS = 3; // uchta ustunli char tugmalari [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; bayt rowPins [ROWS] = {5, 6, 7, 8}; // klaviatura baytlari colPins [COLS] = {2, 3, 4}; // klaviaturaning ustunli pinoutlariga ulanish Klaviatura klaviaturasi = Klaviatura (makeKeymap (tugmalar), rowPins, colPins, ROWS, COLS); Adafruit_MotorShield AFMS1 = Adafruit_MotorShield (); Adafruit_StepperMotor *myMotor1 = AFMS1.getStepper (-200, 1); Adafruit_StepperMotor *myMotor2 = AFMS1.getStepper (-200, 2); Adafruit_MotorShield AFMS2 = Adafruit_MotorShield (0x61); Adafruit_StepperMotor *myMotor3 = AFMS2.getStepper (-200, 1); Adafruit_StepperMotor *myMotor4 = AFMS2.getStepper (-200, 2); Adafruit_MotorShield AFMS3 = Adafruit_MotorShield (0x62); Adafruit_StepperMotor *myMotor5 = AFMS3.getStepper (-200, 1); Adafruit_StepperMotor *myMotor6 = AFMS3.getStepper (-200, 2); Adafruit_MotorShield AFMS4 = Adafruit_MotorShield (0x63); Adafruit_StepperMotor *myMotor7 = AFMS4.getStepper (-200, 1); Adafruit_StepperMotor *myMotor8 = AFMS4.getStepper (-200, 2); LiquidCrystal lcd (1, 11, 9, 10, 12, 13); // Digital Pins lcd ulangan // Konstantalar // // hisobni tasdiqlovchi krediti uchun pin (-) liniyasi const int billValidator = 22;
// o'zgaruvchilar /
/ pulsning davomiyligini (millisekundlarda) belgilanmagan uzoq davomiyligini qayd etish;
// yozilgan jami dollarlarni ushlab turish dollar dollarCounter = 0; void setup () {lcd.begin (16, 1); // lcd.print lcd matn koordinatalarini o'rnating ("Faqat $ 1 kiriting"); // Serial.begin (9600) matnini o'rnating; // Aloqa uchun ketma -ket portlarni ishga tushiring. Serial.println ("Stepper test!"); // Seriyali monitorga qadam sinovini yozing, shunda biz qaysi qadam motorini bosilganligini bilib olamiz. AFMS1.begin (); AFMS2.begin (); AFMS3.begin (); AFMS4.begin (); myMotor1-> setSpeed (100); // Dvigatel tezligini o'rnating, ularda ular ishlaydilar myMotor2-> setSpeed (100); myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // Bill tasdiqlagich va pinMode tugmachalari uchun pin sozlamalari (billValidator, INPUT); // Billaccepterni o'rnatadi
// Aloqa uchun ketma -ket portlarni ishga tushiring. Serial.begin (9600); Serial.println ("Dollar kutilmoqda …"); } void loop () {{muddati = pulseIn (billValidator, HIGH); // Hisob -fakturani qabul qiluvchidan olingan puls uzunligini qidirishni boshlaydi, agar (davomiyligi> 12000) // Qayta ishlangan va haqiqiy dollar sifatida tasdiqlanishi uchun qiymati oshishi kerak {// Count dollar dollarCounter ++; // Serial.print ("Dollar aniqlandi. / N Jami:") tushunchasi tekshirilmoqda; // Dollar sonining yangi sonini ko'rsatish Serial.println (dollarCounter); tugma bosilguncha kutish uchun // loop (davomiyligi> 12000) {char key = keypad.getKey (); // tugmachani ulanadi va qaysi tugma bosilishini ko'rishni boshlaydi, agar (key! = NO_KEY) {// bosilgan tugmachani qidirsa Serial.println (key); // ketma -ket monitorda qaysi biri bosilganligini bizga xabar beradi} {if (key == '1') {// Agar 1 -tugma bosilsa, quyidagilarni bajaradi: int keyPressed = key - '1'; myMotor8-> qadam (580, Oldinga, DUBLE); // Dvigatelni ishga tushiradi va 350 gradus oldinga yo'nalishda aylanadi. myMotor8-> chiqarish (); // Dvigatel o'zini joyida ushlab turish holatidan chiqaradi. qaytish; // Loop kodining boshiga qaytadi}
if (key == '2') {// Agar 2 -tugma bosilsa, quyidagilarni bajaradi: int keyPressed = key - '2'; myMotor7-> qadam (400, oldinga, ikki barobar); // Dvigatelni ishga tushiradi va 350 gradus oldinga yo'nalishda aylanadi. myMotor7-> chiqarish (); // Dvigatel o'zini joyida ushlab turish holatidan chiqaradi. qaytish; // loop kodining boshiga qaytadi} if (key == '3') {// 3 -tugma bosilsa, quyidagilarni bajaradi: int keyPressed = key - '3'; myMotor6-> qadam (400, oldinga, ikki baravar); // Dvigatelni ishga tushiradi va 350 gradus oldinga yo'nalishda aylanadi. myMotor6-> chiqarish (); // Dvigatel o'zini joyida ushlab turish holatidan chiqaradi. qaytish; // tsikl kodining boshiga qaytadi} if (key == '4') {// 4 -tugma bosilsa, quyidagilarni bajaradi: int keyPressed = key - '4'; myMotor5-> qadam (180, OLGA, DUBLE); // Dvigatelni ishga tushiradi va 350 gradus oldinga yo'nalishda aylanadi. myMotor5-> chiqarish (); // Dvigatel o'zini joyida ushlab turish holatidan chiqaradi. qaytish; // loop kodining boshiga qaytadi} if (key == '5') {// 5 -tugma bosilsa, quyidagilarni bajaradi: int keyPressed = key - '5'; myMotor4-> qadam (6900, OLGA, DUBLE); // Dvigatelni ishga tushiradi va 350 gradus oldinga yo'nalishda aylanadi. myMotor4-> chiqarish (); // Dvigatel o'zini joyida ushlab turish holatidan chiqaradi. qaytish; // loop kodining boshiga qaytadi} if (key == '6') {// Agar 6 -tugma bosilsa, quyidagilarni bajaradi: int keyPressed = key - '6'; myMotor3-> qadam (400, oldinga, ikki baravar); // Dvigatelni ishga tushiradi va 350 gradus oldinga yo'nalishda aylanadi. myMotor3-> chiqarish (); // Dvigatel o'zini joyida ushlab turish holatidan chiqaradi. qaytish; // tsikl kodining boshiga qaytadi} if (key == '7') {// 7 -tugma bosilsa, quyidagilarni bajaradi: int keyPressed = key - '7'; myMotor7-> qadam (400, oldinga, ikki barobar); // Dvigatelni ishga tushiradi va 350 gradus oldinga yo'nalishda aylanadi. myMotor7-> chiqarish (); // Dvigatel o'zini joyida ushlab turish holatidan chiqaradi. qaytish; // loop kodining boshiga qaytadi} if (key == '8') {// Agar 8 tugma bosilsa, quyidagilarni bajaradi: int keyPressed = key - '8'; myMotor8-> qadam (400, oldinga, ikki baravar); // Dvigatelni ishga tushiradi va 350 gradus oldinga yo'nalishda aylanadi. myMotor8-> chiqarish (); // Dvigatel o'zini joyida ushlab turish holatidan chiqaradi. qaytish; // Loop kodining boshiga qaytadi}}}}}} >>
Tavsiya:
Arduino asosidagi kontaktsiz infraqizil termometr - Arduino yordamida IQ asosidagi termometr: 4 qadam
Arduino asosidagi kontaktsiz infraqizil termometr | IQ asosidagi termometr Arduino yordamida: Salom bolalar, biz ko'rsatma beramiz, biz arduino yordamida aloqa qilmaydigan termometrni yaratamiz, chunki ba'zida suyuqlik/qattiqning harorati juda yuqori yoki pastgacha bo'ladi, keyin u bilan aloqa qilish va uni o'qish qiyin. bu sahnada harorat
Arduino boshqariladigan mini avtomat: 9 qadam
Arduino boshqariladigan mini -avtomat: Bu bizning avtomatimiz, u uchta qiziqarli o'lchamli snickers konfetini sotadi. Umumiy o'lchamlari taxminan 12 " x 6 " x 8 ". Bu avtomat arduino tomonidan boshqariladi, non paneli va servo dvigateli
Yolg'on detektori+avtomat: Arduino Leonardo bilan: 6 qadam
Yolg'on detektori+avtomat: Arduino Leonardo bilan: Bu yolg'on detektori sizning oddiy yolg'on detektori emas, unga avtomat o'rnatilgan yolg'on detektori. Asosan, bu shunday ishlaydi. Boshida, o'yinchi mashinani ishga tushiradigan tugmani bosadi va yolg'ondan oldin
Servo Arduino avtomat: 8 qadam
Servo Arduino avtomat: bu avtomat uchta o'lchamli snickers barini ushlab turadi va Arduino Uno va servo dvigatel yordamida birma-bir sotadi
Arduino avtomat o'rgimchak hiylasi: 7 qadam (rasmlar bilan)
Arduino avtomat o'rgimchak pranki: Xellouin bayramidan 5 kun oldin men old eshik oldida hiyla-nayrang qiluvchilar uchun o'yin-kulgi qilishni xohlaganman. Farzandlarim mening ish joyimda konfet chelaklaridan birini ko'rishgan edi, u erda harakatlanuvchi skelet qo'li pastga tushganda, qo'lingizni ushlab olish uchun pastga tushadi