analogique_lumiere.py
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)