Мазмұны:
- 1 -қадам: Критерийлер
- 2 -қадам: корпус
- 3 -қадам: электроника
- 4 -қадам: Билл Акцепторы
- 5 -қадам: тестілеу
- 6 -қадам: Электроника корпусқа
- 7 -қадам: Қорытынды тестілеу
- 8 -қадам: Arduino коды + сілтемелер
Бейне: $ 1 Arduino негізіндегі сауда автоматы: 8 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Біз өз идеямызды инженер -мұғалімнен алдық - біз бәріміз өз сыныбымызға автомат сатып алғанымыз дұрыс болар еді деп ойладық және ол: «тамаша, жаса» деді. Сауда автоматы керемет аға жоба болатыны белгілі болды және ол аяқталғаннан кейін біздің инженерлік бағдарламамызға қаражат жинайтын болады.
Ол $ 1 сататын машина деп аталады, себебі оның құны 1 доллар тұрады, бірақ вексель акцепторы тек $ 1 вексельдерді алатын ескі модель болғандықтан:)
1 -қадам: Критерийлер
Біз үстелдің үстіне сыйатын және тым ұзын емес автомат сатып алғымыз келді. Біз үстелдің үстінде тұрған автомат жоқ екеніне көз жеткізу үшін үстелдің енінің өлшемдерін алдық.
2 -қадам: корпус
Біз қорапты ені 19 дюйм 17 дюйм ұзындығы 25 дюйм жасадық. Біз ағаш кесу үшін CNC машинасын қолдандық. Біз беттерді жобалау үшін қатты жұмыстарды қолдандық, содан кейін оларды CNC бағдарламалық жасақтамасының файл түрлеріне айналдырдық. Біз шеттерін тегістеп, содан кейін оларды 1 ¼ бұрап қойдық. Біз алдыңғы панельді топсамен бекітіп, бұрандалар екінші жағына өтпес үшін ¼ «бұрандаларын қолдандық. Біз сонымен қатар сөрелер мен алдыңғы панель үшін кесетін акрил әйнегін қолдандық.
3 -қадам: электроника
Ардуино
Біз Arduino Mega 2560 тақтасын қолдандық. Біз сондай -ақ Adafruit моторлы тақталарын қолдандық, олар қадамдық қозғалтқыштарды басқара алады. Біз адафрутқа түйреуіштерді бір -бірімен байланыстыру үшін қостық. Оларды бір -бірінің үстіне қойды. Олардың әрқайсысы 2 қозғалтқышты басқара алады. Сонымен қатар, секіргішті қосу қажет екенін ескеріңіз.
Жұмыс үстелінің қуат көзі
Bestek ATX Қуат көзін қосу үшін адаптерді қолданыңыз. Адаптер sparkfun.com сайтынан алынған және әр түрлі кернеуді қамтамасыз етеді.
Қозғалтқыштағы катушкалар
Біз қозғалтқышты ұстап тұру, катушканы ұстап алу және катушканы сөренің бойымен бағыттау үшін solidworks модельдерін жасадық. Біз ebay -ден катушкаларымызға қол жеткіздік және оларды өлшемге дейін қысқарттық. Біз сонымен қатар олардың 3 -ін бүгуге мәжбүр болдық, өйткені біз катушкаға қосылу үшін тік ұштары бар 6 алмадық. Содан кейін біз оларды 3D басып шығардық және оларды катушка мен қозғалтқышқа тіркедік. Бізде қадамдық қозғалтқыштар орнатылды. Ол қозғалтқышты ұстап тұрып, катушканы тура жолға бағыттайды.
СКД және пернетақта
Біз Arduino пернетақтасы мен СКД экранын қуат көзінің адаптеріндегі 5В сымға, содан кейін сол Arduino тақтасына жалғадық.
Сымдар
Біз 18 калибрлі сымды қолдануды ұсынамыз. Біздің жағдайда, әр түрлі өлшеуіштерді қолдану арқылы ымыраға келуге тура келді, себебі бізде 18 өлшеуіш таусылды
Жарықдиодты жолақ
Біз машинаны жарықтандыру үшін жарықдиодты жолақты қолдандық. Біз оны қуат көзінің адаптеріндегі 12В кернеуге жалғадық. Біз қолданған жарық диодты жолақта + және - болды, бұл оны қосу процесін жеңілдетті.
4 -қадам: Билл Акцепторы
Біз шотты қабылдаушы ретінде Coinco BA30B қолдандық. Қуат көзі ретінде оны қабырғаға тікелей қосу керек болды. Біз оны розеткаға қосуға және сымдарды жеңілдетуге мүмкіндік беру үшін оны 24 нүктелі адаптермен біріктірдік. Біз ұстанған түйіндер келесі сілтемеде орналасқан:
techvalleyprojects.blogspot.com/2011/07/ard…
Біздің жағдайда, біз вексель акцепторын көтеру үшін тірек жасауымыз керек болды, себебі олай болмаған жағдайда біздің қаптамамыз үшін тым төмен болады.
5 -қадам: тестілеу
Бөлшектер жұмыс істейтініне көз жеткізу үшін алдымен электрониканы корпустың сыртында тексеріңіз. Кез келген туындаған мәселелер оларды корпусқа салмас бұрын шешілуі керек.
6 -қадам: Электроника корпусқа
Электрониканы тексеріп, олардың нәтижелеріне қанағаттанған соң, оларды корпусқа салуды бастаңыз. Сымның ұзындығын ішке ыңғайлы етіп реттеңіз.
7 -қадам: Қорытынды тестілеу
Қаптамаға салынғаннан кейін бәрін қайтадан тексеріңіз. Егер бәрі сіз күткендей болса, құттықтаймын! Сіз автомат сатып алдыңыз.
8 -қадам: Arduino коды + сілтемелер
Жүктеулер:
Arduino коды
drive.google.com/drive/folders/1oC4MhOcMFy…
Бөлшек файлдары мен құрастыруы бар SolidWorks қалтасы
drive.google.com/drive/folders/1amZoypiWcZ…
Сілтемеде бірдеңе болған жағдайда, мұнда arduino коды толығымен көрсетіледі. Arduino коды <<
#қосу #қосу #қосу «Arduino.h» #қосу #қосу #қосу «утилитасы/Adafruit_MS_PWMServoDriver.h» #қосу
const int stepsPerRevolution = 200; const байт ROWS = 4; // төрт жолды const байт COLS = 3; // үш бағаннан тұратын char пернелері [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; байт rowPins [ROWS] = {5, 6, 7, 8}; // colPins байт пернетақтасының жол түйіндеріне қосылу [COLS] = {2, 3, 4}; // пернетақтаның бағаналық түйіндеріне қосылу Пернетақта пернетақтасы = Пернетақта (makeKeymap (пернелер), 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 жалғанған // Тұрақтылар // // вексель валидаторының кредиті үшін пин (-) жолы const int billValidator = 22;
// Айнымалылар /
/ импульстің ұзақтығын жазу (миллисекундтар) белгісіз ұзақ уақыт;
// жазылған доллардың жалпы сомасы int dollarCounter = 0; void setup () {lcd.begin (16, 1); // lcd.print мәтіндік координаттарын орнату («Тек $ 1 кірістіру»); // Мәтінді орнату Serial.begin (9600); // Байланыс үшін сериялық порттарды инициализациялау. Serial.println («Stepper test!»); // Қадамдық қозғалтқыштың басылғанын білу үшін сериялық мониторға Stepper Test теріңіз. AFMS1.begin (); AFMS2.begin (); AFMS3.begin (); AFMS4.begin (); myMotor1-> setSpeed (100); // Қозғалтқыш жылдамдығын орнатыңыз, олар myMotor2-> setSpeed (100); myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // Веб -валидатор мен түйіннің pinMode (billValidator, INPUT) үшін түйреуіштер; // Билакцептерді орнатады
// Байланыс үшін сериялық порттарды инициализациялау. Serial.begin (9600); Serial.println («Доллар күтілуде …»); } void loop () {{duration = pulseIn (billValidator, HIGH); // Вексель акцепторынан алынған импульстің ұзындығын іздей бастайды, егер (ұзақтығы> 12000) // өңделген және түпнұсқа доллар ретінде растау үшін мәні асып кетуі керек {// Count dollar dollarCounter ++; // Serial.print («Доллар анықталды. / N Барлығы:») түсінігі тексерілуде; // Доллардың жаңа санын көрсету Serial.println (dollarCounter); // цикл, түйме басылғанша күту үшін (ұзақтығы> 12000) {char key = keypad.getKey (); // пернетақтаны қосады және қайсысы басылғанын көре бастайды, егер (перне! = NO_KEY) {// басылған пернені іздейтін болса, Serial.println (перне); // сериялық мониторда қайсысы басылғанын білуге мүмкіндік береді} {if (key == '1') {// 1 пернесі басылса, келесі әрекеттерді орындайды: int keyPressed = key - '1'; myMotor8-> қадам (580, АЛҒА, ҚОС); // Моторды іске қосады және 350 градусқа алға бағытта айналады. myMotor8-> шығару (); // Қозғалтқышты орнында ұстау күйінен босатады. қайтару; // Цикл кодының басына қайтады}
if (key == '2') {// Егер 2 пернесі басылса, келесі әрекеттерді орындайды: int keyPressed = key - '2'; myMotor7-> қадам (400, АЛҒА, ҚОС); // Моторды іске қосады және 350 градусқа алға бағытта айналады. myMotor7-> шығару (); // Қозғалтқышты орнында ұстау күйінен босатады. қайтару; // цикл кодының басына қайтады} if (key == '3') {// Егер 3 пернесі басылса, келесі әрекеттерді орындайды: int keyPressed = key - '3'; myMotor6-> қадам (400, АЛҒА, ҚОС); // Моторды іске қосады және 350 градусқа алға бағытта айналады. myMotor6-> шығару (); // Қозғалтқышты орнында ұстау күйінен босатады. қайтару; // цикл кодының басына қайтады} if (key == '4') {// 4 пернесі басылса, келесі әрекеттерді орындайды: int keyPressed = key - '4'; myMotor5-> қадам (180, АЛҒА, ҚОС); // Моторды іске қосады және 350 градусқа алға бағытта айналады. myMotor5-> шығару (); // Қозғалтқышты орнында ұстау күйінен босатады. қайтару; // цикл кодының басына қайтады} if (key == '5') {// Егер 5 пернесі басылса, келесі әрекеттерді орындайды: int keyPressed = key - '5'; myMotor4-> қадам (6900, АЛҒА, ҚОС); // Моторды іске қосады және 350 градусқа алға бағытта айналады. myMotor4-> шығару (); // Қозғалтқышты орнында ұстау күйінен босатады. қайтару; // цикл кодының басына қайтады} if (key == '6') {// Егер 6 пернесі басылса, келесі әрекеттерді орындайды: int keyPressed = key - '6'; myMotor3-> қадам (400, АЛҒА, ҚОС); // Моторды іске қосады және 350 градусқа алға бағытта айналады. myMotor3-> шығару (); // Қозғалтқышты орнында ұстау күйінен босатады. қайтару; // цикл кодының басына қайтады} if (key == '7') {// Егер 7 пернесі басылса, келесі әрекеттерді орындайды: int keyPressed = key - '7'; myMotor7-> қадам (400, АЛҒА, ҚОС); // Моторды іске қосады және 350 градусқа алға бағытта айналады. myMotor7-> шығару (); // Қозғалтқышты орнында ұстау күйінен босатады. қайтару; // цикл кодының басына қайтады} if (key == '8') {// Егер 8 пернесі басылса, келесі әрекеттерді орындайды: int keyPressed = key - '8'; myMotor8-> қадам (400, АЛҒА, ҚОС); // Моторды іске қосады және 350 градусқа алға бағытта айналады. myMotor8-> шығару (); // Қозғалтқышты орнында ұстау күйінен босатады. қайтару; // Цикл кодының басына қайтады}}}}}} >>
Ұсынылған:
Itemdrop (Raspberry Pi) растау үшін шкаласы бар сауда автоматы: 5 қадам
Itemdrop (Raspberry Pi) растайтын шкаласы бар сауда автоматы: Құрметті әріптес, мектептің жобасы үшін мен жеңіл тағамдар сататын автомат жасауды шештім. Біздің міндетіміз - кемінде 3 сенсор мен 1 жетекті қолданатын қайта құрылатын құрылғы жасау. Мен автомат сатып алуға бардым, себебі ішінара қол жетімді болдым
Баспанасыз сауда автоматы: 3 қадам
Үйсіз сауда автоматы: Мен біздің қоғамда аштықтың алдын алуға тырысамын. Оклахома штатында 3000 -нан астам адам баспанасыздықты бастан кешуде. Біз жалпы қоғамдастықты жақсарту және өсіру үшін осы мәселенің шешімін табуды жөн көрдік. Көптеген адамдар
Сауда картасы машинасы үшін карта сканері: 13 қадам (суреттермен)
Сауда картасы машинасына арналған карт сканері: Сауда картасы машинасы үшін карта сканері Өзгерістер журналын соңғы қадамда табуға болады. Негізгі ақпарат Мен өзімнің жобаның негізгі мотивациясын Card Feeder кіріспесінде түсіндірдім. Бірақ қысқаша айтқанда, мен балаларыммен көптеген сауда карталарын жинадық
Arduino негізіндегі байланыссыз инфрақызыл термометр - IR негізіндегі термометр Arduino көмегімен: 4 қадам
Arduino негізіндегі байланыссыз инфрақызыл термометр | Ардуиноны қолданатын инфрақызыл термометр: Сәлеметсіз бе, балалар, біз индуктивті емес термометр жасаймыз, өйткені кейде сұйықтықтың/қатты заттың температурасы тым жоғары немесе төмен болады, содан кейін онымен байланыс жасау және оны оқу қиын. сол кездегі температура
Сода шкафы - сауда автоматы: 16 қадам (суреттермен)
Сода шкафы - сауда автоматы: шкафтар бұрынғыдай емес. Көптеген мектептер электронды қондырғыларға көшкенде, шкафтар сіздің кітаптарыңыздың кеңістігіне айналады және келесі сұрақ туындайды: «Мен мұны не істеймін?»