[code]
int sensorPinA0 = A0; // pin that the Bottom/Left sensor is attached to
int sensorPinA1 = A1; // pin that the Right sensor is attached to
const int motor1Pin = 3; // H-bridge leg 1 (pin 2, 1A)
const int motor2Pin = 4; // H-bridge leg 2 (pin 7, 2A)
const int enablePin = 9; // H-bridge enable pin
const int switchPin = 2;
// variables:
int sensorValueA0 = 0; // Bottom/Left photoresistor
int sensorValueA1 = 0; // Right photoresistor
void setup() {
// Send debugging information via the Serial monitor
Serial.begin(9600);
analogReference(INTERNAL);
//Assign and set motor driver pins to low
pinMode(motor1Pin, OUTPUT);
//digitalWrite(motor1Pin, LOW);
pinMode(motor2Pin, OUTPUT);
//digitalWrite(motor2Pin, LOW);
pinMode(enablePin, OUTPUT);
//digitalWrite(enablePin, HIGH);
//pinMode(9, OUTPUT);
pinMode(sensorValueA0, INPUT);
pinMode(sensorValueA1, INPUT);
pinMode(switchPin, INPUT);
//digitalWrite(9, LOW);
//pinMode(8, OUTPUT);
//digitalWrite(8, LOW);
}
void loop()
{
// read the sensor:
sensorValueA0 = analogRead(sensorPinA0);
sensorValueA1 = analogRead(sensorPinA1);
// if the switch is high, motor will turn on one direction:
if (sensorValueA0 > sensorValueA1)
{
digitalWrite(switchPin, HIGH); // set the switch pin high
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, HIGH); // set leg 2 of the H-bridge high
//digitalWrite(enablePin, HIGH);
delay(100);
}
else
{
digitalWrite(switchPin, LOW); // set the switch pin high
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge high
}
if (sensorValueA0 < sensorValueA1)
{
digitalWrite(switchPin, HIGH);
digitalWrite(motor1Pin, HIGH);
digitalWrite(motor2Pin, LOW);
//digitalWrite(enablePin, HIGH);
}
else
{
digitalWrite(switchPin, LOW); // set the switch pin high
digitalWrite(motor1Pin, LOW); // set leg 1 of the H-bridge low
digitalWrite(motor2Pin, LOW); // set leg 2 of the H-bridge high
}
//Print debugging information
Serial.print("left reading = ");
Serial.println(sensorValueA0); // the left/bottom sensor analog reading
Serial.print("right reading = ");
Serial.println(sensorValueA1); // the right sensor analog reading
//Serial.print("Top reading = ");
//Serial.println(sensorValueA2); // the top sensor analog reading
delay(1000);
}
[/code]
help on DC motor simulation in proteus by using L293D chip
hi, i am working on a project which has the output of DC motor. This dc motor is control by L293D chip in proteus. My input is two LDR sensor which is connected to arduino uno. Arduino is used to compare the voltage differences between both of the sensor. if there is a difference of voltage between both sensor, it will send HIGH signal to L293D input to rotate the motor. but now im facing a problem where my dc motor could not rotate in either direction. i have try many ways, but nothing happen to the motor. for the coding, the simulation in proteus show it follows the coding flow. but still the dc motor could not rotate. I hope you guys can help me. thanks....
[url=http://www.theengineeringprojects.com/2016/03/motor-direction-control-arduino-proteus.html]DC MOTOR DIRECTION CONTROL WITH ARDUINO IN PROTEUS