Explain UART, SPI, and I2C protocols
### UART (Universal Asynchronous Receiver/Transmitter)
- **Function**: Serial communication protocol that transmits data asynchronously (without a clock signal).
- **Features**: Uses two wires (TX for transmit, RX for receive), typically configured for point-to-point communication.
- **Applications**: Common in serial ports, GPS modules, and Bluetooth devices.
### SPI (Serial Peripheral Interface)
- **Function**: Synchronous serial communication protocol for short-distance communication.
- **Features**: Uses four wires (MOSI for master-out slave-in, MISO for master-in slave-out, SCK for clock, and SS for slave select), supports multiple devices on the same bus.
- **Applications**: Used in SD cards, sensors, and displays.
### I2C (Inter-Integrated Circuit)
- **Function**: Synchronous serial communication protocol for communication between multiple devices over a two-wire bus.
- **Features**: Uses two wires (SDA for data, SCL for clock), supports multiple devices with unique addresses on the same bus.
- **Applications**: Common in sensors, EEPROMs, and real-time clocks.
These protocols are used for different types of communication needs in embedded systems and electronic devices.