![]() ![]() ![]() The example code is very simple, and uses the adc_read function defined in the adc.h header: I have powered different ESP-01s from USB-UARTs, a 3.7 LiPo battery (running through an LDO to get the 3.23 V), and from raspberry pi pins (3.3V and 5V). The voltage never changes, never fluctuates. My input voltage as measured with a multimeter shows otherwise (plus the module is alive). Since the ADC is 10-bit, I am assuming the value is actually 0x010702 or 370 decimal. Problem is, the adc function reading is always 0x01010702 (4466). I can see the device stop as the voltage is decreased (as measured by an multimeter). The trimpot gives me the range 3.3V to 0. I have setup a test circuit that uses a voltage divider using a trimpot 10k and 20k resistor. ![]() It builds fine, then flashes, and monitors successfully. Specifically, I am using the adc example project from the peripherals section of the SDK installation. * Note: this is the internal system voltage measurement, not the external measurement which uses the TOUT pin. Thank you.I am trying to test the internal system voltage of an ESP-01, using the ESP8266_RTOS_SDK v3.4. If you have any comments, suggests, or feedback let me know in the comments below. ConclusionĮven though you can buy an 8S lithium battery monitor with probably more features, this one gives you more flexibility and also the confidence that its doing what it is suppose to do. Make sure not to include spaces as this will not calibrate if you do.Īfter the calibrate is complete, calibrated values are stored in EEPROM so that after power is removed then the board is still calibrated. The simplest way of calibrating each value is to measure each cell with a multimeter and write down the values. You can calibrate using the serial monitor with an FTDI board connected to the UART port of the cell monitor. Now before you can get accurate measured values, you need to calibration each ADC input to fix the offset from each IC. Once you are satisfied with your value then you can save the value by pressing the enter button and this will save to EEPROM so that its store permanently even after the power is removed. Using the up/down buttons you can increase or decrease the value by 0.05 increments. In order to change the values, navigate for example to the OVP value with the arrow and then click the enter button to enter the OVP value screen. Now even though I have the debounce circuit and a small software delay, the movement is still not smooth but it sufficient to operate. Once you are in the menu screen, you can navigate using the up and down buttons. ![]() In order to get into the menu screen you need to press the menu button and hold for about a second or two. In the control menu you are able to set the UVP value for cells and pack as well as the OVP value for cells and pack. But I will go over the important sections: Normally I would breakdown every section of the code but its too large to fully go through the code. See below for a snip-it of the schematic: I’ve decided to go with the ADS1119IPWR which is a 16-bit I2C adc. Now with 16-bit adcs, we have a resolution of 0.9mV/bit which is a huge increase. If we go with the internal adcs of the arduino, with a 10-Bit ADC we will only have resolution of 17mV/Bit. Since we need to step down the voltage from 30V max and need the best resolution possible. I’ve decided to go with two external 16-Bit adcs instead of the internal adcs of the arduino. Here we talk about the most important part of the project and that’s the ADC section. The main sections we will talk about are: Now here is were the fun part starts with the hardware used to create this DIY cell monitor. The main purpose this is designed for is to measure an 8S Lithium Iron Phosphate pack up to 1mV resolution. Fault detection: Over-voltage, Under-voltage.Voltage measurement resolution: 1mV accuracy.This project is open source and so you will have the ability to add features or change them. Its a very basic and not a lot of bells and whistles but still powerful enough to allow you to monitor cell voltages with accuracy and precision. Here we have an 8S arduino based voltage cell monitor that I designed to allow the user have control on how they monitor there batteries and how its displayed. Like all my other projects, I’ve decided to create my own custom version of a cell monitor. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |