Hi everybody,
I'm totally new to this community and I'm also pretty new to electronics, so please don't lynch me if i'm doing stupid beginner mistakes or explain myself a little weird.
However, let's get to my questions.
My first Arduino project was building a intervalometer to capture timelapse videos and it turned out pretty well. Now I wanna take this project a little further and want to make the camera move during the timeplapse. After some research I figured out that the best way doing this, is to use a stepper motor.
So I started to read about steppers and it's different types.
However, to gain some practical knowledge about steppers I decided to disassemble an old printer/scanner and see what I get.
I found a MITSUMI Stepping Motor M35SP-7T B. It has 4 wires, so it seems like it's a bipolar stepper. And measuring the resistance between the 4 outcoming wires made sure it is a bipolar stepper.
The only datasheet i could find was this: http://vinvin.dyndns.org/projects/M35SP-7T.pdf but it seems like a datasheet of the M35SP-7T unipolar version.
I decided to give it a try with my Arduino and no external power supply.
All tutorials I found on how to control a bipolar stepper with an Arduino microcontroller were implemented by using an H-Bridge. But i couldn't find any explanation why the H-Bridge is necessary. There is probably a easy explanation, but like I said, I'm quite new to electronics.
So I implemented the circuit like shown below, without H-Bridge, connecting the 4 wires of the stepping motor direct to the Arduino.
And it works fine with the following code:
// set pin numbers:
const int a1 = 1;
const int a2 = 2;
const int b1 = 3;
const int b2 = 4;
void setup() {
// initialize pins
pinMode(a1, OUTPUT);
pinMode(a2, OUTPUT);
pinMode(b1, OUTPUT);
pinMode(b2, OUTPUT);
digitalWrite(a1, LOW);
digitalWrite(a2, LOW);
digitalWrite(b1, LOW);
digitalWrite(b2, LOW);
}
void loop(){
step1();
delay(10);
step2();
delay(10);
step3();
delay(10);
step4();
delay(10);
}
void step1 (){
digitalWrite(a1, HIGH);
digitalWrite(a2, LOW);
digitalWrite(b1, LOW);
digitalWrite(b2, LOW);
}
void step2 (){
digitalWrite(a1, LOW);
digitalWrite(a2, LOW);
digitalWrite(b1, HIGH);
digitalWrite(b2, LOW);
}
void step3 (){
digitalWrite(a1, LOW);
digitalWrite(a2, HIGH);
digitalWrite(b1, LOW);
digitalWrite(b2, LOW);
}
void step4 (){
digitalWrite(a1, LOW);
digitalWrite(a2, LOW);
digitalWrite(b1, LOW);
digitalWrite(b2, HIGH);
}
Like I said before, it works totally fine. The motor is turning fine, also in the other direction if i change the order of the steps. Or slower if I change the delay time. But I'm quite sure there must be some problems :).
So my questions are now: Why it is necessary to use a H-Bridge? Is it just used to be able to use a external power supply? Does my current implementation harm the arduino or the motor?
Thanks a lot for this great community
BTW: I know that this stepping motor I found in the scanner is way to weak to pull any kind of camera. I made this "project" just to get more familiar with stepping motors.

