Monitor Bateria OLED

Dependencies:   mbed ssd1306_library

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?

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