analogique_lumiere.py

Adafruit Feather nRF52840 Express · Archivo : analogique_lumiere.py · Lenguaje : Python · Uso : Mesurer la lumière avec une entrée analogique

La entrada A0 de la Feather lee 0-3,3 V en 16 bits: con un divisor fotorresistencia / 10 kΩ, el script calcula el voltaje y decide día/noche. analogio devuelve un valor de 16 bits directamente, cómodo para umbralizar sin mates.

Hardware

Una Adafruit Feather nRF52840 Express (nRF52840, BLE 5) con NeoPixel, LED rojo, 2 MB de flash QSPI para CircuitPython y conector LiPo. Una fotorresistencia (LDR) y una resistencia de 10 kΩ para el divisor; cualquier otra fuente de 0-3,3 V vale para probar.

Cableado

3V3 → fotorresistencia → pin A0 → 10 kΩ → GND. El punto medio va a A0. Nunca más de 3,3 V en A0, el ADC es de 3,3 V.

Funcionamiento

AnalogIn(board.A0).value muestrea y escala a 0-65535; convertir a voltios es trivial y el umbral compara el valor crudo para disparar la lógica de noche.

Ejecución

CircuitPython (build feather_nrf52840_express) vía bootloader UF2 (doble reset); editar code.py en la unidad CIRCUITPY.

Variantes

Sustituir la LDR por un sensor de flexión o de luz ambiente, promediar N lecturas, o manejar el NeoPixel según la luminosidad.

analogique_lumiere.py

# Photorésistance sur A0 : lecture 16 bits et seuil crépusculaire.
# Circuit : 3V3 -- [photorésistance] -- A0 -- [10k] -- GND.
import time
import board
import analogio

entree = analogio.AnalogIn(board.A0)   # 0..65535 pour 0..3,3 V

SEUIL = 20000   # à ajuster : nuit tombante vers 20000 ici

while True:
    brut = entree.value                # déjà mis à l'échelle 16 bits
    volts = brut * 3.3 / 65535
    nuit = brut < SEUIL
    print(f"A0={brut} ({volts:.2f} V) ->",
          "NUIT" if nuit else "jour")
    time.sleep(0.5)

← Volver a la ficha