'''Simulare un partitore resistivo utilizzando il componente
potenziometro e leggerne il valore di tensione in uscita mediante un
GPIO della board ESP32 oppurtamente configurato.'''
from machine import ADC, Pin
from time import sleep
#Configurazione dell'ADC con il pin 26, uno dei GPIO specifici per la
#conversione analogico-digitale
sensor=ADC(26)
#creo il pulsante e lo associo al pin 13
button=Pin(13, Pin.IN)
#Aggiorna il valore visualizzato periodicamente
while True:
d_val=sensor.read() #lettura del dato fornito in ingresso al pin
#conversione del valore digitale attraverso la formula
#Vm=ACDout*Vref/((2^k)-1); la scheda ESP32 ha una risoluzione a 12 bit,
#perciò 2^12 -1=4095
a_val=d_val*3.3/4095
print("Valore digitale: ", d_val, "\tTensione: ", a_val, 'V')
sleep(1)#per far acquisire un nuovo dato ogni secondo
#Aggiorna il valore visualizzato periodicamente solo mentre si tiene premuto il pulsante
while True:
button_state=button.value()
if button_state==1:
d_val=sensor.read() #lettura del dato fornito in ingresso al pin
a_val=d_val*3.3/4095 #conversione
print("Valore digitale: ", d_val, "\tTensione: ", a_val, 'V')
sleep(1)#per far acquisire un nuovo dato ogni secondo
#Aggiorna il valore visualizzato periodicamente solo mentre si tiene
#premuto il pulsante e fai in modo che si accenda un led in fase di lettura
led=Pin(33, Pin.OUT)
while True:
button_state=button.value()
if button_state==1:
d_val=sensor.read() #lettura del dato fornito in ingresso al pin
a_val=d_val*3.3/4095 #conversione
led.value(1)
sleep(0.2)
print("Valore digitale: ", d_val, "\tTensione: ", a_val, 'V')
sleep(1)#per far acquisire un nuovo dato ogni secondo
else:
led.value(0)
''''Fatto dal professore
while True:
#Lettura del dato fornito in ingresso al pin
val_d=sensor.read()
#Conversione
val_a=val_d*3.3/4095
print("Valore digitale:", val_d, "\tTensione:", val_a, "V")
#Acquisizione di un nuovo dato ad ogni secondo
sleep(1)
while True:
button_state = button.value()
if button_state == 1:
#Accensione del led
led.value(1)
#Lettura del dato fornito in ingresso al pin
val_d=sensor.read()
#Conversione
val_a=val_d*3.3/4095
print("Valore digitale:", val_d, "\tTensione:", round(val_a,2), "V")
#Acquisizione di un un nuovo dato ogni secondo
sleep(1)
else:
led.value(0)
'''''