# Ajuda com programação de Motor DC

**URL:** <https://forum.fazedores.com/t/ajuda-com-programacao-de-motor-dc/8929>\
**Category:** Arduino\
**Created:** [Janeiro 26, 2023, 5:46pm UTC](https://forum.fazedores.com/t/ajuda-com-programacao-de-motor-dc/8929 "2023-01-26T17:46:05Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![BritneyRafaela](https://avatars.discourse-cdn.com/v4/letter/b/8baadc/32.png) [@BritneyRafaela](https://forum.fazedores.com/u/BritneyRafaela)\
**Post date:** [Janeiro 26, 2023, 5:46pm UTC](https://forum.fazedores.com/t/ajuda-com-programacao-de-motor-dc/8929/1 "2023-01-26T17:46:05Z")

</div>

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](https://www.tinkercad.com/things/ix1pdrW614C?sharecode=lpBRUQDImZkG7BUCIrWm5kRk_ykSoYbaMEo6hDd431s:)  
// 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();  
}  
}  
}
