import time
import board
import analogio
# --- Paraméterek ---
VREF = 3.3 # ADC referenciafeszültség (V)
RA = 10000.0 # RA = 10 kΩ
# --- ADC inicializálás ---
# Pico-n: A0 = GP26
adc = analogio.AnalogIn(board.A0)
def read_voltage():
"""
ADC érték -> feszültség (V)
analog_in.value: 0..65535 -> 0..VREF
"""
return adc.value * (VREF / 65535.0)
def calc_rb_from_voltage(v_adc):
"""
V_ADC és RA ismeretében kiszámoljuk RB-t.
RB = RA * V_ADC / (Vref - V_ADC)
Vigyázunk, hogy ne osszunk nullával.
"""
if v_adc <= 0.0:
return None
if v_adc >= VREF:
return None
#rb = RA * v_adc / (VREF - v_adc)
rb = v_adc
return rb
print("RB meres indul... (RA = 10 kOhm)")
print("Nyomd meg a resetet, ha ellenállást cserélsz.")
print()
while True:
samples = 16
acc = 0.0
for _ in range(samples):
acc += read_voltage()
time.sleep(0.001) # pici várakozás két minta között
v_adc = acc / samples
rb = calc_rb_from_voltage(v_adc)
if rb is None:
print("Hiba: a mért feszültség érvénytelen (0 vagy 3.3 V körüli).")
else:
print("U_ADC = {:.3f} V, RB ≈ {:.1f} ohm (≈ {:.2f} kΩ)".format(
v_adc, rb, rb / 1000.0
))
# másodpercenként kétszer: 0.5 s-onként frissítés
time.sleep(0.5)