Máy rửa tay
Máy rửa tay
Linh kiện: Arduino Uno, Ir Obstacle Sensor, L298, Led-red, Led-green, Lm016L, Logicstate, Motor, Res, Srf04.
Mô hình:
Proteus:
Arduino IDE:
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
#define Bomnuoc 10
#define Bomdd 11
#define hongngoai1 12
#define hongngoai2 13
#define trigger 8
#define echo 9
#define Denbaohet A0
#define Denbaocon A5
float khoangcach;
float mucdd = 0;
float tgian = 0;
void setup() {
// put your setup code here, to run once:
lcd.begin(16, 2);
pinMode(Bomnuoc, OUTPUT);
pinMode(Bomdd, OUTPUT);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(hongngoai1, INPUT_PULLUP);
pinMode(hongngoai2, INPUT_PULLUP);
lcd.print("May rua tay");
delay(2000);
}
// tính khoảng cách siêu âm trong bể
void tinhkhoangcach(){
digitalWrite(trigger, LOW);
delayMicroseconds(2);
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
delayMicroseconds(2);
tgian = pulseIn(echo, HIGH);
mucdd = 150 - (tgian*347*100/1000000/2);
}
// điều khiển máy bơm bằng cách đọc khoảng cách cảm biến hồng ngoại cài giá trị dựa trên biến trở của cảm biến, trả về 1 hoặc 0
void dieukhienmaybomnuoc(){
while(digitalRead(hongngoai1) == 1){
digitalWrite(Bomnuoc, HIGH);
}
digitalWrite(Bomnuoc, LOW);
}
void dieukhienmaybomdd(){
if(digitalRead(hongngoai2) == 1){
digitalWrite(Bomdd, HIGH);
delay(5000);
digitalWrite(Bomdd, LOW);
}
}
void dieukhiendenbao(){
if(mucdd < 30){
analogWrite(Denbaohet, 1023);
analogWrite(Denbaocon, 0);
}else{
analogWrite(Denbaohet, 0);
analogWrite(Denbaocon, 1023);
}
}
void loop() {
// put your main code here, to run repeatedly:
tinhkhoangcach();
dieukhiendenbao();
lcd.setCursor(0, 1);
lcd.print("Muc dd: ");
lcd.print(mucdd);
lcd.print("cm");
dieukhienmaybomnuoc();
dieukhienmaybomdd();
}