Questo progetto prevede la realizzazione di un motore passo-passo BYJ48 per la rotazione in senso orario e antiorario. Le immagini mostrano il motore passo-passo e il circuito di collegamento a ponte:
Passo 1 – Collegare la scheda, la scheda a ponte e il motore passo-passo come indicato nel grafico seguente:
Passo 2 – Download stepper.ino sketch file e caricarlo in Arduin. Il motore passo-passo inizierà a ruotare in senso orario e antiorario.
Video dimostrativo del progetto:
DownLoad Url osoyoo.com
You must be logged in to post a comment.
How do you control the speed of the motor with a potentiometer?
I am using the following code, but it is not working. The motor seems as if it is trying to do something, but I think it is just stepping back and forth.
/*
Stepper Motor Control – speed control
This program drives a unipolar or bipolar stepper motor.
The motor is attached to digital pins 8 – 11 of the Arduino.
A potentiometer is connected to analog input 0.
The motor will rotate in a clockwise direction. The higher the potentiometer value,
the faster the motor speed. Because setSpeed() sets the delay between steps,
you may notice the motor is less responsive to changes in the sensor value at
low speeds.
Created 30 Nov. 2009
Modified 28 Oct 2010
by Tom Igoe
*/
/*
* * LCD Pin Setup:
* LCD -> Ardunio
* GND -> GND
* VCC -> 5V
* SDA -> A4
* SCL -> A5
*/
#include
#include
LiquidCrystal_I2C lcd(0x3f,16,2); // run ic2_scanner sketch and get the IC2 address, which is 0x3f in my case,it could be 0x3f in many cases
const int stepsPerRevolution = 300; // change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
int stepCount = 0; // number of steps the motor has taken
void setup() {
// nothing to do inside the setup
lcd.init(); // initialize the lcd
}
void loop() {
// read the sensor value:
int sensorReading = analogRead(A0);
// map it to a range from 0 to 100:
int motorSpeed = map(sensorReading, 0, 1023, 0, 100);
// set the motor speed:
if (motorSpeed > 0) {
myStepper.setSpeed(motorSpeed);
// step 1/100 of a revolution:
myStepper.step(stepsPerRevolution / 100);
//Display MotorSpeed
lcd.setCursor(0, 0);
lcd.backlight();
lcd.print(“Motor Speed”);
lcd.setCursor(0, 1);
lcd.print(” “);
lcd.setCursor(0, 1);
lcd.print(motorSpeed);
}
}
Hi,James,
there is sth wrong with your code,try to add
#include
#include
at the head of your sketch