Willian e Camila
Dependencies: mbed mbed-STM32F103C8T6 LCDLib
main.cpp@0:c279b5aa9a21, 2019-06-13 (annotated)
- Committer:
- camilayumi
- Date:
- Thu Jun 13 14:47:52 2019 +0000
- Revision:
- 0:c279b5aa9a21
-
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
camilayumi | 0:c279b5aa9a21 | 1 | #include "mbed.h" |
camilayumi | 0:c279b5aa9a21 | 2 | #include "TextLCD.h" |
camilayumi | 0:c279b5aa9a21 | 3 | |
camilayumi | 0:c279b5aa9a21 | 4 | |
camilayumi | 0:c279b5aa9a21 | 5 | DigitalOut myled(PC_13); |
camilayumi | 0:c279b5aa9a21 | 6 | TextLCD lcd(PA_4, PA_5, PA_6, PB_12, PB_13, PB_14, PB_15); |
camilayumi | 0:c279b5aa9a21 | 7 | AnalogIn adc(PA_0); |
camilayumi | 0:c279b5aa9a21 | 8 | Serial serial(PA_9, PA_10); |
camilayumi | 0:c279b5aa9a21 | 9 | InterruptIn botao(PA_7); |
camilayumi | 0:c279b5aa9a21 | 10 | volatile bool botao_pressed = false; // Used in the main loop |
camilayumi | 0:c279b5aa9a21 | 11 | volatile bool botao_enabled = true; // Used for debouncing |
camilayumi | 0:c279b5aa9a21 | 12 | Timeout botao_timeout; // Used for debouncing |
camilayumi | 0:c279b5aa9a21 | 13 | |
camilayumi | 0:c279b5aa9a21 | 14 | PwmOut saida(PA_1); |
camilayumi | 0:c279b5aa9a21 | 15 | |
camilayumi | 0:c279b5aa9a21 | 16 | |
camilayumi | 0:c279b5aa9a21 | 17 | float conversao, tensao = 0, res, cor; |
camilayumi | 0:c279b5aa9a21 | 18 | char leitura; |
camilayumi | 0:c279b5aa9a21 | 19 | int conta; |
camilayumi | 0:c279b5aa9a21 | 20 | |
camilayumi | 0:c279b5aa9a21 | 21 | /* CONFIGURAÇÃO BOTÃO*/ |
camilayumi | 0:c279b5aa9a21 | 22 | |
camilayumi | 0:c279b5aa9a21 | 23 | void botao_enabled_cb(void) |
camilayumi | 0:c279b5aa9a21 | 24 | { |
camilayumi | 0:c279b5aa9a21 | 25 | botao_enabled = true; |
camilayumi | 0:c279b5aa9a21 | 26 | } |
camilayumi | 0:c279b5aa9a21 | 27 | |
camilayumi | 0:c279b5aa9a21 | 28 | void botao_onpressed_cb(void) |
camilayumi | 0:c279b5aa9a21 | 29 | { |
camilayumi | 0:c279b5aa9a21 | 30 | if (botao_enabled) { // Disabled while the button is bouncing |
camilayumi | 0:c279b5aa9a21 | 31 | botao_enabled = false; |
camilayumi | 0:c279b5aa9a21 | 32 | botao_pressed = true; // To be read by the main loop |
camilayumi | 0:c279b5aa9a21 | 33 | botao_timeout.attach(callback(botao_enabled_cb), 0.3); // Debounce time 300 ms |
camilayumi | 0:c279b5aa9a21 | 34 | } |
camilayumi | 0:c279b5aa9a21 | 35 | } |
camilayumi | 0:c279b5aa9a21 | 36 | |
camilayumi | 0:c279b5aa9a21 | 37 | |
camilayumi | 0:c279b5aa9a21 | 38 | int main() { |
camilayumi | 0:c279b5aa9a21 | 39 | |
camilayumi | 0:c279b5aa9a21 | 40 | |
camilayumi | 0:c279b5aa9a21 | 41 | serial.baud(115200); |
camilayumi | 0:c279b5aa9a21 | 42 | saida.period_ms(1); |
camilayumi | 0:c279b5aa9a21 | 43 | // led.period(4.0f); // 4 second period |
camilayumi | 0:c279b5aa9a21 | 44 | saida.write(0.80f); |
camilayumi | 0:c279b5aa9a21 | 45 | botao.mode(PullUp); |
camilayumi | 0:c279b5aa9a21 | 46 | botao.fall(callback(botao_onpressed_cb)); |
camilayumi | 0:c279b5aa9a21 | 47 | |
camilayumi | 0:c279b5aa9a21 | 48 | conta =0; |
camilayumi | 0:c279b5aa9a21 | 49 | myled=0; |
camilayumi | 0:c279b5aa9a21 | 50 | while(1) { |
camilayumi | 0:c279b5aa9a21 | 51 | |
camilayumi | 0:c279b5aa9a21 | 52 | tensao = adc.read(); |
camilayumi | 0:c279b5aa9a21 | 53 | |
camilayumi | 0:c279b5aa9a21 | 54 | |
camilayumi | 0:c279b5aa9a21 | 55 | if (botao_pressed) { // Set when button is pressed |
camilayumi | 0:c279b5aa9a21 | 56 | |
camilayumi | 0:c279b5aa9a21 | 57 | botao_pressed = false; |
camilayumi | 0:c279b5aa9a21 | 58 | conta++; |
camilayumi | 0:c279b5aa9a21 | 59 | myled=!myled; |
camilayumi | 0:c279b5aa9a21 | 60 | |
camilayumi | 0:c279b5aa9a21 | 61 | |
camilayumi | 0:c279b5aa9a21 | 62 | } |
camilayumi | 0:c279b5aa9a21 | 63 | |
camilayumi | 0:c279b5aa9a21 | 64 | if(conta > 3)conta=1; |
camilayumi | 0:c279b5aa9a21 | 65 | |
camilayumi | 0:c279b5aa9a21 | 66 | // lcd.gotoxy(1,1); |
camilayumi | 0:c279b5aa9a21 | 67 | //lcd.printf("%d", conta); |
camilayumi | 0:c279b5aa9a21 | 68 | |
camilayumi | 0:c279b5aa9a21 | 69 | |
camilayumi | 0:c279b5aa9a21 | 70 | if(conta == 1) |
camilayumi | 0:c279b5aa9a21 | 71 | { |
camilayumi | 0:c279b5aa9a21 | 72 | wait(0.2); |
camilayumi | 0:c279b5aa9a21 | 73 | lcd.gotoxy(1,1); |
camilayumi | 0:c279b5aa9a21 | 74 | //tensao = adc.read(); |
camilayumi | 0:c279b5aa9a21 | 75 | tensao = tensao*3.3; |
camilayumi | 0:c279b5aa9a21 | 76 | lcd.printf("Tensao: %.2f ", tensao); |
camilayumi | 0:c279b5aa9a21 | 77 | serial.printf("Tensao: %.2f\n\n\n\n\n\n\n\n\n", tensao); |
camilayumi | 0:c279b5aa9a21 | 78 | } |
camilayumi | 0:c279b5aa9a21 | 79 | |
camilayumi | 0:c279b5aa9a21 | 80 | |
camilayumi | 0:c279b5aa9a21 | 81 | |
camilayumi | 0:c279b5aa9a21 | 82 | /* |
camilayumi | 0:c279b5aa9a21 | 83 | if(leitura == 'R') |
camilayumi | 0:c279b5aa9a21 | 84 | |
camilayumi | 0:c279b5aa9a21 | 85 | { |
camilayumi | 0:c279b5aa9a21 | 86 | res = adc.read(); |
camilayumi | 0:c279b5aa9a21 | 87 | conversao = (res*3.3); |
camilayumi | 0:c279b5aa9a21 | 88 | res = (conversao*9950)/(3.3-conversao); |
camilayumi | 0:c279b5aa9a21 | 89 | wait(0.2); |
camilayumi | 0:c279b5aa9a21 | 90 | lcd.gotoxy(1,1); |
camilayumi | 0:c279b5aa9a21 | 91 | lcd.printf("R: %.2f KOhms", res/1000); |
camilayumi | 0:c279b5aa9a21 | 92 | serial.printf("R: %.2f KOhms\n\n\n\n\n\n\n\n\n", res/1000); |
camilayumi | 0:c279b5aa9a21 | 93 | |
camilayumi | 0:c279b5aa9a21 | 94 | } |
camilayumi | 0:c279b5aa9a21 | 95 | |
camilayumi | 0:c279b5aa9a21 | 96 | if(leitura == 'C') |
camilayumi | 0:c279b5aa9a21 | 97 | { |
camilayumi | 0:c279b5aa9a21 | 98 | cor = adc.read(); |
camilayumi | 0:c279b5aa9a21 | 99 | conversao = (cor*3.3); |
camilayumi | 0:c279b5aa9a21 | 100 | res = (conversao * 9950) / (3.3 - conversao); |
camilayumi | 0:c279b5aa9a21 | 101 | cor = (conversao/res); |
camilayumi | 0:c279b5aa9a21 | 102 | wait(0.2); |
camilayumi | 0:c279b5aa9a21 | 103 | lcd.gotoxy(1,1); |
camilayumi | 0:c279b5aa9a21 | 104 | lcd.printf("C: %.2f uA", cor*1000000); |
camilayumi | 0:c279b5aa9a21 | 105 | serial.printf("C: %.2f uA\n\n\n\n\n\n\n\n\n", cor*1000000); |
camilayumi | 0:c279b5aa9a21 | 106 | |
camilayumi | 0:c279b5aa9a21 | 107 | } |
camilayumi | 0:c279b5aa9a21 | 108 | */ |
camilayumi | 0:c279b5aa9a21 | 109 | } |
camilayumi | 0:c279b5aa9a21 | 110 | } |
camilayumi | 0:c279b5aa9a21 | 111 |