Arduino UNO-Based Ultrasonic Alcohol Dispenser with Water Pump
View and Edit Project In Cirkit Designer
Circuit Documentation
Summary
This circuit is an alcohol dispenser system that uses an ultrasonic sensor to detect the presence of a hand and activates a water pump to dispense alcohol. The system is controlled by an Arduino UNO microcontroller.
Component List
Ultrasonic Sensor
- Description: Measures distance by using ultrasonic waves.
- Pins: +VCC, Trigger, Echo, GND
Arduino UNO
- Description: Microcontroller board based on the ATmega328P.
- Pins: UNUSED, IOREF, Reset, 3.3V, 5V, GND, Vin, A0, A1, A2, A3, A4, A5, SCL, SDA, AREF, D13, D12, D11, D10, D9, D8, D7, D6, D5, D4, D3, D2, D1, D0
Resistor
- Description: Limits the current flow in the circuit.
- Pins: pin1, pin2
- Properties:
- Resistance: 200 Ohms
Battery 12V
- Description: Provides power to the circuit.
- Pins: +, -
NPN-Transistor
- Description: Acts as a switch to control the water pump.
- Pins: E, C, B
5V Mini Water Pump
- Description: Dispenses alcohol when activated.
- Pins: positive pin, negative pin
Wiring Details
Ultrasonic Sensor
- +VCC: Connected to Arduino UNO 3.3V
- Trigger: Connected to Arduino UNO D5
- Echo: Connected to Arduino UNO D4
- GND: Connected to Arduino UNO GND
Arduino UNO
- 3.3V: Connected to Ultrasonic Sensor +VCC
- D5: Connected to Ultrasonic Sensor Trigger
- D4: Connected to Ultrasonic Sensor Echo
- GND: Connected to Ultrasonic Sensor GND
- D6: Connected to Resistor pin2
- 5V: Connected to NPN-Transistor B
Resistor
- pin1: Connected to NPN-Transistor C
- pin2: Connected to Arduino UNO D6
Battery 12V
- +: Connected to 5V Mini Water Pump positive pin
- -: Connected to NPN-Transistor B and Arduino UNO 5V
NPN-Transistor
- E: Connected to 5V Mini Water Pump negative pin
- C: Connected to Resistor pin1
- B: Connected to Battery 12V - and Arduino UNO 5V
5V Mini Water Pump
- positive pin: Connected to Battery 12V +
- negative pin: Connected to NPN-Transistor E
Documented Code
// ALCOHOL DISPENSER
#define trigger 5
#define echo 4
#define Relay 6
float time = 0, distance = 0;
void setup() {
Serial.begin(9600);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(Relay, OUTPUT);
delay(200);
}
void loop() {
measure_distance();
Serial.println(distance);
if (distance < 5) {
digitalWrite(Relay, HIGH);
} else {
digitalWrite(Relay, LOW);
}
delay(100);
}
void measure_distance() {
digitalWrite(trigger, LOW);
delayMicroseconds(2);
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
delayMicroseconds(2);
time = pulseIn(echo, HIGH);
distance = time * 200 / 20000;
}
This code is for the Arduino UNO microcontroller and is responsible for measuring the distance using the ultrasonic sensor and controlling the water pump based on the measured distance.