Monitor Bateria OLED
Dependencies: mbed ssd1306_library
main.cpp
00001 // Monitoramento de Carga e Descarga de uma bateria selada 00002 00003 #include "mbed.h" 00004 #include "ssd1306.h" 00005 00006 00007 AnalogIn tensao(A0); 00008 AnalogIn corrente (A1); 00009 DigitalOut led(D2); 00010 //Serial pc(USBTX, US BRX); 00011 float v_lido ; // Variável que recebe o valor de tensão 00012 float a_lido ; // Variável que recebe o valor de corrent 00013 00014 00015 00016 00017 00018 00019 SSD1306 lcd (D14, D15); // assumes default I2C address of 0x78 00020 00021 00022 00023 int main() 00024 { 00025 00026 00027 //***********************Iniciaçização Display********************************// 00028 00029 lcd.speed (SSD1306::Medium); // set working frequency 00030 lcd.init(); 00031 lcd.set_contrast(200); 00032 lcd.cls(); // clear frame buffer 00033 lcd.locate (1,0); // set text cursor to line 3, column 1 00034 lcd.printf (" MONITOR BATERIA"); // print to frame buffer 00035 00036 //*********************Calculo Divisor AD8210*********************************// 00037 while(1) { 00038 v_lido= tensao; 00039 a_lido = corrente; 00040 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 00041 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) 00042 00043 //****************************************************************************** 00044 00045 00046 00047 00048 lcd.locate (3,0); 00049 lcd.printf ("VOLTS: %1.2f",v_lido); // print to frame buffer 00050 00051 lcd.locate (5,0); 00052 lcd.printf ("Corrente: %1.2f",a_lido); // print to frame buffer 00053 00054 wait(0.5); 00055 00056 lcd.redraw(); 00057 } 00058 00059 } 00060 00061
Generated on Thu Aug 25 2022 13:40:09 by 1.7.2