/*
L9110 H-Bridge Demo
Demonstrates operation of L9110 H-Bridge Motor Driver
Mo
*/
// Motor Connections (Both must use PWM pins)
#define IN1 5 //PWM pins: 5, 6, 16, 19 //9
#define IN2 6 //10
#define ledPin 22//21//4 //2
#define buttonPin 23//16//22//23//17 //16
int btnCounter = 0;
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
int count_value =0;
int prestate =0;
void setup() {
// Set motor connections as outputs
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(buttonPin, INPUT);
// Stop motor
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
Serial.begin(9600);
}
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed. If it is, then the buttonState is HIGH:
if (buttonState == HIGH && prestate == 0) {
count_value++;
Serial.println("Pressed: ");
Serial.println(count_value);
// turn LED on
digitalWrite(ledPin, HIGH);
delay(3000);
// turn LED off
digitalWrite(ledPin, LOW);
prestate = 1;
}
else if(buttonState == LOW) {
prestate = 0;
Serial.println("Not Pressed");
}
/*
//////////////////////////////////////////////
if (digitalRead(buttonPin) == HIGH) {
btnCounter += 1;
delay(750);
}
btnCounter=digitalRead(buttonPin);
btnCounter = btnCOunter + 1; //Increment the button counter as long as it's pressed.
if (btnCounter == 1)
{
//Motor Forward
analogWrite(IN1, HIGH);
analogWrite(IN2, LOW);
delay(200);
}
if (btnCounter==0)
{
//Motor Reverse
analogWrite(IN1, LOW);
analogWrite(IN2, HIGH);
delay(200);
}
///////////////////////////////////////////////////
// Accelerate forward
digitalWrite(IN1, LOW);
for (int i = 0; i < 245; i++) //255
{
analogWrite(IN2, i);
delay(20);
}
delay(500);
// Decelerate forward
for (int i = 245; i >= 0; i--) //255
{
analogWrite(IN2, i);
delay(20);
}
delay(500);
// Accelerate reverse
digitalWrite(IN2, LOW);
for (int i = 0; i < 255; i++) {
analogWrite(IN1, i);
delay(20);
}
delay(500);
// Decelerate reverse
for (int i = 255; i >= 0; i--) {
analogWrite(IN1, i);
delay(20);
}
delay(500);
*/
}
// void loop() {
// // Accelerate forward
// digitalWrite(IN1, LOW);
// for (int i = 0; i < 245; i++) //255
// {
// analogWrite(IN2, i);
// delay(20);
// }
// delay(500);
// // Decelerate forward
// for (int i = 245; i >= 0; i--) //255
// {
// analogWrite(IN2, i);
// delay(20);
// }
// delay(500);
// // Accelerate reverse
// digitalWrite(IN2, LOW);
// for (int i = 0; i < 255; i++) {
// analogWrite(IN1, i);
// delay(20);
// }
// delay(500);
// // Decelerate reverse
// for (int i = 255; i >= 0; i--) {
// analogWrite(IN1, i);
// delay(20);
// }
// delay(500);
// }