Expand description
§embassy-rp-gl5528
Driver async no_std minimaliste pour la photorésistance GL5528 (LDR)
sur microcontrôleur RP2040 et RP235x, basé sur le framework Embassy.
§Description du composant
La GL5528 est une photorésistance (LDR — Light Dependent Resistor) dont la résistance varie entre ~1 kΩ (forte lumière) et ~10 MΩ (obscurité totale). Elle est typiquement utilisée dans un diviseur de tension avec une résistance fixe (10 kΩ recommandée) pour convertir la variation de résistance en tension lisible par un ADC.
§Schéma de câblage
3.3V
│
[GL5528]
│
├──── GP26 (ADC0)
│
[R 10kΩ]
│
GNDLa tension sur la broche ADC augmente avec la luminosité (la GL5528 devient moins résistante, le point milieu monte vers 3,3 V).
§Exemple d’utilisation
#![no_std]
#![no_main]
use embassy_executor::Spawner;
use embassy_rp::adc::{Adc, Channel, Config as AdcConfig};
use embassy_rp::bind_interrupts;
use embassy_rp::peripherals::ADC;
use embassy_rp::adc::InterruptHandler;
use embassy_rp_gl5528::Gl5528;
bind_interrupts!(struct Irqs {
ADC_IRQ_FIFO => InterruptHandler;
});
#[embassy_executor::main]
async fn main(_spawner: Spawner) {
let p = embassy_rp::init(Default::default());
let adc = Adc::new(p.ADC, Irqs, AdcConfig::default());
let channel = Channel::new_pin(p.PIN_26, embassy_rp::gpio::Pull::None);
let mut sensor = Gl5528::new(adc, channel);
loop {
let raw = sensor.read_raw().await;
// Valeur entre 0 (obscurité) et 4095 (pleine lumière sur 12 bits)
let _ = raw;
}
}§Calcul de luminosité
La valeur brute ADC peut être convertie en tension (ex: 12 bits sur RP2040, 14 bits sur RP235x) ::
V = raw × 3.3 / MAX (4095 ou 16383)La résistance de la LDR s’en déduit (diviseur de tension, R_pull = 10 kΩ) :
R_ldr = R_pull × V / (3.3 - V)§Caractéristiques
| Paramètre | Valeur |
|---|---|
| Tension d’alimentation | 3,3 V (RP2040 / RP235x) |
| Résolution ADC | 12 bits (0–4095) et 14 bits sur RP235x |
| Résistance lumière | ~1 kΩ @ 10 lux |
| Résistance obscurité | ~1 MΩ minimum |
| Résistance de tirage | 10 kΩ recommandée |
§no_std
Cette crate ne dépend pas de la bibliothèque standard et est conçue pour tourner sur des microcontrôleurs bare-metal avec le runtime Embassy.
Structs§
- Gl5528
- Driver pour la photorésistance GL5528 via l’ADC du RP2040.