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 }
isabellemm 4:1dcc28a7a849 36 debounce.reset();
isabellemm 4:1dcc28a7a849 37 }
isabellemm 4:1dcc28a7a849 38
isabellemm 4:1dcc28a7a849 39 void queda(){
isabellemm 4:1dcc28a7a849 40 debounce.reset();
isabellemm 4:1dcc28a7a849 41 }
isabellemm 4:1dcc28a7a849 42
isabellemm 4:1dcc28a7a849 43
isabellemm 4:1dcc28a7a849 44 void RX_interrupt(){
isabellemm 4:1dcc28a7a849 45 /*while (recebe.readable()){
isabellemm 4:1dcc28a7a849 46 mensagem = recebe.getc();
isabellemm 4:1dcc28a7a849 47 pc.printf("%c",mensagem);
isabellemm 4:1dcc28a7a849 48 }*/
isabellemm 4:1dcc28a7a849 49 led=!led;
isabellemm 4:1dcc28a7a849 50 }
isabellemm 4:1dcc28a7a849 51
isabellemm 4:1dcc28a7a849 52
isabellemm 4:1dcc28a7a849 53 int main(){
isabellemm 4:1dcc28a7a849 54 enable.rise(&muda_e);
isabellemm 4:1dcc28a7a849 55 debounce.start();
isabellemm 4:1dcc28a7a849 56 ENA.write(0);
isabellemm 4:1dcc28a7a849 57 recebe.baud(9600);
isabellemm 4:1dcc28a7a849 58
isabellemm 4:1dcc28a7a849 59 //Inicializando display LCD
isabellemm 4:1dcc28a7a849 60 lcd.setCursor(TextLCD::CurOff_BlkOn);
isabellemm 4:1dcc28a7a849 61 lcd.setBacklight(TextLCD::LightOn);
isabellemm 4:1dcc28a7a849 62
isabellemm 4:1dcc28a7a849 63 lcd.printf("Motor 1: \n\nMotor 2: ");
isabellemm 4:1dcc28a7a849 64 //recebe.attach(&RX_interrupt, Serial::RxIrq);
isabellemm 4:1dcc28a7a849 65
isabellemm 4:1dcc28a7a849 66 while(1){
isabellemm 4:1dcc28a7a849 67 //mensagem = recebe.getc();
isabellemm 4:1dcc28a7a849 68 if (mensagem == 'a'){
isabellemm 4:1dcc28a7a849 69 estado = 1;
isabellemm 4:1dcc28a7a849 70 //pc.printf("liga\n");
isabellemm 4:1dcc28a7a849 71 }
isabellemm 4:1dcc28a7a849 72 else if (mensagem == 'b'){
isabellemm 4:1dcc28a7a849 73 estado = 0;
isabellemm 4:1dcc28a7a849 74 //pc.printf("desliga\n");
isabellemm 4:1dcc28a7a849 75 }
isabellemm 4:1dcc28a7a849 76
isabellemm 4:1dcc28a7a849 77 if(estado == 1){
isabellemm 4:1dcc28a7a849 78 recebe.printf("%c", ligado);
isabellemm 4:1dcc28a7a849 79
isabellemm 4:1dcc28a7a849 80 if (POT.read()>0.1f){
isabellemm 4:1dcc28a7a849 81 ENA.write(POT.read());
isabellemm 4:1dcc28a7a849 82
isabellemm 4:1dcc28a7a849 83 if (dir.read() == 0){
isabellemm 4:1dcc28a7a849 84 IN1A = 1;
isabellemm 4:1dcc28a7a849 85 IN2A = 0;
isabellemm 4:1dcc28a7a849 86 }
isabellemm 4:1dcc28a7a849 87 else{
isabellemm 4:1dcc28a7a849 88 IN1A = 0;
isabellemm 4:1dcc28a7a849 89 IN2A = 1;
isabellemm 4:1dcc28a7a849 90 }
isabellemm 4:1dcc28a7a849 91 }
isabellemm 4:1dcc28a7a849 92 }
isabellemm 4:1dcc28a7a849 93 else{
isabellemm 4:1dcc28a7a849 94 ENA.write(0);
isabellemm 4:1dcc28a7a849 95
isabellemm 4:1dcc28a7a849 96 recebe.printf("%c", desligado);
isabellemm 4:1dcc28a7a849 97 }
isabellemm 4:1dcc28a7a849 98 }
isabellemm 4:1dcc28a7a849 99 }