Project

General

Profile

calcular_r0.py

Este codigo sirve para poder calibrar los sensores - lukas torres, 01/02/2026 03:02 PM

Download (1.11 KB)

 
1
import grovepi
2
import time
3
import math
4

    
5
RL_VALUE = 10000.0 # Resistencia de Carga (GrovePi)
6

    
7
def get_RS_resistance(analog_value):
8
    if analog_value == 0: return float('inf') 
9
    return RL_VALUE * ((1023.0 / analog_value) - 1.0)
10

    
11
# --- CONFIGURACIÓN DE CALIBRACIÓN ---
12
# DEBES CAMBIAR ESTOS DOS VALORES para cada sensor
13
CALIBRATION_PIN = 2      # 0 para MQ-7 (A0), 1 para MQ-4 (A1), 2 para MQ-135 (A2)
14
FACTOR_RS_R0_CLEAN = 3.6  # 27.0 para MQ-7, 4.4 para MQ-4, 3.6 para MQ-135
15
# ------------------------------------
16

    
17
NUM_READINGS = 20
18
print(f"--- INICIANDO CÁLCULO DE R0 en A{CALIBRATION_PIN} ---")
19

    
20
grovepi.pinMode(CALIBRATION_PIN, "INPUT")
21
sum_rs = 0
22

    
23
for i in range(NUM_READINGS):
24
    try:
25
        analog_val = grovepi.analogRead(CALIBRATION_PIN)
26
        rs = get_RS_resistance(analog_val)
27
        sum_rs += rs
28
        print(f"Lectura {i+1}/{NUM_READINGS}: RS = {rs:.2f} Ohmios")
29
        time.sleep(2)
30
    except:
31
        print("Error de lectura.")
32

    
33
rs_avg_clean = sum_rs / NUM_READINGS
34
R0_CALCULADO = rs_avg_clean / FACTOR_RS_R0_CLEAN
35

    
36
print("\n--- ¡R0 CALCULADO! ---")
37
print(f"VALOR R0 (FINAL): {R0_CALCULADO:.2f} Ohmios")