from machine import Pin, ADC, Timer from time import sleep import LCD flag = 1 T = 1 def tick(timer): global flag flag = 1 Time = Timer() Time.init(freq=1/T, mode=Timer.PERIODIC, callback=tick) a2d2 = ADC(2) kV = 3.3 / 65535 Beeper = Pin(13,Pin.OUT) file1 = open("BatteryAAA_2.txt", "a") file1.write('----------------------\n') file1.write('Minutes Volts Joules\n') Volts = 9 Navy = LCD.RGB(0,0,5) LtGreen = LCD.RGB(100,250,50) Yellow = LCD.RGB(250,250,0) Orange = LCD.RGB(250,150,50) Red = LCD.RGB(250,50,50) Plum = LCD.RGB(200,50,150) White = LCD.RGB(200,200,200) LCD.Init() LCD.Clear(Navy) time = 0 Watts = 0 Joules = 0 mAh = 0 LCD.Box(2,2,478,318,White) LCD.Title('AAA Battery', White, Navy) LCD.Text2('Seconds',30,60, LtGreen, Navy) LCD.Text2('Volts',30,100,Yellow,Navy) LCD.Text2('Watts',30,140,Orange,Navy) LCD.Text2('Joules',30,180,Red,Navy) LCD.Text2('mAh', 30, 220, Plum, Navy) while((time < 10) | (Volts > 0.5)): while(flag == 0): pass flag = 0 Volts = (a2d2.read_u16() * kV) Watts = Volts * Volts / 10 Joules += Watts * T mAh += Volts / 36 if(( int(time) % 60) == 0): file1.write(str('{: 7.1f}'.format(time/60))) file1.write(str('{: 10.3f}'.format(Volts))) file1.write(str('{: 10.3f}'.format(Joules))) file1.write(str('{: 10.3f}'.format(mAh))) file1.write("\n") LCD.Number2(time, 9, 1, 200, 60, LtGreen, Navy) LCD.Number2(Volts, 9, 3, 200, 100, Yellow, Navy) LCD.Number2(Watts, 9, 3, 200, 140, Orange, Navy) LCD.Number2(Joules, 9, 3, 200, 180, Red, Navy) LCD.Number2(mAh, 9, 3, 200, 220, Plum, Navy) time += T file1.write('\n') file1.write('Final Results') file1.write('\n') file1.write(str('{: 10.1f}'.format(time)) + ' seconds') file1.write('\n') file1.write(str('{: 10.3f}'.format(Volts)) + ' Volts') file1.write('\n') file1.write(str('{: 10.3f}'.format(Joules)) + ' Joules') file1.write('\n') file1.close() LCD.Text2('Done',50,260, Yellow, Navy) print('Done') while(0): Beeper.value(1) sleep(0.1) Beeper.value(0) sleep(0.9)