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 recebe(D14, D15);
isabellemm 4:1dcc28a7a849 6
isabellemm 4:1dcc28a7a849 7 I2C i2c_lcd(I2C_SDA, I2C_SCL); // SDA, SCL >>> NUCLEO: D14,D15 ou
isabellemm 4:1dcc28a7a849 8 TextLCD_I2C lcd(&i2c_lcd, 0x7e, TextLCD::LCD20x4);
isabellemm 4:1dcc28a7a849 9
isabellemm 4:1dcc28a7a849 10 // variáveis
isabellemm 4:1dcc28a7a849 11 char ligado = 'c';
isabellemm 4:1dcc28a7a849 12 char desligado = 'd';
isabellemm 4:1dcc28a7a849 13 char mensagem;
isabellemm 4:1dcc28a7a849 14 int estado = 0;
isabellemm 4:1dcc28a7a849 15
isabellemm 4:1dcc28a7a849 16 // motor
isabellemm 4:1dcc28a7a849 17 DigitalOut IN1A (D5);
isabellemm 4:1dcc28a7a849 18 DigitalOut IN2A (D4);
isabellemm 4:1dcc28a7a849 19 PwmOut ENA (D2);
isabellemm 4:1dcc28a7a849 20
isabellemm 4:1dcc28a7a849 21 // saídas - tirar
isabellemm 4:1dcc28a7a849 22 DigitalOut led (LED1);
isabellemm 4:1dcc28a7a849 23
isabellemm 4:1dcc28a7a849 24 // entradas
isabellemm 4:1dcc28a7a849 25 InterruptIn enable (D9);
isabellemm 4:1dcc28a7a849 26 DigitalIn dir (D10);
isabellemm 4:1dcc28a7a849 27 AnalogIn POT (A5);
isabellemm 4:1dcc28a7a849 28
isabellemm 4:1dcc28a7a849 29 // debouncing
isabellemm 4:1dcc28a7a849 30 Timer debounce;
isabellemm 4:1dcc28a7a849 31
isabellemm 4:1dcc28a7a849 32 void muda_e(){
isabellemm 4:1dcc28a7a849 33 if (debounce.read_ms()>200){
isabellemm 4:1dcc28a7a849 34 estado=!estado;
isabellemm 4:1dcc28a7a849 35 led = estado;
isabellemm 4:1dcc28a7a849 36 }
isabellemm 4:1dcc28a7a849 37 debounce.reset();
isabellemm 4:1dcc28a7a849 38 }
isabellemm 4:1dcc28a7a849 39
isabellemm 4:1dcc28a7a849 40 void queda(){
isabellemm 4:1dcc28a7a849 41 debounce.reset();
isabellemm 4:1dcc28a7a849 42 }
isabellemm 4:1dcc28a7a849 43
isabellemm 4:1dcc28a7a849 44 int main(){
isabellemm 4:1dcc28a7a849 45 enable.rise(&muda_e);
isabellemm 4:1dcc28a7a849 46 debounce.start();
isabellemm 4:1dcc28a7a849 47 ENA.write(0);
isabellemm 4:1dcc28a7a849 48
isabellemm 4:1dcc28a7a849 49 //Inicializando display LCD
isabellemm 4:1dcc28a7a849 50 lcd.setCursor(TextLCD::CurOff_BlkOn);
isabellemm 4:1dcc28a7a849 51 lcd.setBacklight(TextLCD::LightOn);
isabellemm 4:1dcc28a7a849 52
isabellemm 4:1dcc28a7a849 53 lcd.printf("Motor 1: \n\nMotor 2: ");
isabellemm 4:1dcc28a7a849 54
isabellemm 4:1dcc28a7a849 55 while(1){
isabellemm 4:1dcc28a7a849 56 //mensagem = recebe.getc();
isabellemm 4:1dcc28a7a849 57 if (mensagem == 'a'){
isabellemm 4:1dcc28a7a849 58 estado = 1;
isabellemm 4:1dcc28a7a849 59 pc.printf("liga\n");
isabellemm 4:1dcc28a7a849 60 }
isabellemm 4:1dcc28a7a849 61 else if (mensagem == 'b'){
isabellemm 4:1dcc28a7a849 62 estado = 0;
isabellemm 4:1dcc28a7a849 63 pc.printf("desliga\n");
isabellemm 4:1dcc28a7a849 64 }
isabellemm 4:1dcc28a7a849 65
isabellemm 4:1dcc28a7a849 66 if(estado == 1){
isabellemm 4:1dcc28a7a849 67 ENA.write(POT.read());
isabellemm 4:1dcc28a7a849 68
isabellemm 4:1dcc28a7a849 69 if (POT.read()>0.1f){
isabellemm 4:1dcc28a7a849 70 if (dir.read() == 0){
isabellemm 4:1dcc28a7a849 71 IN1A = 1;
isabellemm 4:1dcc28a7a849 72 IN2A = 0;
isabellemm 4:1dcc28a7a849 73 }
isabellemm 4:1dcc28a7a849 74 else{
isabellemm 4:1dcc28a7a849 75 IN1A = 0;
isabellemm 4:1dcc28a7a849 76 IN2A = 1;
isabellemm 4:1dcc28a7a849 77 }
isabellemm 4:1dcc28a7a849 78 }
isabellemm 4:1dcc28a7a849 79 }
isabellemm 4:1dcc28a7a849 80 else{
isabellemm 4:1dcc28a7a849 81 ENA.write(0);
isabellemm 4:1dcc28a7a849 82 }
isabellemm 4:1dcc28a7a849 83 }
isabellemm 4:1dcc28a7a849 84 }