INA219 I2C Zero Drift Bi-directional Current Power Supply Sensor Breakout Monitoring Module {{:raspberrypi:pasted:20170318-140102.png}} matuoja voltus ir amperus, galima nustatyti kiek naudoja jėgos tavo variklis ir ar toli baterijai iki mirties labai gerai valdosi su python instaliuoti biblioteka: sudo pip uninstall pi-ina219 sudo pip install pi-ina219 https://pypi.python.org/pypi/pi-ina219/1.1.0 Galima panaudoti matuoti baterijos talpą, ta ir bandau padaryti. Pajungiau apie 340 mA magneta kuris kaist po truputi ir valgo baterijos energija. Testuoju baterija: {{:raspberrypi:pasted:20170318-140859.png}} {{:raspberrypi:pasted:20170318-140251.png}} #!/usr/bin/env python from ina219 import INA219 from ina219 import DeviceRangeError from datetime import datetime import time, threading SHUNT_OHMS = 0.1 def read(): ina = INA219(SHUNT_OHMS) ina.configure() print "Bus Voltage: %.3f V" % ina.voltage() try: print "Bus Current: %.3f mA" % ina.current() print "Power: %.3f mW" % ina.power() print "Shunt voltage: %.3f mV" % ina.shunt_voltage() with open("curr_volt_read_log.csv", "a") as myfile: myfile.write(datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f') + "," + '%.3f' % ina.voltage() + "," + '%.3f' % ina.current() + "," + '%.3f' % ina.power() + "," + '%.3f' % ina.shunt_voltage() + '\n') except DeviceRangeError as e: # Current out of device range with specified shunt resister print e threading.Timer(1, read).start() if __name__ == "__main__": read() piesiai matlab: %% read temperature log file and plot chart fileID = fopen('\\aistis\pihome\home\pi\ina219\curr_volt_read_log.csv','r'); C = textscan(fileID,'%s %f %f %f %f','Delimiter',','); fclose(fileID); d.date = datenum(C{1},'yyyy-mm-dd HH:MM:SS.FFF'); d.voltage = C{2}; d.current = C{3}; d.power = C{4}; d.shunt_voltage = C{5}; figure(1);clf; title('NighKonic NCR18650 battery discharge'); subplot(3,1,1);plot(d.date,d.voltage);dynamicDateTicks;grid on; xlabel('time'); ylabel('voltage (V)'); subplot(3,1,2);plot(d.date,d.current);dynamicDateTicks;grid on; xlabel('time'); ylabel('current (mA)'); subplot(3,1,3);plot(d.date,d.power);dynamicDateTicks;grid on; xlabel('time'); ylabel('power (mW)');