This repository contains the source code and simulation files for a wireless LED Matrix controller. The system uses two PIC16F887 microcontrollers to read analog joystick data, transmit it wirelessly via a 433 MHz RF module using the NEC Protocol, and display the corresponding directional animations on an 8x8 LED Matrix driven by a MAX7219.
This was developed as a comprehensive embedded systems project, focusing on raw microcontroller programming, custom protocol implementation, and hardware-level communication.
The system is strictly divided into two autonomous nodes:
1. Transmitter Node (rf_transmitter.c)
- Reads horizontal and vertical physical movements from a Joystick (via analog pins AN0 & AN1).
- Digitizes the signals using the PIC's internal 10-bit ADC.
- Maps the coordinates and encodes them into a 32-bit custom NEC signal.
- Transmits the encoded signal wirelessly via the 433 MHz RF TX module.
2. Receiver Node (rf_receiver.c)
- Listens for incoming RF signals using External Interrupts and Timer1 to decode the NEC protocol.
- Extracts the 32-bit command to determine the joystick's position.
- Drives the 8x8 LED Matrix via the MAX7219 IC.
- Technical Highlight: The SPI communication with the MAX7219 is entirely bit-banged in software within the receiver code.
- Microcontroller: PIC16F887 (8 MHz internal oscillator)
- Programming Language: Embedded C (CCS C Compiler)
- Wireless Protocol: Custom NEC Protocol implementation over 433 MHz RF
- Hardware Interfacing: ADC (Joystick/Potentiometer), MAX7219 (LED Matrix)
- Embedded Concepts: Interrupt Service Routines (ISR), Timer Management, Bit-banging (Software SPI).
- Simulation: Proteus (ISIS)
- Compile
rf_transmitter.candrf_receiver.cseparately using the CCS C Compiler. - Ensure the device fuse configurations (oscillator, MCLR) match the
.hdefinitions. - Open the Proteus simulation file. Load the compiled
.hexfiles into the respective PIC16F887 microcontrollers. - Run the simulation. Moving the joystick (represented by potentiometers in the simulation) will change the animations on the LED matrix.
Feyzullah Umut Üşenmez Mechatronics Engineering Student @ YTU Focus Areas: Autonomous Systems, Computer Vision, Embedded AI
