Замечательный пример автоматизации при помощи Arduino — автоматический нарезальщик пенки.
Контроллер Arduino (автор использовал — Arduino Nano, но подойдёт и любой другой), пара шаговых двигателей NEMA 14 и пара драйверов для них — вот и вся электроника, которая потребуется для повторения данной конструкции.
Скетч (FoamCutter.ino):
// FoamCutter - Driver for Actobotics FoamCutter // // Compiler: Arduino 1.6.1 on Windows 7 // // Dependencies: Bounce2 Library (http://playground.arduino.cc/code/bounce) // // Hardware: Arduino Nano // Pololu A4988 Stepper Driver with Voltage Regulator (Item # 1183) // NEMA 14 1.5A 56oz-in for feeder & Cutter // // 2015.03.12 - Jurgen G. Schmidt - www.jgscraft.com // //----------------------------------------------------------------------------- #include <Bounce2.h> // pushbutton debounce library //--- Program control CONSTANTS --- kept at top for easy management #define DEBOUNCE_DELAY 5 #define FEED_STEPS 865 // Feed motor is configured for half-step //#define CUT_STEPS 950 // 15-tooth pulley #define CUT_STEPS 1188 // 12-tooth pulley #define M_RIGHT HIGH // set cutter motor direction #define M_LEFT LOW //--- Hardware pin assignments #define LED_13 13 // Built-in LED #define MOT1_ENA 9 // Motor 1 enable - active low #define MOT1_DIR 6 // Motor 1 direction #define MOT1_STP 7 // Motor 1 step #define MOT2_ENA 5 // Motor 2 enable - active low #define MOT2_DIR 2 // Motor 2 direction #define MOT2_STP 4 // Motor 2 step #define PB_FEED 3 // PB to run feed motor one cycle #define PB_CUT 8 // PB to run cutter one cycle back and forth #define PB_RUN 12 // PB to run feed and cut 10 times //--- instantiate button debouncers Bounce FeedButton = Bounce(); Bounce CutButton = Bounce(); Bounce RunButton = Bounce(); //---------------------------- setup() ---------------------------------------- void setup() { pinMode( LED_13, OUTPUT ); pinMode( MOT1_ENA, OUTPUT ); // add 10K to + to avoid jitter at startup pinMode( MOT1_DIR, OUTPUT ); pinMode( MOT1_STP, OUTPUT ); pinMode( MOT2_ENA, OUTPUT ); // add 10K to + pinMode( MOT2_DIR, OUTPUT ); pinMode( MOT2_STP, OUTPUT ); pinMode( PB_FEED, INPUT_PULLUP ); pinMode( PB_CUT, INPUT_PULLUP ); pinMode( PB_RUN, INPUT_PULLUP ); FeedButton.attach( PB_FEED ); FeedButton.interval( DEBOUNCE_DELAY ); CutButton.attach( PB_CUT ); CutButton.interval( DEBOUNCE_DELAY ); RunButton.attach( PB_RUN ); RunButton.interval( DEBOUNCE_DELAY ); digitalWrite( MOT1_ENA, HIGH ); // motors off by default digitalWrite( MOT2_ENA, HIGH ); } //---------------------------- loop() ----------------------------------------- //--- Wait for a button press and then call matching function void loop() { FeedButton.update(); CutButton.update(); RunButton.update(); if( FeedButton.fell() ) Feed(); if( CutButton.fell() ) OneCut(); if( RunButton.fell() ) Run(); } //---------------------------- Feed() ----------------------------------------- //--- Feed motor operation // void Feed() { digitalWrite( LED_13, HIGH ); digitalWrite( MOT1_ENA, LOW ); // power to stepper motor digitalWrite( MOT1_DIR, HIGH ); // select direction for( int i; iСсылки
Robot Foam CutterПо теме
Автомат для нарезания провода
Робо-программатор
Укладчик футболок на базе Arduino-робота
Контроль температуры воды в газовой колонке при помощи Arduino
Arduino для автоматизации кофейного автомата
Arduino для автоматизации снекового автомата