Willian e Camila

Dependencies:   mbed mbed-STM32F103C8T6 LCDLib

Committer:
camilayumi
Date:
Thu Jun 13 14:47:52 2019 +0000
Revision:
0:c279b5aa9a21
-

Who changed what in which revision?

UserRevisionLine numberNew 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