The NXT-Tester is an Arduino-based project for testing LEGO NXT sensors and motors using a Bricktronics Shield. It features a user-friendly menu system navigated via a rotary encoder with a push-button switch, displayed on a 16x2 LCD. The project supports testing touch, sound, light, ultrasonic, and servo motor components, with real-time feedback on the LCD.
- Menu Navigation: Select tests using a rotary encoder with a push-button switch.
- Sensor Tests:
- Touch Sensor: Detects presses within a 10-second countdown.
- Sound Sensor: Measures sound levels over 10 samples.
- Light Sensor: Measures light intensity over 10 samples.
- Ultrasonic Sensor: Measures distance with retry logic, up to 10 samples.
- Servo Motor: Tests forward and backward motion at 50% speed, displaying encoder positions.
- LCD Display: Shows test status, sensor readings, and countdowns on a 16x2 LCD.
- Reliable Controls: Debounced encoder (10ms) and switch (100ms) for smooth navigation and input.
- Interrupt Management: Detaches encoder interrupts during tests to prevent conflicts.
- Arduino Board: Compatible with Bricktronics Shield (e.g., Arduino Uno).
- Bricktronics Shield: Interfaces with NXT sensors and motors.
- NXT Sensors:
- Touch Sensor (connected to SENSOR_1).
- Sound Sensor (connected to SENSOR_2).
- Light Sensor (connected to SENSOR_3).
- Ultrasonic Sensor (connected to SENSOR_4).
- NXT Motor: Connected to MOTOR_1 for servo testing.
- LCD: 16x2 LCD (connected to pins 11, 7, 3, 4, 5, 6 for RS, EN, D4, D5, D6, D7).
- Rotary Encoder with Push-Button:
- CLK: Pin 2
- DT: Pin 12
- SW: Pin 13 (with external 10k pull-up resistor to 5V).
- Optional: 4.7k pull-up resistors or 100nF capacitors for CLK/DT if noise occurs.
- Arduino IDE: For compiling and uploading the code.
- Libraries:
- BricktronicsShield
- BricktronicsButton
- BricktronicsSound
- BricktronicsLight
- BricktronicsUltrasonic
- BricktronicsMotor
- LiquidCrystal (built-in with Arduino IDE).
- Clone the Repository:
git clone https://github.com/your-username/NXT-Tester.git