🛠 Lire un capteur analogique sur le convertisseur 10 bits
Objetivos
Leer un sensor analógico (potenciómetro) en la entrada A0, comprender el convertidor analógico-digital de 10 bits (0 a 1023) del ATmega32U4 y controlar un LED mediante PWM en uno de los 7 pines PWM (3, 5, 6, 9, 10, 11, 13).
Material
- 1 Arduino Micro
- 1 potenciómetro de 10 kΩ (extremos en 5V y GND, cursor en A0)
- 1 LED + resistencia de 220 a 470 Ω en el pin 9
- Cable micro-USB
Código completo
// Potentiometre sur A0 -> LED PWM sur broche 9.
// ADC 32U4 : 10 bits (0..1023) ; analogWrite : 8 bits (0..255), donc >> 2.
const uint8_t KNOB = A0;
const uint8_t LED = 9; // broche PWM : 3,5,6,9,10,11 ou 13
void setup {
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop {
int brut = analogRead(KNOB); // 0..1023
analogWrite(LED, brut >> 2); // 0..255
Serial.println(brut);
delay(10);
}
Verificación esperada
Al girar el potenciómetro, el valor mostrado pasa de 0 a 1023 y el LED se enciende progresivamente. A media carrera, se lee aproximadamente 512.
Errores frecuentes
- Aplicar un valor de 0-1023 a analogWrite: los valores superiores a 255 se truncan y el LED permanece encendido al máximo. Recuerda dividir entre 4 (>> 2).
- Conectar el LED a un pin no PWM (por ejemplo, el 4): no hay variación, el LED solo parpadea.
- Confundir A0 con el pin digital 0: el pin 0 es la entrada RX de Serial1 (UART TTL).
- Necesitar más canales: A6 a A11 comparten función con los pines digitales 4, 6, 8, 9, 10, 12 (12 canales en total, frente a 6 en el Uno).
Otros tutoriales para esta placa
- Faire clignoter la LED embarquée (et comprendre les LED TX/RX)
- Lire un bouton avec une résistance de pull-up interne
- Transformer le Micro en clavier USB (HID) avec bouton de sécurité
- Pont Serial vers Serial1 : passerelle USB vers TTL
- Piloter un servo moteur avec le PWM et un potentiomètre
- Sortir des sentiers : registres AVR et interruption externe
Ejemplos de código para esta placa
clignotante.inoArduinobouton-led.inoArduinoclavier-auto-tape.inoArduinosouris-cercle.inoArduinotelecommande-media.inoArduinobouton-clic-souris.inoArduino