Stepper UNO v1.0: Difference between revisions
No edit summary |
|||
Line 9: | Line 9: | ||
The software works exactly as an Arduino UNO. | The software works exactly as an Arduino UNO. | ||
==Specifications== | |||
- 2 Motor control output (Generic or embedded A4988 drivers)<br> | - 2 Motor control output (Generic or embedded A4988 drivers)<br> | ||
Line 20: | Line 20: | ||
- 16x2 LCD screen | - 16x2 LCD screen | ||
==Motor Control== | |||
The stepperUNO can communicate with any stepper driver. A generic connector is available. Alternatively the A4988 driver can be integrated on the board itself. | The stepperUNO can communicate with any stepper driver. A generic connector is available. Alternatively the A4988 driver can be integrated on the board itself. | ||
Line 26: | Line 26: | ||
For each motor there is a dedicated Attiny85 MCU. The ATtiny85 communicates with the main Atmega328 MCU via i2c. | For each motor there is a dedicated Attiny85 MCU. The ATtiny85 communicates with the main Atmega328 MCU via i2c. | ||
==User Control== | |||
The well known LCD keypad shield is used. It uses the usual LiquidCrystal library to display informations. | The well known LCD keypad shield is used. It uses the usual LiquidCrystal library to display informations. | ||
Line 34: | Line 34: | ||
The potentiometer is available for linear controls such as speed. | The potentiometer is available for linear controls such as speed. | ||
==Enclosure== | |||
The full combo StepperUNO/keypad shield can sit in a basket enclosure. This can be mounted on aluminium profile or other support. | The full combo StepperUNO/keypad shield can sit in a basket enclosure. This can be mounted on aluminium profile or other support. | ||
Line 41: | Line 41: | ||
[[File:IMG_0689_small.png]] | [[File:IMG_0689_small.png]] | ||
==Library== | |||
The stepperUNO library is available here. A simple usage example is shown below. | The stepperUNO library is available here. A simple usage example is shown below. |
Revision as of 13:06, 12 October 2015

The StepperUNO is a stepper motor control board for standalone system.
With this board one can control up to two stepper motors and read sensors at the same time. It is suitable for small application where some automation is required.
Based on the pattern of the Arduino UNO it is designed to host a LCD keypad shield. This combination makes the stepperUNO an excellent board for application control.
The software works exactly as an Arduino UNO.
Specifications
- 2 Motor control output (Generic or embedded A4988 drivers)
- 4 Digital Input/Output
- 2 Analog Input (can be used as digital I/O)
- 1 USB port
- 1 Power port (2.1mm Jack)
- 1 Potentiometer control
- 6 push buttons.
- 16x2 LCD screen
Motor Control
The stepperUNO can communicate with any stepper driver. A generic connector is available. Alternatively the A4988 driver can be integrated on the board itself.
For each motor there is a dedicated Attiny85 MCU. The ATtiny85 communicates with the main Atmega328 MCU via i2c.
User Control
The well known LCD keypad shield is used. It uses the usual LiquidCrystal library to display informations.
From the LCD keypad six push buttons are available. We have rerouted the reset button as a normal function button. A library for programming them easily should be released soon.
The potentiometer is available for linear controls such as speed.
Enclosure
The full combo StepperUNO/keypad shield can sit in a basket enclosure. This can be mounted on aluminium profile or other support.
Library
The stepperUNO library is available here. A simple usage example is shown below.
// simpledrive v1.0 // lechacal.com // Example usage of stepperUNO library // drive a single motor with left right button #define Pot 3 #include <LiquidCrystal.h> #include <Wire.h> #include <stepperUNO.h> LiquidCrystal lcd(8, 9, 4, 5, 6, 7); keypad Keypad; stepMOTOR motor1, motor2; void setup(){ motor1.begin(0x4); motor2.begin(0x5); motor1.enable(); lcd.begin(16,2); //LCD INITIALISATION } void loop(){ int POTval = analogRead(Pot); float step_delay = 102400/(POTval+1); byte button = Keypad.ReadKey(); if( Keypad.buttonJustPressed ) { switch (button){ case BUTTON_RIGHT:{ motor1.direction(true); motor1.speed(step_delay); lcd.setCursor(0,0); lcd.print("RIGHT"); break; } case BUTTON_LEFT:{ motor1.direction(false); motor1.speed(step_delay); lcd.setCursor(0,0); lcd.print("LEFT "); break; } }//end switch }// end if if( Keypad.buttonJustPressed ) Keypad.buttonJustPressed = false; //We have now done all we wanted once the button pressed. Closing it. if( Keypad.buttonJustReleased ) { if (button==BUTTON_NONE){ motor1.stop(); lcd.setCursor(0,0); lcd.print(" "); } } if( Keypad.buttonJustReleased ) Keypad.buttonJustReleased = false; }//end loop