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

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

source_code.zip

Results

Download

Resources

pm/prj2025/vstoica/rconstantinescu2006.txt · Last modified: 2025/05/30 02:48 by rconstantinescu2006
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0