Deoarece mi-am dorit să folosesc în viața de zi cu zi proiectul pe care îl fac, m-am decis să construiesc un dozator de băuturi.
Dozatorul va umple paharul automat atunci când se detectează că acesta e in poziția corectă și se va opri atunci când paharul este plin.
Cred că este util pentru toată lumea deoarece este mai confortabil să îți umple paharul cu precizie un dozator decât să îți torni singur băutura în pahar. De asemenea, ar trebui să prevină și accidentele de neîndemânare (de exemplu, răsturnatul paharului atunci cand vrem să îl umplem).
Atunci când se apasă pe buton, senzorul ultrasonic va trimite către Arduino distanța la care se află paharul, și se va verifica dacă acesta este pus în pozitie (adica dacă se află într-o distanță limită față de senzor). Dacă se află în poziție ok, se va afișa pe ecran un mesaj cum că dozatorul începe să toarne băutura și plăcuța Arduino va porni pompa de apă pentru un timp definit ( volumul paharului / debitul pompei) folosind un timer. După ce paharul a fost umplut, pe ecran se va afișa un mesaj sugestiv.
Componentă | Cantitate | Descriere |
---|---|---|
Plăcuță Arduino Uno R3 | 1 | Placuta care controleaza celelalte piese |
Ecran LCD 1602 I2C | 1 | Afișează mesaje sugestive legate de procesul de umplere al paharului |
Buton | 1 | Declanșează începerea umplerii paharului |
Rezistor 1.8KΩ | 1 | Sa functioneze corect butonul |
Pompă de apă 3-6V | 1 | Responsabila pt a transfera apă din sticlă în pahar |
Breadboard 400 puncte | 1 | Rol de conectare a pieselor |
Fire jumper | x | Rol de conectare a pieselor |
Modul releu 1 canal | 1 | Ajută la conectarea pompei de apă la Arduino și la baterie |
Senzor ultrasonic HC-SR04 | 1 | Detectează dacă există un pahar în care să se toarne apă |
Dioda 1N4001 | 2 | Asigura trecerea curentului intr-o singura directie si previne zgomotul produs de pompa |
Socket baterii 4xAA | 1 | Alimenteaza pompa de apa |
Socket baterie 9v | 1 | Alimenteaza placa Arduino |
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
initializeaza ecranul lcd LiquidCrystal_I2C lcd(0x27, 16, 2); decrarare pini componente const int trigPin = 13; const int echoPin = 12; const int relayPin = 7; const int buttonPin = 2;
declarare variabile ajutatoare long duration; int distance; int buttonState = 0; void setup() { initializare lcd
lcd.init(); lcd.backlight();
Serial.begin(9600);
// initializare senzor ultrasonic pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT);
// initializare releu pinMode(relayPin, OUTPUT); digitalWrite(relayPin, HIGH);
// initializare buton pinMode(buttonPin, INPUT);
}
void loop() {
// citeste state-ul butonului buttonState = digitalRead(buttonPin);
// daca se apasa pe buton if (buttonState == HIGH) {
// se calculeaza distanta la care se afla paharul // cu ajutorul senzorului ultrasonic digitalWrite(trigPin, LOW); delayMicroseconds(2);
digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
// afiseaza distanta pe lcd lcd.clear(); lcd.setCursor(0, 0); lcd.print("Distance: "); lcd.print(distance); lcd.print(" cm");
Serial.print("Distance: "); Serial.print(distance); Serial.println(" cm");
// verifica daca paharul se afla in distanta dorita if (distance <= 5) { // activeaza releul (adica porneste pompa) digitalWrite(relayPin, LOW);
// afiseaza un mesaj sugestiv pe ecran lcd.setCursor(0, 1); lcd.print("se umple");
// timer pana se umple un pahar (6s) delay(6000);
// dupa trecerea timpului se dezactiveaza releul digitalWrite(relayPin, HIGH); } else {
// daca nu se afla pahar in distanta dorita // se afiseaza un mesaj lcd.setCursor(0, 1); lcd.print("nu umple"); delay(1000); } delay(500); } else { // daca nu se apasa pe buton se afiseaza pe ecran // un mesaj de idle lcd.clear(); lcd.setCursor(0, 0); lcd.print("Idle"); delay(500); }
}
A fost interesant sa realizez proiectul. Am invatat cum sa conectez diferite componente hardware intre ele si cum sa le controlez. Mi-am dat seama ca un astfel de proiect trebuie planificat foarte bine si ca piesele trebuie atent studiate deoarece pare ca fac acelasi lucru si sunt asemanatoare, de fapt, nu e chiar asa.
RESURSE: