A microcontroller is a compact integrated circuit designed to govern a specific operation in an embedded system. It contains a processor core, memory, and programmable input/output peripherals on a single chip.
Popular families include Arduino (ATmega), ESP32, STM32, PIC, and Raspberry Pi Pico (RP2040).
Microcontroller Architecture
Core Components
CPU: Executes program instructions (8-bit, 16-bit, or 32-bit)
Flash Memory: Stores program code (non-volatile)
RAM: Temporary data storage during execution
EEPROM: Stores configuration data that persists
Clock: Internal or external oscillator for timing
Peripherals
GPIO: General Purpose Input/Output pins
ADC: Analog-to-Digital Converter
DAC: Digital-to-Analog Converter
Timers: For delays, PWM, and event counting
UART, SPI, I2C: Communication protocols
PWM: Pulse Width Modulation outputs
Digital I/O Operations
Input Configuration
Reading digital signals (buttons, switches, sensors):