Centro de Controle de Motores parte 2

Dependencies:   TextLCD mbed

motor_display.txt

Committer:
isabellemm
Date:
17 months ago
Revision:
5:6f3ae0856d64
Parent:
4:1dcc28a7a849

File content as of revision 5:6f3ae0856d64:

#include "mbed.h"
#include "TextLCD.h"

Serial pc(USBTX, USBRX);
Serial micro(p9, p10);

char M2[2];

I2C i2c_lcd(I2C_SDA, I2C_SCL); // SDA, SCL >>> NUCLEO: D14,D15 ou 
TextLCD_I2C lcd(&i2c_lcd, 0x7e, TextLCD::LCD20x4);

//motor
DigitalOut IN1A (D5);
DigitalOut IN2A (D4);
PwmOut ENA (D2);

DigitalIn dir(PB_6);
InterruptIn enable (PC_7);
AnalogIn POT(A5);

int estado = 0;
Timer debounce;

void muda_e(){
    if (debounce.read_ms()>200){
        estado=!estado;
        printf("\r %d\n\r", estado);
    }
    debounce.reset();
}

void queda(){
    //if (debounce.read_ms()>200){
      //  printf("fall\n\r");
    
    debounce.reset();
}

int main()
{
    enable.rise(&muda_e);
    enable.fall(&queda);
    debounce.start();
    
    //Inicializando display LCD
    lcd.setCursor(TextLCD::CurOff_BlkOn);
    lcd.setBacklight(TextLCD::LightOn);
    
    lcd.printf("Motor 1: \n\nMotor 2: ");
    
    pc.baud(9600); //configuração padrão de baud rate do Mbed
    
    while(1)
    {
        //char con = (scanf("%1s", M2));
        /*if (con == "A"){
            pc.printf("A\n");
        }
        else if (con == "B"{
            pc.printf("B\n");
        }*/
        lcd.setAddress(1,1);
        lcd.printf("h");
        
        if (estado == 1){
            if (POT.read()>0.1f){
                ENA.write(POT.read());
                if (dir == 1){
                    IN1A = 1;
                    IN2A = 0;
                }
                else {
                    IN1A = 0;
                    IN2A = 1;
                }
            }
        }
        else {
            ENA.write(0);
        }        
    }
}