tbi fiat com controle feedforward PID

Dependencies:   mbed reScale TextLCD

Committer:
Marcelocostanzo
Date:
Thu Apr 26 18:54:15 2018 +0000
Revision:
4:9da4a46f38bc
Parent:
3:9d22aa32b223
Child:
5:e04419b1e369
terceira versao, com dispay, sem testes

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:b5a9e0614efd 1 #include "mbed.h"
Marcelocostanzo 4:9da4a46f38bc 2 #include "TextLCD.h"
Marcelocostanzo 4:9da4a46f38bc 3
Marcelocostanzo 4:9da4a46f38bc 4 I2C i2c_lcd(PTC9,PTC8); // SDA, SCL
Marcelocostanzo 4:9da4a46f38bc 5
Marcelocostanzo 2:3c69c0772709 6 InterruptIn motora(D0);
Marcelocostanzo 2:3c69c0772709 7 InterruptIn movida(D1);
Marcelocostanzo 2:3c69c0772709 8
Marcelocostanzo 2:3c69c0772709 9 DigitalOut ign(LED1);
Marcelocostanzo 3:9d22aa32b223 10 PwmOut boost(LED2);
mbed_official 0:b5a9e0614efd 11
Marcelocostanzo 2:3c69c0772709 12
Marcelocostanzo 2:3c69c0772709 13 Timer tbase;
Marcelocostanzo 2:3c69c0772709 14 Ticker call;
Marcelocostanzo 2:3c69c0772709 15
Marcelocostanzo 2:3c69c0772709 16 Serial pc(USBTX, USBRX); // tx, rx
Marcelocostanzo 2:3c69c0772709 17
Marcelocostanzo 3:9d22aa32b223 18 unsigned long int t_motora, t_movida, delta;
mbed_official 0:b5a9e0614efd 19
Marcelocostanzo 4:9da4a46f38bc 20 TextLCD_I2C lcd(&i2c_lcd, 0x7E, TextLCD::LCD16x2); // I2C exp: I2C bus, PCF8574 Slaveaddress, LCD Type
Marcelocostanzo 4:9da4a46f38bc 21
Marcelocostanzo 2:3c69c0772709 22 void tracao()
Marcelocostanzo 2:3c69c0772709 23 {
Marcelocostanzo 2:3c69c0772709 24 tbase.stop();
Marcelocostanzo 2:3c69c0772709 25 t_motora = tbase.read_us();
Marcelocostanzo 2:3c69c0772709 26 tbase.reset();
Marcelocostanzo 2:3c69c0772709 27 tbase.start();
Marcelocostanzo 2:3c69c0772709 28 }
Marcelocostanzo 2:3c69c0772709 29
Marcelocostanzo 2:3c69c0772709 30 void livre()
Marcelocostanzo 2:3c69c0772709 31 {
Marcelocostanzo 2:3c69c0772709 32 tbase.stop();
Marcelocostanzo 2:3c69c0772709 33 t_movida = tbase.read_us();
Marcelocostanzo 2:3c69c0772709 34 tbase.reset();
Marcelocostanzo 2:3c69c0772709 35 tbase.start();
Marcelocostanzo 2:3c69c0772709 36 }
Marcelocostanzo 2:3c69c0772709 37
Marcelocostanzo 2:3c69c0772709 38 void send()
Marcelocostanzo 2:3c69c0772709 39 {
Marcelocostanzo 2:3c69c0772709 40 pc.printf("Tempo: %.3f Hz \n\r");
Marcelocostanzo 2:3c69c0772709 41 }
Marcelocostanzo 2:3c69c0772709 42
Marcelocostanzo 2:3c69c0772709 43 int main()
Marcelocostanzo 2:3c69c0772709 44 {
Marcelocostanzo 2:3c69c0772709 45
Marcelocostanzo 2:3c69c0772709 46 motora.fall(&tracao); // attach the address of the measure function to the rising edge
Marcelocostanzo 2:3c69c0772709 47 movida.fall(&livre); // attach the address of the measure function to the rising edge
Marcelocostanzo 4:9da4a46f38bc 48
Marcelocostanzo 4:9da4a46f38bc 49 lcd.setBacklight(TextLCD::LightOn);
Marcelocostanzo 4:9da4a46f38bc 50 lcd.setCursor(TextLCD::CurOff_BlkOff);
Marcelocostanzo 4:9da4a46f38bc 51 lcd.setAddress(0,0);
Marcelocostanzo 4:9da4a46f38bc 52 lcd.printf("Controle de");
Marcelocostanzo 4:9da4a46f38bc 53 lcd.setAddress(0,1);
Marcelocostanzo 4:9da4a46f38bc 54 lcd.printf("TRACAO");
Marcelocostanzo 4:9da4a46f38bc 55 wait(1.5);
Marcelocostanzo 4:9da4a46f38bc 56 lcd.cls();
Marcelocostanzo 4:9da4a46f38bc 57
Marcelocostanzo 2:3c69c0772709 58
Marcelocostanzo 2:3c69c0772709 59 while(1)
Marcelocostanzo 2:3c69c0772709 60 {
Marcelocostanzo 3:9d22aa32b223 61
Marcelocostanzo 3:9d22aa32b223 62 delta = t_motora - t_movida;
Marcelocostanzo 3:9d22aa32b223 63 boost.pulsewidth_ms(delta);
Marcelocostanzo 3:9d22aa32b223 64
Marcelocostanzo 2:3c69c0772709 65 if(t_movida < t_motora)
Marcelocostanzo 2:3c69c0772709 66 {
Marcelocostanzo 2:3c69c0772709 67 ign=0;
Marcelocostanzo 2:3c69c0772709 68 wait(0.1);
Marcelocostanzo 4:9da4a46f38bc 69 lcd.setAddress(0,0);
Marcelocostanzo 4:9da4a46f38bc 70 lcd.printf("Destracionando");
Marcelocostanzo 2:3c69c0772709 71 }
Marcelocostanzo 2:3c69c0772709 72
Marcelocostanzo 2:3c69c0772709 73 else
Marcelocostanzo 2:3c69c0772709 74 {
Marcelocostanzo 2:3c69c0772709 75 ign=1;
Marcelocostanzo 4:9da4a46f38bc 76 lcd.setAddress(0,0);
Marcelocostanzo 4:9da4a46f38bc 77 lcd.printf("Normal ");
Marcelocostanzo 2:3c69c0772709 78 }
mbed_official 0:b5a9e0614efd 79 }
Marcelocostanzo 2:3c69c0772709 80 }