Centro de Controle de Motores parte 2

Dependencies:   TextLCD mbed

Committer:
isabellemm
Date:
Thu Dec 01 19:38:52 2022 +0000
Revision:
4:1dcc28a7a849
Child:
5:6f3ae0856d64
SIMPLES

Who changed what in which revision?

UserRevisionLine numberNew contents of line
isabellemm 4:1dcc28a7a849 1 /*******************************************
isabellemm 4:1dcc28a7a849 2 Motor de DC
isabellemm 4:1dcc28a7a849 3 *******************************************/
isabellemm 4:1dcc28a7a849 4
isabellemm 4:1dcc28a7a849 5 #include "mbed.h"
isabellemm 4:1dcc28a7a849 6 #include "TextLCD.h"
isabellemm 4:1dcc28a7a849 7
isabellemm 4:1dcc28a7a849 8 Serial pc(USBTX, USBRX);
isabellemm 4:1dcc28a7a849 9
isabellemm 4:1dcc28a7a849 10 I2C i2c_lcd(I2C_SDA, I2C_SCL); // SDA, SCL >>> NUCLEO: D14,D15 ou
isabellemm 4:1dcc28a7a849 11 TextLCD_I2C lcd(&i2c_lcd, 0x7e, TextLCD::LCD20x4);
isabellemm 4:1dcc28a7a849 12
isabellemm 4:1dcc28a7a849 13 // variáveis
isabellemm 4:1dcc28a7a849 14 char ligado = 'a';
isabellemm 4:1dcc28a7a849 15 char desligado = 'b';
isabellemm 4:1dcc28a7a849 16 int estado = 0;
isabellemm 4:1dcc28a7a849 17
isabellemm 4:1dcc28a7a849 18 // motor
isabellemm 4:1dcc28a7a849 19 DigitalOut IN1A (D5);
isabellemm 4:1dcc28a7a849 20 DigitalOut IN2A (D4);
isabellemm 4:1dcc28a7a849 21 PwmOut ENA (D2);
isabellemm 4:1dcc28a7a849 22
isabellemm 4:1dcc28a7a849 23 // entradas
isabellemm 4:1dcc28a7a849 24 InterruptIn enable (D9);
isabellemm 4:1dcc28a7a849 25 DigitalIn dir (D10);
isabellemm 4:1dcc28a7a849 26 AnalogIn POT (A5);
isabellemm 4:1dcc28a7a849 27
isabellemm 4:1dcc28a7a849 28 // debouncing
isabellemm 4:1dcc28a7a849 29 Timer debounce;
isabellemm 4:1dcc28a7a849 30
isabellemm 4:1dcc28a7a849 31 void muda_e(){
isabellemm 4:1dcc28a7a849 32 if (debounce.read_ms()>200){
isabellemm 4:1dcc28a7a849 33 estado=!estado;
isabellemm 4:1dcc28a7a849 34 }
isabellemm 4:1dcc28a7a849 35 debounce.reset();
isabellemm 4:1dcc28a7a849 36 }
isabellemm 4:1dcc28a7a849 37
isabellemm 4:1dcc28a7a849 38 int main(){
isabellemm 4:1dcc28a7a849 39 enable.rise(&muda_e);
isabellemm 4:1dcc28a7a849 40 debounce.start();
isabellemm 4:1dcc28a7a849 41 ENA.write(0);
isabellemm 4:1dcc28a7a849 42 pc.baud(115200);
isabellemm 4:1dcc28a7a849 43
isabellemm 4:1dcc28a7a849 44 //Inicializando display LCD
isabellemm 4:1dcc28a7a849 45 lcd.setCursor(TextLCD::CurOff_BlkOn);
isabellemm 4:1dcc28a7a849 46 lcd.setBacklight(TextLCD::LightOn);
isabellemm 4:1dcc28a7a849 47
isabellemm 4:1dcc28a7a849 48 lcd.printf("Motor 1: \n\nMotor 2: ");
isabellemm 4:1dcc28a7a849 49
isabellemm 4:1dcc28a7a849 50 while(1){
isabellemm 4:1dcc28a7a849 51 if(estado == 1){
isabellemm 4:1dcc28a7a849 52 //pc.printf("%c", ligado);
isabellemm 4:1dcc28a7a849 53 lcd.setAddress(9,0);
isabellemm 4:1dcc28a7a849 54 lcd.printf("ON ");
isabellemm 4:1dcc28a7a849 55
isabellemm 4:1dcc28a7a849 56 if (POT.read()>0.1f){
isabellemm 4:1dcc28a7a849 57 ENA.write(POT.read());
isabellemm 4:1dcc28a7a849 58
isabellemm 4:1dcc28a7a849 59 if (dir.read() == 0){
isabellemm 4:1dcc28a7a849 60 IN1A = 1;
isabellemm 4:1dcc28a7a849 61 IN2A = 0;
isabellemm 4:1dcc28a7a849 62 lcd.setAddress(13,0);
isabellemm 4:1dcc28a7a849 63 lcd.printf("HORARIO");
isabellemm 4:1dcc28a7a849 64 }
isabellemm 4:1dcc28a7a849 65 else{
isabellemm 4:1dcc28a7a849 66 IN1A = 0;
isabellemm 4:1dcc28a7a849 67 IN2A = 1;
isabellemm 4:1dcc28a7a849 68 lcd.setAddress(13,0);
isabellemm 4:1dcc28a7a849 69 lcd.printf("ANTIHOR");
isabellemm 4:1dcc28a7a849 70 }
isabellemm 4:1dcc28a7a849 71 }
isabellemm 4:1dcc28a7a849 72 }
isabellemm 4:1dcc28a7a849 73 else{
isabellemm 4:1dcc28a7a849 74 ENA.write(0);
isabellemm 4:1dcc28a7a849 75 //pc.printf("%c",desligado);
isabellemm 4:1dcc28a7a849 76 lcd.setAddress(9,0);
isabellemm 4:1dcc28a7a849 77 lcd.printf("OFF ");
isabellemm 4:1dcc28a7a849 78 }
isabellemm 4:1dcc28a7a849 79 }
isabellemm 4:1dcc28a7a849 80 }