Introduction: BYJ48 Stepper Motor

Picture of BYJ48 Stepper Motor

Stepper Motor  is a motor controlled by a series of electromagnetic coils. The center shaft has a series of magnets mounted on it, and the coils surrounding the shaft are alternately given current or not, creating magnetic fields which repulse or attract the magnets on the shaft, causing the motor to rotate.

This design allows for very precious control of the motor,There are two basic types of stepper motors, unipolar steppers and bipolar steppers .

In This instructable , I will talk about an Unipolar Stepper Motor 28-BYJ48 .

The unipolar stepper motor has five or six wires and four coils (actually two coils divided by center connections on each coil). The center connections of the coils are tied together and used as the power connection. They are called unipolar steppers because power always comes in on this one pole.

Step 1: Specification , Motor Driver

Picture of Specification , Motor Driver

There are many Types of Drivers , L293 , ULN2003 , A3967SLB , And More , 

The 28-BYJ48 Even comes with Breakout using ULN2003 As a Motor driver chip .

Specification for this Motor  " And you can download datasheet from the attachment "

Rated voltage : 5VDC
Number of Phase 4
Speed Variation Ratio 1/64
Stride Angle 5.625° /64
Frequency 100Hz
DC resistance 50Ω±7%(25℃)
Idle In-traction Frequency > 600Hz
Idle Out-traction Frequency > 1000Hz
In-traction Torque >34.3mN.m(120Hz)
Self-positioning Torque >34.3mN.m
Friction torque 600-1200 gf.cm
Pull in torque 300 gf.cm
Insulation grade A

and the schematics of  This breakout shown like the Pictures on the attachment 

Note that if you want to use L293 Instead of ULN2003 , You will need to leave Red wire No connection .


Materials :

you will need :

1) Arduino Board .

2) BYJ48 Stepper Motor 5v

3) ULN2003 Moror driver Module

4) Jumper .

5) 5v voltage source  "Optional" .



Step 2: Arduino Code .

Picture of Arduino Code .
The Arduino IDE Support a Library for Stepper Motor , Very Easy to use , After Connect Motor with arduino You can Upload the Sketch on to the arduino .

But ...

You must take something  in consider :

This Motor has a Gear ratio of 64 , and Stride Angle 5.625°  so this motor has a 4096 Steps .

 steps = Number of steps in One Revolution  * Gear ratio   .

 steps= (360°/5.625°)*64"Gear ratio" = 64 * 64 =4096 . this value will substitute it on The arduino Sketch 

For adafruit Stepper Motor , the Stride Angle 7.5° and Gear ratio is 16 , So number of steps in 1 Revolution is :

steps in One Revolution  = 360 / 7.5 = 48   .

steps= 48 * 16 = 768 

That's will be different depend on what motor you are using , So check The Datasheet for Your stepper Motor to calibrate this values 

28-BYJ48 Motor Datasheet .

Motor Driver ULN2003 BreakOut Connected To Arduino From IN1 - IN4 To D8 - D11 Respectively 

To Power you Motor ,  Recommanded to use external Power Supply with 5V-500mA  at least , Don't power it directly from arduino Board 5V .

Step 3: Library Direction Issue ... and How to Fix It .

Picture of Library Direction Issue ... and How to Fix It .
When You Upload the sketch to the arduino , The Motor will Be rotate in  one direction By type the command :

  step(steps);

So you must Put the Number of step to turn the motor .

The reference  said You can put the positive value to turn one direction, negative to turn the other.

If that's  OK With Your stepper Motor , You  don't need to read the following .

If Not , Your Motor turn to same direction even you Put the steps Positive Value or negative , What is the issue ?

This Motor need to operate as the Table on the attachment .

the arduino Stepper Library need to modify to match this requirement .

I wrote a code which is allow to this motor to Move clockwise and counter clock wise 

Code in the next step :

Step 4: Modify Code

Picture of Modify Code
the final code for this Stepper motor :

/*
   BYJ48 Stepper motor code
   Connect :
   IN1 >> D8
   IN2 >> D9
   IN3 >> D10
   IN4 >> D11
   VCC ... 5V Prefer to use external 5V Source
   Gnd
   written By :Mohannad Rawashdeh
  
https://www.instructables.com/member/Mohannad+Rawashdeh/
     28/9/2013
  */

#define IN1  8
#define IN2  9
#define IN3  10
#define IN4  11
int Steps = 0;
boolean Direction = true;// gre
unsigned long last_time;
unsigned long currentMillis ;
int steps_left=4095;
long time;
void setup()
{
Serial.begin(115200);
pinMode(IN1, OUTPUT); 
pinMode(IN2, OUTPUT); 
pinMode(IN3, OUTPUT); 
pinMode(IN4, OUTPUT); 
// delay(1000);

}
void loop()
{
  while(steps_left>0){
  currentMillis = micros();
  if(currentMillis-last_time>=1000){
  stepper(1); 
  time=time+micros()-last_time;
  last_time=micros();
  steps_left--;
  }
  }
   Serial.println(time);
  Serial.println("Wait...!");
  delay(2000);
  Direction=!Direction;
  steps_left=4095;
}

void stepper(int xw){
  for (int x=0;x<xw;x++){
switch(Steps){
   case 0:
     digitalWrite(IN1, LOW); 
     digitalWrite(IN2, LOW);
     digitalWrite(IN3, LOW);
     digitalWrite(IN4, HIGH);
   break; 
   case 1:
     digitalWrite(IN1, LOW); 
     digitalWrite(IN2, LOW);
     digitalWrite(IN3, HIGH);
     digitalWrite(IN4, HIGH);
   break; 
   case 2:
     digitalWrite(IN1, LOW); 
     digitalWrite(IN2, LOW);
     digitalWrite(IN3, HIGH);
     digitalWrite(IN4, LOW);
   break; 
   case 3:
     digitalWrite(IN1, LOW); 
     digitalWrite(IN2, HIGH);
     digitalWrite(IN3, HIGH);
     digitalWrite(IN4, LOW);
   break; 
   case 4:
     digitalWrite(IN1, LOW); 
     digitalWrite(IN2, HIGH);
     digitalWrite(IN3, LOW);
     digitalWrite(IN4, LOW);
   break; 
   case 5:
     digitalWrite(IN1, HIGH); 
     digitalWrite(IN2, HIGH);
     digitalWrite(IN3, LOW);
     digitalWrite(IN4, LOW);
   break; 
     case 6:
     digitalWrite(IN1, HIGH); 
     digitalWrite(IN2, LOW);
     digitalWrite(IN3, LOW);
     digitalWrite(IN4, LOW);
   break; 
   case 7:
     digitalWrite(IN1, HIGH); 
     digitalWrite(IN2, LOW);
     digitalWrite(IN3, LOW);
     digitalWrite(IN4, HIGH);
   break; 
   default:
     digitalWrite(IN1, LOW); 
     digitalWrite(IN2, LOW);
     digitalWrite(IN3, LOW);
     digitalWrite(IN4, LOW);
   break; 
}
SetDirection();
}

void SetDirection(){
if(Direction==1){ Steps++;}
if(Direction==0){ Steps--; }
if(Steps>7){Steps=0;}
if(Steps<0){Steps=7; }
}



Comments

JMadision (author)2017-09-24

I noticed some comments about the stepper getting hot. This is a unipolar stepper so you always have 5V on the center of each coil. Mohannad's code sets these to LOW as the the default/reset. This will energize both coils causing a lot of heat. You should set all 4 inputs IN1->IN4 to HIGH to turn off both coils. If you do this it will run much cooler.

奕余 made it! (author)2017-08-26

Thanks! Well explained, it works fine.

sonali58 (author)2017-07-17

well explained... can i do the CW rotation when D3 pressed and CCW when D4 pressed (ARDUINO UNO), the stepper will be connected to the arduino nano. And buttons to the UNO.

How to do that..i tried but when i upload program to arduino uno motor rotates only clockwise and pressing button stops the motor.

OhMyCat! (author)2017-06-24

Thank you!!

I've changed code a little to get rid of direction, and make use minus sign for rotating CCW and plus for rotating CW. Also i have to disable motor after each rotation, because i use 12V power supply for better rotating moment and less step skips. COMM controlled, just type how much steps you need and go.

#define IN1 8

#define IN2 9

#define IN3 10

#define IN4 11

int Steps = 0;

void setup()

{

Serial.begin(115200);

pinMode(IN1, OUTPUT);

pinMode(IN2, OUTPUT);

pinMode(IN3, OUTPUT);

pinMode(IN4, OUTPUT);

// delay(1000);

}

void loop() {

while (Serial.available()>0){

int st = Serial.parseInt();

if(Serial.read()=='\n'){

String message = "STEPS ";

message+=st;

Serial.println(message);

stepper(st);

delay(500);

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

}

}

}

void stepper(int doSteps){

int xw =abs(doSteps);

for (int x=0;x<xw;x++){

switch(Steps){

case 0:

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, HIGH);

break;

case 1:

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, HIGH);

digitalWrite(IN4, HIGH);

break;

case 2:

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, HIGH);

digitalWrite(IN4, LOW);

break;

case 3:

digitalWrite(IN1, LOW);

digitalWrite(IN2, HIGH);

digitalWrite(IN3, HIGH);

digitalWrite(IN4, LOW);

break;

case 4:

digitalWrite(IN1, LOW);

digitalWrite(IN2, HIGH);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

break;

case 5:

digitalWrite(IN1, HIGH);

digitalWrite(IN2, HIGH);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

break;

case 6:

digitalWrite(IN1, HIGH);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

break;

case 7:

digitalWrite(IN1, HIGH);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, HIGH);

break;

default:

digitalWrite(IN1, LOW);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, LOW);

break;

}

delay(1);

if(doSteps>=0){ Steps++;}

if(doSteps<0){ Steps--; }

if(Steps>7){Steps=0;}

if(Steps<0){Steps=7; }

}

}

Well done ! thanks for sharing your code

haneefamad (author)2017-06-14

welllll........i use kell microversion ,and this code show me some debugging problem...plz facilitate me .thanks

what kind of problem do you have ?

Putra JulianT (author)2017-05-14

Great instructable! I have a question though.
In the ULN2003 datasheet says that it's output is inverted. Do we need to invert the input first? Thank you!

BlaineS1 made it! (author)2017-04-29

Thanks! Everything worked right out of the box and this tut!

WOW , looks fantastic !
well done :)

100% OK!!!

malijai (author)2015-11-26

Thanks for your code. I managed to have my Uno control the same
stepper motor, whereas I could not with other examples. The code could
be made simpler though.

Here is my attempt, using arrays, renaming variables and simplifying control



/*
BYJ48 Stepper motor code
Connect :
IN1 >> D8
IN2 >> D9
IN3 >> D10
IN4 >> D11
VCC ... 5V Prefer to use external 5V Source
Gnd
written By :Mohannad Rawashdeh
https://www.instructables.com/member/Mohannad+Rawashdeh/
28/9/2013
*/

#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
const int NBSTEPS = 4096;
const int STEPTIME = 900;
int Step = 0;
boolean Clockwise = true;

int arrayDefault[4] = {LOW, LOW, LOW, LOW};

int stepsMatrix[8][4] = {
{LOW, LOW, LOW, HIGH},
{LOW, LOW, HIGH, HIGH},
{LOW, LOW, HIGH, LOW},
{LOW, HIGH, HIGH, LOW},
{LOW, HIGH, LOW, LOW},
{HIGH, HIGH, LOW, LOW},
{HIGH, LOW, LOW, LOW},
{HIGH, LOW, LOW, HIGH},
};

unsigned long lastTime;
unsigned long time;

void setup(){
Serial.begin(9600);
Serial.println("Starting...");
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}

void loop(){
unsigned long currentMicros;
int stepsLeft = NBSTEPS;
time = 0;
while(stepsLeft > 0){
currentMicros = micros();
if(currentMicros - lastTime >= STEPTIME){
stepper();
time += micros() - lastTime;
lastTime = micros();
stepsLeft--;
}
}
Serial.println(time);
Serial.println("Wait...!");
delay(2000);
Clockwise = !Clockwise;
stepsLeft = NBSTEPS;
}

void writeStep(int outArray[4]){
for (int i=0;i < 4; i++){
digitalWrite(IN1 + i, outArray[i]);
}
}

void stepper(){
if ((Step >= 0) && (Step < 8)){
writeStep(stepsMatrix[Step]);
}else{
writeStep(arrayDefault);
}
setDirection();
}

void setDirection(){
(Clockwise) ? (Step++) : (Step--);

if(Step>7){
Step=0;
}else if(Step<0){
Step=7;
}
}

structures.

khbilen (author)malijai2017-01-27

I used your code to support two stepper motors to run at the same time. It may be generalized for multiple number of motors, but I needed two only, so this is good enough for me. It does not have STEPTIME parameter, hence no time checking. Also, it does not have writeStep function, it is woven into the stepper function. It needs to be interlaced for each motor, so it could not xist on its own.

There is a print statement in the setDirection routine. If you take it out, the motor does not run properly. I tried to replace it with some delayMicroseconds values, ranging from 10 to 100, but not successful. I think that is the timer for the motor. May be one can try some non-blocking counters to replace the print statement.

Here is the code:

/*
BYJ48 Stepper motor code
Stepper 1 :
IN1 >> D2
IN2 >> D3
IN3 >> D4
IN4 >> D5

Stepper 2 :
IN5 >> D6
IN6 >> D7
IN7 >> D8
IN8 >> D9

VCC ... 5V Prefer to use external 5V Source
Gnd
written By :Mohannad Rawashdeh
https://www.instructables.com/member/Mohannad+Rawashdeh/
28/9/2013

Modified by Kadir Haldenbilen for two Stepper Motor support
28/01/2017
*/

#define IN1 2
#define IN2 3
#define IN3 4
#define IN4 5
#define IN5 6
#define IN6 7
#define IN7 8
#define IN8 9
const int NBSTEPS = 1024;
int Steps[2] = {0,7};
int Clockwise[2] = {1, 0};

int stepsMatrix[8][4] = {
{LOW, LOW, LOW, HIGH},
{LOW, LOW, HIGH, HIGH},
{LOW, LOW, HIGH, LOW},
{LOW, HIGH, HIGH, LOW},
{LOW, HIGH, LOW, LOW},
{HIGH, HIGH, LOW, LOW},
{HIGH, LOW, LOW, LOW},
{HIGH, LOW, LOW, HIGH},
};

unsigned long lastTime;

void setup(){
Serial.begin(115200);
Serial.println("Starting...");
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(IN5, OUTPUT);
pinMode(IN6, OUTPUT);
pinMode(IN7, OUTPUT);
pinMode(IN8, OUTPUT);
}

void loop(){
int stepsLeft = NBSTEPS;
while(stepsLeft > 0){
stepper();
stepsLeft--;
}
reset();
Serial.println("Wait...!");
delay(2000);
Clockwise[0] = 1-Clockwise[0];
Clockwise[1] = 1-Clockwise[1];
Steps[0] = 7-Clockwise[0]*7;
Steps[1] = 7-Clockwise[1]*7;
stepsLeft = NBSTEPS;
}

void stepper(){
for (int i=0;i < 4; i++){
for (int j=0; j<2; j++) {
int INP = j*4 + 2;
digitalWrite(INP + i, stepsMatrix[Steps[j]][i]);
setDirection(j);
}
}

}void reset(){
for (int i=0;i < 4; i++){
for (int j=0; j<2; j++) {
int INP = j*4 + 2;
digitalWrite(INP + i, LOW);
}
}
}

void setDirection(int j){
if (Clockwise[j] == 1) Steps[j]++;
else Steps[j]--;
//Following print statement (or an appropriate delay) needed for proper rotation
Serial.print(" Steps[j] before : ");Serial.println(Steps[j]);
if(Steps[j]>7) Steps[j]=0;
else if(Steps[j]<0) Steps[j]=7;
}

adrianmvd made it! (author)2017-01-26

great tutorial! very helpful, thanks

Well done ! congratulations

Wallace09 (author)2017-01-11

Hi
On my project; i use a sg90 servo, ultrasonic sensor and stepper motor. I wanna drive stepper motor by servo angle. Servo rotating 0-180 degrees. If ultrasonic sensor sense a threat near the 30 cm at which angle stepper motor goes to angle. How can i do this.
Thank you

hawkinsm made it! (author)2016-09-29

Very helpful.

Đỗ TiếnM (author)hawkinsm2016-11-23

can you give me the code

JingliS1 (author)Đỗ TiếnM2017-01-09

hi can i have the code

bøstergård (author)2016-12-14

Tak det var godt nok en del nemmere end jeg havde troet.

MVH

Bjarne

CarmelC made it! (author)2016-11-27

Thank you so much for this tutorial!

mskogly made it! (author)2016-08-04

I made one with two motors and used it to make tiny vertical drawbot.See it here :) http://pappmaskin.no/2016/08/pen-plotter-1/

Aviyahalom (author)mskogly2016-11-27

Nice work.

hawkinsm (author)mskogly2016-09-29

Very cool

lyehengfoo (author)2016-11-16

Thank you for this workaround to make this stepper work.

While googling around, I also found this simpler code that also works. Sharing here in case someone wants to use it.

https://github.com/bdargham/BYJ48-Stepper

thallen (author)2016-09-16

thanks for clarity on using this motor/driver board.

you ar a big help to me in learning how to use this.

VlowerB (author)2016-09-12

there's a library that works well here:
http://forum.arduino.cc/index.php?topic=422336.0

PravinP21 (author)2016-07-06

Hello friends.... I have Stepper Motor NEMA23 10KgCm torque with 5A
Microstepping Drive and arduino uno. i need to rotate stepper motor with
different speeds can you give me coding of arduino and how to connect
with each other please help me friends

PravinP21 (author)2016-07-06

Hello friends.... I have Stepper Motor NEMA23 10KgCm torque with 5A Microstepping Drive and arduino uno. i need to rotate stepper motor with different speeds can you give me coding of arduino and how to connect with each other please help me friends

Orange robot (author)2016-06-22

How would you modify the code to run two stepper motors at once?

JohnB636 (author)2016-06-12

Hi! Great information... I have two questions:

1) I am trying to use one of these motors to operate a speedometer needle, I am modifying the delivered rotation of the stepper by a fixed adjustment (pindisp) see below.

The question I have is if I have sequential "calls" to the motor as it is supposed to sweep around, how do I avoid it going back to zero each time? Can I simply send it a negative or positive offset? (i.e read the proposed value of (STEPS_PER_OUTPUT_REVOLUTION * PinDisp), subtract the last one and send the result to the motor)

If the Steps2Take value is (say) 200 and the needle rotates to that,

If the next Steps2Take value is (say) 180, do I simple send Sets2Take=-20 (minus 20)

2) is there a 12v eqiuvalent since my controller is 5v or 12v?

=========

Steps2Take = STEPS_PER_OUTPUT_REVOLUTION * PinDisp; // Rotate CW for 1 rev x correction

small_stepper.setSpeed(1000);

small_stepper.step(Steps2Take);

delay(100);

====

Great job

Kind Regards

Dr B

Southampton UK

MatthewW80 (author)2015-11-27

Hi, I have followed your instructions and it worked fine. I have built on your code and make what I think to be a neater implementation. Here is my github repo with it in, hope someone finds it useful.

https://github.com/mattcow12/BYJ48-Stepper/tree/master

FelixU4 (author)MatthewW802016-05-30

Thanks for this code! Can you tell me which value do I need to change to make the output shaft rotate faster?

BasheerD1 (author)MatthewW802016-05-20

Very useful tutorial. It helped me understand how to drive a stepper motor, and specifically the one I had. I also had a go at re-writing the code in my own style.

https://github.com/bdargham/BYJ48-Stepper

That is cleaner code. It works as planned, and it's easier to understand and execute; especially given the proper use of comments. Thanks for posting it.

Any thoughts on modifying it for use with a pot? Basically: 'sweep with pot position'... I can't find clean code for this really anywhere. Especially with this specific hobby stepper.

JonGolcha (author)MatthewW802015-12-07

Thanks for sharing your code Matthew, this is indeed useful :)

KubaMiszcz (author)2016-05-08

is any way to implement quarter step control? i try modify table and use PWM=50% on proper coils between halfsteps but doesnt work, maybe it needs more than 50%? (i cant check it in near time)

i know how to do it with 6 wire unipolar stepper,

anybody disassembly this stepper? is it easy (if possible) way to unshort middles of coils? and make unipolar 6wire stepper?

or use just ends of coils without common shorted middle, and make bipolar?

diagram form here:

https://developer.mbed.org/media/uploads/XtaticO/28byj48_01.jpg

pbeck1 made it! (author)2016-05-07

Thank you! It works fine - even with USB-power source.

rabiuls (author)2016-04-19

Thank you very much, it works!! But the stepper motor gets very hot, I am using 12v. Is it ok?

JavierV50 (author)rabiuls2016-04-30

Hi rabiuls,

If you're using the motor driver based on the ULN2003 then no, it's not ok to power it at 12 VDC. That driver is not a current regulator. If you take a look to the motor specs it's rated at 5 VDC and has a DC resistance 50Ω ± 7%(25℃) meaning the motor will dissipate about 500 mW at 5 VDC (current is limited to 100 mA). If you increase the supply voltage to 12 VDC, the power dissipation will be 2,88 watts (current is boosted to 240 mA) !!! Your motor (and your driver) will eventually break (you're literally frying both the motor and the driver )!!! If you want to power your motor with a higher voltage supply than the rated voltage of 5 VDC you'll need a motor driver that has current limit protection like for example the "EasyDriver - Stepper Motor Driver" from Sparkfun or other similar.

Alderin (author)rabiuls2016-04-22

It is very common for stepper motors to get hot. Many 3d printer and CNC mill designs include heatsinks and fans on each stepper motor, and in robust designs a temperature sensor is added to each stepper to allow the control circuits to shut down before the motor is damaged.

The ULN2003 is pretty much just an amperage amplifier that steps up the Arduino's power signal to be enough for the motor. Specialized stepper motor drivers have different amperage settings for 'moving' and 'holding' states, which can drastically lower heat and power usage. They are a bit more expensive, though.

With that all said, the typical use for this stepper motor does not have a
dedicated fan, and generally no temperature based shut-off. It is probably not getting too hot for its design, but if you are concerned, adding a 40mm fan ( like this one: http://www.digikey.com/product-detail/en/sunon-fans/HA40101V4-000U-999/259-1616-ND/3694183 ) wouldn't hurt.

nbc12 (author)rabiuls2016-04-19

Depends on your amperage, though it is normal for steppers to get a little warm, so you're probably fine

AbuM12 (author)2016-04-20

hello

Its mostako, I am very new to stepper motor control with Arduino.

I need to rotate my stepper motor 28byj-48, ULN2003 driver IC both in forward and in reverse direction when the respective push button is pressed.

I have I have a stepper motor, ULN2003, arduino and two push button

Please provide me a code for arduino such that i can rotate the stepper in both direction only when push button is pressed

My email id is mostako1@gmail.com

CaptainZ (author)2016-03-25

Thanks, just what I needed to make sure my board was good. I changed the pins to the ones for a nano and it started right up.

Meterry52 (author)2016-03-23

Cool project! Only took minutes to get it going! Thank you!!!!

WillandsometimesWendyK (author)2016-03-15

This was great! Helped me a lot - thank you muchly!

MarcusBlaisdell made it! (author)2016-02-20

Thank you for posting this. My steppers had the direction problem so your fix is greatly appreciated.

rizawerks (author)2016-02-18

thanks for tutorial :)

TheElectromania (author)2016-02-14

Worked perfectly... can you please put comments on your sketch code, to understand the logic.

I would like to control speed and rotate it 360deg

JamalN1 (author)2016-02-07

Can you plz add commentals in the code to explain it

About This Instructable

536,122views

405favorites

License:

Bio: Maker, PCB designer , electronics instructor from Jordan just one word ! I Adore electronics follow me on FB https://www.facebook.com/Mohannad-Rawashdeh-Raw-774983565988641/
More by Mohannad Rawashdeh:Convert Your Pringles Cans to RTTTL Audio PlayerTTP224 Digital Touch Sensor Applications Using ArduinoRF 315MHz/433MHz Wireless and Arduino...again!
Add instructable to: