![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Monitor Bateria OLED
Dependencies: mbed ssd1306_library
main.cpp@1:7f60e5e44a1b, 23 months ago (annotated)
- Committer:
- henriquer
- Date:
- Wed Aug 24 16:33:52 2022 +0000
- Revision:
- 1:7f60e5e44a1b
- Parent:
- 0:b418a81d46b0
Monitor Bateria OLED
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
henriquer | 1:7f60e5e44a1b | 1 | // Monitoramento de Carga e Descarga de uma bateria selada |
Marcelocostanzo | 0:b418a81d46b0 | 2 | |
henriquer | 1:7f60e5e44a1b | 3 | #include "mbed.h" |
henriquer | 1:7f60e5e44a1b | 4 | #include "ssd1306.h" |
henriquer | 1:7f60e5e44a1b | 5 | |
Marcelocostanzo | 0:b418a81d46b0 | 6 | |
henriquer | 1:7f60e5e44a1b | 7 | AnalogIn tensao(A0); |
henriquer | 1:7f60e5e44a1b | 8 | AnalogIn corrente (A1); |
henriquer | 1:7f60e5e44a1b | 9 | DigitalOut led(D2); |
henriquer | 1:7f60e5e44a1b | 10 | //Serial pc(USBTX, US BRX); |
henriquer | 1:7f60e5e44a1b | 11 | float v_lido ; // Variável que recebe o valor de tensão |
henriquer | 1:7f60e5e44a1b | 12 | float a_lido ; // Variável que recebe o valor de corrent |
Marcelocostanzo | 0:b418a81d46b0 | 13 | |
henriquer | 1:7f60e5e44a1b | 14 | |
henriquer | 1:7f60e5e44a1b | 15 | |
henriquer | 1:7f60e5e44a1b | 16 | |
henriquer | 1:7f60e5e44a1b | 17 | |
henriquer | 1:7f60e5e44a1b | 18 | |
Marcelocostanzo | 0:b418a81d46b0 | 19 | SSD1306 lcd (D14, D15); // assumes default I2C address of 0x78 |
Marcelocostanzo | 0:b418a81d46b0 | 20 | |
Marcelocostanzo | 0:b418a81d46b0 | 21 | |
Marcelocostanzo | 0:b418a81d46b0 | 22 | |
henriquer | 1:7f60e5e44a1b | 23 | int main() |
Marcelocostanzo | 0:b418a81d46b0 | 24 | { |
henriquer | 1:7f60e5e44a1b | 25 | |
henriquer | 1:7f60e5e44a1b | 26 | |
henriquer | 1:7f60e5e44a1b | 27 | //***********************Iniciaçização Display********************************// |
henriquer | 1:7f60e5e44a1b | 28 | |
henriquer | 1:7f60e5e44a1b | 29 | lcd.speed (SSD1306::Medium); // set working frequency |
henriquer | 1:7f60e5e44a1b | 30 | lcd.init(); |
henriquer | 1:7f60e5e44a1b | 31 | lcd.set_contrast(200); |
henriquer | 1:7f60e5e44a1b | 32 | lcd.cls(); // clear frame buffer |
henriquer | 1:7f60e5e44a1b | 33 | lcd.locate (1,0); // set text cursor to line 3, column 1 |
henriquer | 1:7f60e5e44a1b | 34 | lcd.printf (" MONITOR BATERIA"); // print to frame buffer |
Marcelocostanzo | 0:b418a81d46b0 | 35 | |
henriquer | 1:7f60e5e44a1b | 36 | //*********************Calculo Divisor AD8210*********************************// |
henriquer | 1:7f60e5e44a1b | 37 | while(1) { |
henriquer | 1:7f60e5e44a1b | 38 | v_lido= tensao; |
henriquer | 1:7f60e5e44a1b | 39 | a_lido = corrente; |
henriquer | 1:7f60e5e44a1b | 40 | v_lido = (v_lido*4.0)*3.3; // O valor 4.0 é realação entre a tensão de entrada (12V) com a tensão que foi calculada no divisor de tensão que é 3V |
henriquer | 1:7f60e5e44a1b | 41 | a_lido =(a_lido*3.3)/1.375; // O valor de 1.375 é a razão(resistência) entre a tensão Vshunt (3.6 V) com a corrente do circuito (2.4 A) |
Marcelocostanzo | 0:b418a81d46b0 | 42 | |
henriquer | 1:7f60e5e44a1b | 43 | //****************************************************************************** |
henriquer | 1:7f60e5e44a1b | 44 | |
henriquer | 1:7f60e5e44a1b | 45 | |
henriquer | 1:7f60e5e44a1b | 46 | |
henriquer | 1:7f60e5e44a1b | 47 | |
henriquer | 1:7f60e5e44a1b | 48 | lcd.locate (3,0); |
henriquer | 1:7f60e5e44a1b | 49 | lcd.printf ("VOLTS: %1.2f",v_lido); // print to frame buffer |
Marcelocostanzo | 0:b418a81d46b0 | 50 | |
henriquer | 1:7f60e5e44a1b | 51 | lcd.locate (5,0); |
henriquer | 1:7f60e5e44a1b | 52 | lcd.printf ("Corrente: %1.2f",a_lido); // print to frame buffer |
Marcelocostanzo | 0:b418a81d46b0 | 53 | |
henriquer | 1:7f60e5e44a1b | 54 | wait(0.5); |
Marcelocostanzo | 0:b418a81d46b0 | 55 | |
Marcelocostanzo | 0:b418a81d46b0 | 56 | lcd.redraw(); |
Marcelocostanzo | 0:b418a81d46b0 | 57 | } |
henriquer | 1:7f60e5e44a1b | 58 | |
Marcelocostanzo | 0:b418a81d46b0 | 59 | } |
henriquer | 1:7f60e5e44a1b | 60 | |
henriquer | 1:7f60e5e44a1b | 61 |