Isabelle Murollo
/
Projeto_CCM_Maquinas_MotorDC
Centro de Controle de Motores parte 2
motor_DC.txt@5:6f3ae0856d64, 17 months ago (annotated)
- Committer:
- isabellemm
- Date:
- Fri Dec 02 15:58:02 2022 +0000
- Revision:
- 5:6f3ae0856d64
- Parent:
- 4:1dcc28a7a849
Serial
Who changed what in which revision?
User | Revision | Line number | New 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 | } |