from machine import ADC, Pin
import time

# --- CONFIGURATION DU CAPTEUR DE PRESSION NXP ---
capteur_pression = ADC(Pin(26)) # Connecté sur GP26 (ADC0)
V_S = 3.15                      # Votre tension de référence réelle (VS)
ADC_MAX = 65535

print(f"Lecture en temps réel avec la formule P = ((Vout/VS) - 0.04) / 0.09")
print("-" * 55)

while True:
    try:
        # 1. Lecture de la valeur brute (0 à 65535)
        valeur_brute = capteur_pression.read_u16()
        
        # 2. Calcul de Vout (la tension lue par le Pico entre 0 et 3.15V)
        v_out = (valeur_brute / ADC_MAX) * V_S
        
        # 3. Application de votre formule pour trouver P (en kPa)
        pression_kpa = ((v_out / V_S) - 0.04) / 0.000901
        
        # Sécurité pour éviter le bruit électrique négatif quand la pression est nulle
        if pression_kpa < 0: 
            pression_kpa = 0.0
            
        # Conversion en Pascals (Pa) pour afficher les petites variations
        pression_pa = pression_kpa * 1000
        
        # 4. Affichage des résultats dans la console Thonny
        print(f"Vout: {v_out:.3f}V | Pression: {pression_kpa:.3f} kPa ({pression_pa:.1f} Pa)")
        
    except OSError:
        print("Erreur de lecture du capteur.")
        
    # Pause de 0,5 seconde entre chaque mesure
    time.sleep(0.5)