from time import sleep, ticks_ms
from machine import ADC
#from oled_plot import plot
from machine import Pin
import math
button_pressed = False
last_button_time_stamp = 0
def int_handler(pin):
global button_pressed
global last_button_time_stamp
current_button_time = ticks_ms()
button_press_delta = current_button_time - last_button_time_stamp
if button_press_delta > 200:
last_button_time_stamp = current_button_time
button_pressed = True
# print(f'key pressed')
def main():
global button_pressed
ntc = machine.ADC(Pin(26))
MEASUREMENT_COUNT=16
ADC_RANGE = float((math.pow(2, 16) - 1))
button_1 = Pin(15, Pin.IN, Pin.PULL_UP)
button_1.irq(trigger=Pin.IRQ_FALLING, handler=int_handler)
while True:
if button_pressed is True:
button_pressed = False
# Read ADC digital output
digital_val = ntc.read_u16()
total_value = 0
# Calculate analog value
for _ in range(MEASUREMENT_COUNT):
total_value += ntc.read_u16()
average_value = total_value // MEASUREMENT_COUNT
temp = round(1 / (math.log(1 / (ADC_RANGE / average_value - 1)) / 3950 + 1.0 / 298.15) - 273.15, 1)
# Plot analog value
#plot(temp)
print(temp)
# sleep(.05)
if __name__ == "__main__":
main()