Arduino not running sketch properly

Hi Guys,

I am trying to control a stepper motor using Arduino Uno and Arduino motor shield R3. I am using an external power source for the motor shield. I am using the sketch in the Arduino examples for stepper speed control but the Arduino doesn’t run the sketch properly. However, when I touch the RX, TX and Pin 2 from the bottom of Arduino Uno with my finger the sketch seems to run fine. I have tried connecting RX and TX together and also RX to ground with resistor, but nothing helped. I would highly appreciate it if you guys could help me with this problem asap.

Regards,

Which sketch exactly? Define "doesn't run properly". Which stepper motor? Why are you
not using a stepper driver to drive the stepper? What is your power source exactly? Can you
post full details of all components and how they are wired up?

I have attached photo of the setup. I am using the stepper_speedControl sketch from the Arduino software examples. I am using a wantai stepper motor 42BYGHM809. The power source is a wall wart 12V 2A DC and I have tried using 8 AA batteries but same problem.

The motor doesn’t follow the speed maped by the potentiometer and changes direction when the value is close to zero. But when I put my finger under the three pins (RX, TX and Pin 2) the motor seems to be running fine and perfectly mapping the speed defined by the potentiometer.

Motor Details: http://www.wantmotor.com/ProductsView.asp?id=157&pid=75&sid=80

Sketch:

/*
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

*/

#include <Stepper.h>

const int stepsPerRevolution = 200; // 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
}

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);
}
}

sorry the photo couldn’t be attached in the previous comment because of large size. Here it is.

Note: I tried the sketch by changing the steps to 400 as the stepper is 0.9 degree.

Image from Reply #3. See Image Guide

b929c6098f1232b5d1ed9d47a9f20da86959bb1d.png

Please reduce the pixel count in your images before posting.

…R

Sorry, but that photo is not adequate to show the wiring connections. Just make a simple pencil drawing and post a photo of that.

...R
Stepper Motor Basics

Same like this.

Image from Reply #7. I posted the link Image Guide so you could save me the trouble of doing this.

145bf1d8fe18846ffb8f231a39801418c3cd7cda.png

…R

That does not look like a pencil drawing. Fritzing diagrams are almost as useless as photos of the hardware. They are too easy to misunderstand.

…R