Centro de Controle de Motores parte 2

Dependencies:   TextLCD mbed

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

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 mensagem;
isabellemm 4:1dcc28a7a849 12 int estado = 0;
isabellemm 4:1dcc28a7a849 13
isabellemm 4:1dcc28a7a849 14 // motor
isabellemm 4:1dcc28a7a849 15 DigitalOut IN1A (D5);
isabellemm 4:1dcc28a7a849 16 DigitalOut IN2A (D4);
isabellemm 4:1dcc28a7a849 17 PwmOut ENA (D2);
isabellemm 4:1dcc28a7a849 18
isabellemm 4:1dcc28a7a849 19 // saídas - tirar
isabellemm 4:1dcc28a7a849 20 DigitalOut led (LED1);
isabellemm 4:1dcc28a7a849 21
isabellemm 4:1dcc28a7a849 22 // entradas
isabellemm 4:1dcc28a7a849 23 InterruptIn enable (D9);
isabellemm 4:1dcc28a7a849 24 DigitalIn dir (D10);
isabellemm 4:1dcc28a7a849 25 AnalogIn POT (A5);
isabellemm 4:1dcc28a7a849 26
isabellemm 4:1dcc28a7a849 27 // debouncing
isabellemm 4:1dcc28a7a849 28 Timer debounce;
isabellemm 4:1dcc28a7a849 29
isabellemm 4:1dcc28a7a849 30 void muda_e(){
isabellemm 4:1dcc28a7a849 31 if (debounce.read_ms()>200){
isabellemm 4:1dcc28a7a849 32 estado=!estado;
isabellemm 4:1dcc28a7a849 33 }
isabellemm 4:1dcc28a7a849 34 debounce.reset();
isabellemm 4:1dcc28a7a849 35 }
isabellemm 4:1dcc28a7a849 36
isabellemm 4:1dcc28a7a849 37 int main(){
isabellemm 4:1dcc28a7a849 38 enable.rise(&muda_e);
isabellemm 4:1dcc28a7a849 39 debounce.start();
isabellemm 4:1dcc28a7a849 40 ENA.write(0);
isabellemm 4:1dcc28a7a849 41 recebe.baud(9600);
isabellemm 4:1dcc28a7a849 42
isabellemm 4:1dcc28a7a849 43 //Inicializando display LCD
isabellemm 4:1dcc28a7a849 44 lcd.setCursor(TextLCD::CurOff_BlkOn);
isabellemm 4:1dcc28a7a849 45 lcd.setBacklight(TextLCD::LightOn);
isabellemm 4:1dcc28a7a849 46
isabellemm 4:1dcc28a7a849 47 //lcd.printf("Motor 1: \n\nMotor 2: ");
isabellemm 4:1dcc28a7a849 48
isabellemm 4:1dcc28a7a849 49 while(1){
isabellemm 4:1dcc28a7a849 50 pc.printf("recomeca\n");
isabellemm 4:1dcc28a7a849 51 //recebe.printf("aaaa");
isabellemm 4:1dcc28a7a849 52 mensagem = recebe.getc();
isabellemm 4:1dcc28a7a849 53 //recebe.scanf("%c", &mensagem);
isabellemm 4:1dcc28a7a849 54 pc.printf("%c\n", mensagem);
isabellemm 4:1dcc28a7a849 55
isabellemm 4:1dcc28a7a849 56 if (mensagem == 'a'){
isabellemm 4:1dcc28a7a849 57 estado = 0;
isabellemm 4:1dcc28a7a849 58 lcd.printf("\roi\n");
isabellemm 4:1dcc28a7a849 59 }
isabellemm 4:1dcc28a7a849 60
isabellemm 4:1dcc28a7a849 61 if(estado == 1){
isabellemm 4:1dcc28a7a849 62 //recebe.printf("%c", ligado);
isabellemm 4:1dcc28a7a849 63 pc.printf("ligado\n");
isabellemm 4:1dcc28a7a849 64
isabellemm 4:1dcc28a7a849 65 if (POT.read()>0.1f){
isabellemm 4:1dcc28a7a849 66 ENA.write(POT.read());
isabellemm 4:1dcc28a7a849 67
isabellemm 4:1dcc28a7a849 68 if (dir.read() == 0){
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 pc.printf("deslig\n");
isabellemm 4:1dcc28a7a849 81
isabellemm 4:1dcc28a7a849 82 //recebe.printf("%c", desligado);
isabellemm 4:1dcc28a7a849 83 }
isabellemm 4:1dcc28a7a849 84 }
isabellemm 4:1dcc28a7a849 85 }