Centro de Controle de Motores parte 2

Dependencies:   TextLCD mbed

Committer:
isabellemm
Date:
Fri Dec 02 15:58:02 2022 +0000
Revision:
5:6f3ae0856d64
Parent:
4:1dcc28a7a849
Serial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
isabellemm 4:1dcc28a7a849 1 #include "mbed.h"
isabellemm 4:1dcc28a7a849 2 #include "TextLCD.h"
isabellemm 4:1dcc28a7a849 3
isabellemm 4:1dcc28a7a849 4 Serial pc(USBTX, USBRX);
isabellemm 4:1dcc28a7a849 5 Serial micro(p9, p10);
isabellemm 4:1dcc28a7a849 6
isabellemm 4:1dcc28a7a849 7 char M2[2];
isabellemm 4:1dcc28a7a849 8
isabellemm 4:1dcc28a7a849 9 I2C i2c_lcd(I2C_SDA, I2C_SCL); // SDA, SCL >>> NUCLEO: D14,D15 ou
isabellemm 4:1dcc28a7a849 10 TextLCD_I2C lcd(&i2c_lcd, 0x7e, TextLCD::LCD20x4);
isabellemm 4:1dcc28a7a849 11
isabellemm 4:1dcc28a7a849 12 //motor
isabellemm 4:1dcc28a7a849 13 DigitalOut IN1A (D5);
isabellemm 4:1dcc28a7a849 14 DigitalOut IN2A (D4);
isabellemm 4:1dcc28a7a849 15 PwmOut ENA (D2);
isabellemm 4:1dcc28a7a849 16
isabellemm 4:1dcc28a7a849 17 DigitalIn dir(PB_6);
isabellemm 4:1dcc28a7a849 18 InterruptIn enable (PC_7);
isabellemm 4:1dcc28a7a849 19 AnalogIn POT(A5);
isabellemm 4:1dcc28a7a849 20
isabellemm 4:1dcc28a7a849 21 int estado = 0;
isabellemm 4:1dcc28a7a849 22 Timer debounce;
isabellemm 4:1dcc28a7a849 23
isabellemm 4:1dcc28a7a849 24 void muda_e(){
isabellemm 4:1dcc28a7a849 25 if (debounce.read_ms()>200){
isabellemm 4:1dcc28a7a849 26 estado=!estado;
isabellemm 4:1dcc28a7a849 27 printf("\r %d\n\r", estado);
isabellemm 4:1dcc28a7a849 28 }
isabellemm 4:1dcc28a7a849 29 debounce.reset();
isabellemm 4:1dcc28a7a849 30 }
isabellemm 4:1dcc28a7a849 31
isabellemm 4:1dcc28a7a849 32 void queda(){
isabellemm 4:1dcc28a7a849 33 //if (debounce.read_ms()>200){
isabellemm 4:1dcc28a7a849 34 // printf("fall\n\r");
isabellemm 4:1dcc28a7a849 35
isabellemm 4:1dcc28a7a849 36 debounce.reset();
isabellemm 4:1dcc28a7a849 37 }
isabellemm 4:1dcc28a7a849 38
isabellemm 4:1dcc28a7a849 39 int main()
isabellemm 4:1dcc28a7a849 40 {
isabellemm 4:1dcc28a7a849 41 enable.rise(&muda_e);
isabellemm 4:1dcc28a7a849 42 enable.fall(&queda);
isabellemm 4:1dcc28a7a849 43 debounce.start();
isabellemm 4:1dcc28a7a849 44
isabellemm 4:1dcc28a7a849 45 //Inicializando display LCD
isabellemm 4:1dcc28a7a849 46 lcd.setCursor(TextLCD::CurOff_BlkOn);
isabellemm 4:1dcc28a7a849 47 lcd.setBacklight(TextLCD::LightOn);
isabellemm 4:1dcc28a7a849 48
isabellemm 4:1dcc28a7a849 49 lcd.printf("Motor 1: \n\nMotor 2: ");
isabellemm 4:1dcc28a7a849 50
isabellemm 4:1dcc28a7a849 51 pc.baud(9600); //configuração padrão de baud rate do Mbed
isabellemm 4:1dcc28a7a849 52
isabellemm 4:1dcc28a7a849 53 while(1)
isabellemm 4:1dcc28a7a849 54 {
isabellemm 4:1dcc28a7a849 55 //char con = (scanf("%1s", M2));
isabellemm 4:1dcc28a7a849 56 /*if (con == "A"){
isabellemm 4:1dcc28a7a849 57 pc.printf("A\n");
isabellemm 4:1dcc28a7a849 58 }
isabellemm 4:1dcc28a7a849 59 else if (con == "B"{
isabellemm 4:1dcc28a7a849 60 pc.printf("B\n");
isabellemm 4:1dcc28a7a849 61 }*/
isabellemm 4:1dcc28a7a849 62 lcd.setAddress(1,1);
isabellemm 4:1dcc28a7a849 63 lcd.printf("h");
isabellemm 4:1dcc28a7a849 64
isabellemm 4:1dcc28a7a849 65 if (estado == 1){
isabellemm 4:1dcc28a7a849 66 if (POT.read()>0.1f){
isabellemm 4:1dcc28a7a849 67 ENA.write(POT.read());
isabellemm 4:1dcc28a7a849 68 if (dir == 1){
isabellemm 4:1dcc28a7a849 69 IN1A = 1;
isabellemm 4:1dcc28a7a849 70 IN2A = 0;
isabellemm 4:1dcc28a7a849 71 }
isabellemm 4:1dcc28a7a849 72 else {
isabellemm 4:1dcc28a7a849 73 IN1A = 0;
isabellemm 4:1dcc28a7a849 74 IN2A = 1;
isabellemm 4:1dcc28a7a849 75 }
isabellemm 4:1dcc28a7a849 76 }
isabellemm 4:1dcc28a7a849 77 }
isabellemm 4:1dcc28a7a849 78 else {
isabellemm 4:1dcc28a7a849 79 ENA.write(0);
isabellemm 4:1dcc28a7a849 80 }
isabellemm 4:1dcc28a7a849 81 }
isabellemm 4:1dcc28a7a849 82 }