Boa tarde!!!
Estou trabalhando em um projeto onde preciso controlar a rotação de dois motores DC com Arduino Uno e botões. Preciso que eles funcionem como um elevador. Consegui adicionar um LCD 16x2 para mostrar quando houve subida e descida dos andares, mas não estou conseguindo fazer o mesmo com mais de um motor.
Se alguém puder me auxiliar fico imensamente grata, um ótimo ano a todos!!
Este é meu código atual e o link do meu projeto no tinkercard: Tinkercad | From mind to design in minutes
// C++ code
//
#include <LiquidCrystal.h>
#define pwm1 10
#define pwm2 11
#define btn4 6
#define btn3 7
#define btn2 8
#define btn1 9
LiquidCrystal lcd(13, 12, 5, 4, 3, 2);
boolean buttonState1;
boolean buttonState2;
boolean buttonState3;
boolean buttonState4;
int i=1;
void setup()
{
pinMode(pwm1, OUTPUT);
pinMode(pwm2, OUTPUT);
lcd.begin(16,2);
Serial.begin(9600);
pinMode(btn4,INPUT_PULLUP);
pinMode(btn2,INPUT_PULLUP);
pinMode(btn3,INPUT_PULLUP);
pinMode(btn1,INPUT_PULLUP);
}
void loop()
{
lcd.print("You are on ");
lcd.setCursor(0,1);
lcd.print("Floor ");
lcd.print(i);
delay(1000);
lcd.clear();
buttonState1 = digitalRead(btn1);
buttonState2 = digitalRead(btn2);
buttonState3 = digitalRead(btn3);
buttonState4 = digitalRead(btn4);
digitalWrite(pwm1,LOW);
digitalWrite(pwm2,LOW);
//------------------------------------------
//On clicking on 4th floor’s button
if(buttonState4 == HIGH)
{
while(i<4)
{
i++;
digitalWrite(pwm1, LOW);
digitalWrite(pwm2, HIGH);
lcd.print("Going Up ");
lcd.setCursor(0,1);
lcd.print("Floor ");
lcd.print(i);
delay(2000);
lcd.clear();
}
i=4;
lcd.clear();
}
//On clicking on 3rd floor’s button
if(buttonState3 == HIGH)
{
if(i>3)
{
while(i>3)
{
i–;
digitalWrite(pwm1, HIGH);
digitalWrite(pwm2, LOW);
lcd.print("Going Down ");
lcd.setCursor(0,1);
lcd.print("Floor ");
lcd.print(i);
delay(2000);
lcd.clear();
}
}
if(i<3)
{
while(i<3)
{
i++;
digitalWrite(pwm1, LOW);
digitalWrite(pwm2, HIGH);
lcd.print("Going Up ");
lcd.setCursor(0,1);
lcd.print("Floor ");
lcd.print(i);
delay(2000);
lcd.clear();
}
}
i=3;
lcd.clear();
}
//On clicking 2nd floor’s button
if(buttonState2 == HIGH)
{
if(i>2)
{
while(i>2)
{
i–;
digitalWrite(pwm1, HIGH);
digitalWrite(pwm2, LOW);
lcd.print(“Going Down”);
lcd.setCursor(0,1);
lcd.print("Floor ");
lcd.print(i);
delay(2000);
lcd.clear();
}
}
if(i<2)
{
while(i<2)
{
i++;
digitalWrite(pwm1, LOW);
digitalWrite(pwm2, HIGH);
lcd.print(“Going Up”);
lcd.setCursor(0,1);
lcd.print("Floor ");
lcd.print(i);
delay(2000);
lcd.clear();
}
}
i=2;
lcd.clear();
}
//On clicking 1st floor’s button
if(buttonState1 == HIGH)
{
if(i>1)
{
while(i>1)
{
i–;
digitalWrite(pwm1, HIGH);
digitalWrite(pwm2, LOW);
lcd.print("Going Down ");
lcd.setCursor(0,1);
lcd.print("Floor ");
lcd.print(i);
delay(2000);
lcd.clear();
}
i=1;
lcd.clear();
}
}
}