This is an old revision of the document!
Constantinescu Radu - Multifunctional Windshield Wiper
Introduction
This project describes a smart windshield/window wiper that can be actioned both manually and automatically when it detects that the surface is wet enough. It has a display to indicate the wetness, a button to switch between automatic and manual mode and a button for manual mode that activates the wiper.
General Description
List of Components
1. Arduino UNO
2. Push Buttons
3. Servo Motor
4. LCD Display
5. LED
6. Buzzer
1. Arduino UNO acts as the central unit that coordinates all modules, processes inputs, and controls outputs.
2. Buttons allow the user to control the operation mode and the wiper speed.
3. Servo Motor simulates the movement of the wipers, being controlled via PWM from the Arduino.
4. LCD Display shows information about the current state and operating mode.
5. LED provides visual feedback about the system's operation.
6. Buzzer delivers audible alerts during mode changes or when errors occur.
Hardware Design
Diagram
Electric Scheme
Bill of Materials
Components Description
Arduino UNO R3 - the microcontroller used;
Push Button - basic arduino buttons used for changing the mode or actioning the wiper
Servo motor SG90 - servo motor used for actioning the wipper
ADIY Sensor - used for mesuring the humidity of the windshield
Passive buzzer - used to alert the user that the wipper is working
LCD Display - used to indicate the mode
Arduino Pins:
A0 – used for analog reading of the water sensor value
A4/A5 – used for connecting the SDA/SCL lines of the LCD
2 – pin used for the mode change button
3 – pin used for the wiper activation button in manual mode
5 – used for PWM signal to control the buzzer
9 – used for the servo motor
Gallery
Software Design
Descrierea codului aplicaţiei (firmware):
mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
librării şi surse 3rd-party (e.g. Procyon AVRlib)
algoritmi şi structuri pe care plănuiţi să le implementaţi
(etapa 3) surse şi funcţii implementate
Develompent Environment
The development environment used for this project was the Arduino IDE, which is easy to use, but also offers support for writing code using the registers and interfaces supported by the Arduino UNO.
External Libraries
Library | Used for | Required because |
Servo.h | Controlling the servo motor | Rotating/Moving a servo motor |
avr/interrupt.h | Low-level interrupt control | Using ISR() and hardware registers |
Wire.h | I2C communication | LCD is connected via I2C |
LiquidCrystal_I2C.h | Displaying text on the LCD | High-level LCD control over I2C |
Used Interfaces - Lab Usage
ISR - when actioning a button, an interruption is triggered
PWM - for actioning the buzzer
I2C - for dsiplaying the state
USART - for debugging and console information
Source Code
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF