This shows you the differences between two versions of the page.
pm:prj2023:iotelea:usa_glisanta [2023/05/24 23:49] andreea.necula2102 [Download] |
pm:prj2023:iotelea:usa_glisanta [2023/05/30 01:56] (current) andreea.necula2102 [Jurnal] |
||
---|---|---|---|
Line 37: | Line 37: | ||
<note tip> | <note tip> | ||
Lista de piese: | Lista de piese: | ||
- | * Placă de dezvoltare compatibilă cu Arduino UNO (ATmega328p); | + | * **Placă de dezvoltare compatibilă cu Arduino UNO** (ATmega328p) ➢ Aceasta conține codul și trimite semnale către toate celelalte componente. Este alimentat la o tensiune de 9V.\\ |
- | * Breadboard; | + | * **Breadboard** ➢ Prin breadboard alimentăm senzorul PIR, driver-ul de motoare și senzorul fotoelectric și se realizează conexiunile între componente. |
- | * Micro motor cu reductor (240 rpm, cuplu = 0.2 kg*cm); | + | * **Micro motor cu reductor** (240 rpm, cuplu = 0.2 kg*cm) ➢ Elementul de acționare. El acționează ușa în direcția corespunzătoare. Este alimentat cu ajutorul driver-ului. |
- | * Driver de motoare; | + | * **Driver de motoare** ➢ Alimentează motorul, previne suprasolicitarea plăcii Arduino și controlează direcția motorului. Se alimentează la 9V (la borna denumită 12V) și are o cădere de tensiune de ~2V, deci îi va furniza motorului aproximativ 7V. Borna denumită 5V furnizează o tensiune de 5V. |
- | * Senzor PIR; | + | * **Senzor PIR** ➢ Realizează achiziția de date. Este alimentat la 9V. |
- | * Senzor fotoelectric; | + | * **Senzor fotoelectric** ➢ Detectează când ușa este închisă complet deschisă. Este alimentat la 5V. |
- | * Un led verde și un led roșu; | + | * **Un led verde și un led roșu** ➢ Indică dacă ușa este în curs de deschidere, respectiv închidere. |
- | * Alimentator de 9V (pentru Arduino) – alimentează placa Arduino si breadboard-ul; | + | * **Alimentator de 9V** (pentru Arduino) ➢ alimentează placa Arduino si breadboard-ul. |
- | * Rezistențe – limitează curentul prin diode; | + | * **Rezistențe** ➢ limitează curentul prin diode |
- | * Fire breadboard; | + | * **Fire breadboard** |
- | * Cablu USB pentru alimentarea plăcii Arduino; | + | * **Cablu USB pentru alimentarea plăcii Arduino** |
- | * Cremalieră pentru ușă; | + | * **Cremalieră pentru ușă** |
- | * Rotiță pentru motor; | + | * **Rotiță pentru motor** |
- | * Carton pentru construcția suportului și a ușii. | + | * **Carton pentru construcția suportului și a ușii** |
</note> | </note> | ||
Line 65: | Line 65: | ||
{{https://ocw.cs.pub.ro/courses/_media/pm/prj2023/iotelea/p3.png?300x250}}\\ | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2023/iotelea/p3.png?300x250}}\\ | ||
Usa se inchide\\ | Usa se inchide\\ | ||
- | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2023/iotelea/p4.png?300x250}} | + | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2023/iotelea/p4.png?300x250}}\\ |
- | ===== Software Design ===== | + | |
+ | ===== Software Design ===== | ||
+ | :-P În momentul în care senzorul de proximitate detectează mișcare, acesta transimte semnalul plăcuței Arduino, care, prin intermediul driver-ului, pornește motorul pentru a deschide ușa. În același timp, led-ul verde se aprinde, iar ușa se deschide până în momentul în care senzorul fotoelectric detectează prezența unui limitator lipit de ușă. Acest lucru reprezintă deschiderea completă a ușii.\\ \\ | ||
+ | :-P Usa rămâne deschisă cel puțin 3 secunde sau cât timp senzorul de proximitate detectează mișcare. În momentul în care senzorul nu mai detectează mișcare, ușa începe să se închidă, led-ul verde se va stinge, iar led-ul roșu se va aprinde.\\ \\ | ||
+ | :-P Dacă senzorul PIR detectează mișcare în timp ce ușa este în curs de închidere, atunci plăcuța Arduino va trimite semnal către driver să schimbe sensul de rotație al rotorului motorului. În același timp, led-ul roșu se va stinge, iar led-ul verde se va aprinde. În schimb, dacă senzorul PIR nu mai detectează mișcare ușa se va închide complet, iar led-ul roșu se va stinge.\\ | ||
<code> | <code> | ||
- | const int pin = 12; | + | //Cat timp senzor-ul fotoelectric nu detecteaza cremaliera, |
- | const int SENSOR = 8; | + | |
- | const int IN1 = 10; | + | |
- | const int IN2 = 9; | + | |
- | const int GREEN_LED = 3; | + | |
- | const int RED_LED = 4; | + | |
- | int first_open = 0; | + | |
- | int sensor_val = 0; | + | |
- | //0 = usa complet deschis | + | |
- | //1 = usa complet deschisa | + | |
- | bool door_state = 0; | + | |
- | long time_t; | + | |
- | void setup() { | + | |
- | pinMode(SENSOR, INPUT); | + | |
- | pinMode(IN1,OUTPUT); | + | |
- | pinMode(IN2,OUTPUT); | + | |
- | pinMode(pin,INPUT); | + | |
- | digitalWrite(IN1, LOW); | + | |
- | digitalWrite(IN2, LOW); | + | |
- | analogWrite(GREEN_LED, 0); | + | |
- | analogWrite(RED_LED, 0); | + | |
- | Serial.begin(9600); | + | |
- | } | + | |
- | void loop() { | + | |
- | sensor_val = digitalRead(SENSOR); | + | |
- | if(sensor_val == 1) { | + | |
- | //Cat timp senzor-ul fotoelectric nu detecteaza cremaliera, | + | |
//Motorul deschide usa | //Motorul deschide usa | ||
while(digitalRead(pin) == LOW) { | while(digitalRead(pin) == LOW) { | ||
Line 113: | Line 90: | ||
analogWrite(GREEN_LED, 0); | analogWrite(GREEN_LED, 0); | ||
analogWrite(RED_LED, 255); | analogWrite(RED_LED, 255); | ||
- | } else { | + | |
//Daca senzorul de miscare nu detecteaza nimic si daca senzorul | //Daca senzorul de miscare nu detecteaza nimic si daca senzorul | ||
//fotoelectric detecteaza prezenta cremalierei (usa complet deschisa) | //fotoelectric detecteaza prezenta cremalierei (usa complet deschisa) | ||
Line 132: | Line 109: | ||
} | } | ||
} | } | ||
- | } | + | |
- | delay(100); | + | |
- | } | + | |
</code> | </code> | ||
Line 149: | Line 124: | ||
</note> | </note> | ||
- | ===== Concluzii ===== | ||
===== Download ===== | ===== Download ===== | ||
Line 160: | Line 134: | ||
<note tip> | <note tip> | ||
- | :-P În momentul în care senzorul de proximitate detectează mișcare, acesta transimte semnalul plăcuței Arduino, care, prin intermediul driver-ului, pornește motorul pentru a deschide ușa. În același timp, led-ul verde se aprinde, iar ușa se deschide până în momentul în care senzorul fotoelectric detectează prezența unui limitator lipit de ușă. Acest lucru reprezintă deschiderea completă a ușii.\\ \\ | + | *26 aprilie - proiect ales |
- | :-P Usa rămâne deschisă cel puțin 3 secunde sau cât timp senzorul de proximitate detectează mișcare. În momentul în care senzorul nu mai detectează mișcare, ușa începe să se închidă, led-ul verde se va stinge, iar led-ul roșu se va aprinde.\\ \\ | + | *3 mai - relizarea documentației |
- | :-P Dacă senzorul PIR detectează mișcare în timp ce ușa este în curs de închidere, atunci plăcuța Arduino va trimite semnal către driver să schimbe sensul de rotație al rotorului motorului. În același timp, led-ul roșu se va stinge, iar led-ul verde se va aprinde. În schimb, dacă senzorul PIR nu mai detectează mișcare ușa se va închide complet, iar led-ul roșu se va stinge. | + | *5 mai - research piese |
+ | *8 mai - comandarea pieselor | ||
+ | *12 mai - hardware start | ||
+ | *19 mai - hardware stop | ||
+ | *20 mai - software start | ||
+ | *21 mai - software stop | ||
+ | *29 mai - wikiii :) | ||
</note> | </note> | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | https://www.youtube.com/watch?v=LGFWcVSd42E&ab_channel=MuhammadAnsar\\ |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe *Resurse Software* şi *Resurse Hardware*. | + | |
- | </note> | + | |
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> |