This shows you the differences between two versions of the page.
|
pm:prj2024:ccontasel:george.vasilache [2024/05/26 00:17] george.vasilache [Rezultate Obţinute] |
pm:prj2024:ccontasel:george.vasilache [2024/06/05 18:53] (current) alex.moldoveanu0510 [Cooling Pad Laptop] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Cooling Pad Laptop ======= | ====== Cooling Pad Laptop ======= | ||
| - | Vasilache George-Florin -- 331CB | + | Moldoveanu Alex-Adrian 333CA |
| ===== Introducere ===== | ===== Introducere ===== | ||
| Line 65: | Line 66: | ||
| dht11.readTemperatureHumidity(temperature, humidity); | dht11.readTemperatureHumidity(temperature, humidity); | ||
| </file> | </file> | ||
| + | |||
| + | == Foto rezistenta + led rosu == | ||
| + | Global am declarat pin-ul pentru led si pentru fotorezistenta. | ||
| + | <file cpp global> | ||
| + | const int ledPin = 6; | ||
| + | const int fotoLedPin = A0; | ||
| + | </file> | ||
| + | |||
| + | In functia de setup am declarat pin-ul led-ului ca pin de output. | ||
| + | <file cpp setup> | ||
| + | // Setăm pinul LED-ului ca OUTPUT | ||
| + | pinMode(ledPin, OUTPUT); | ||
| + | </file> | ||
| + | |||
| + | In functia de loop am citit intr-o variabila ce inregistreaza fotorezistenta. | ||
| + | Iar daca valorea este mai mare de 600 atunci led-ul se poate aprinde. | ||
| + | <file cpp loop> | ||
| + | int value = analogRead(fotoLedPin); | ||
| + | |||
| + | if(value <= 600){ | ||
| + | digitalWrite(ledPin,HIGH); | ||
| + | }else{ | ||
| + | digitalWrite(ledPin,LOW); | ||
| + | } | ||
| + | </file> | ||
| + | |||
| + | == LCD == | ||
| + | Global am folosit functia de biblioteca pentru a initializa ecranul la adersa 0x3F. | ||
| + | <file cpp global> | ||
| + | LiquidCrystal_I2C lcd(0x3F,16,2); | ||
| + | </file> | ||
| + | |||
| + | In functia de setup() afisam pe ecran un mesaj de inceput. | ||
| + | <file cpp setup> | ||
| + | lcd.init(); | ||
| + | lcd.backlight(); | ||
| + | lcd.setCursor(0,0); | ||
| + | lcd.print("Hello, world!"); | ||
| + | lcd.setCursor(0,1); | ||
| + | lcd.print("Optimus Digital"); | ||
| + | |||
| + | delay(2000); | ||
| + | lcd.clear(); | ||
| + | </file> | ||
| + | |||
| + | In functia de loop afisam pe ecran temperatura inregistrata de senzor sub formatul de grade celsius. | ||
| + | <file cpp loop> | ||
| + | lcd.setCursor(0, 0); | ||
| + | lcd.print("Temp: "); | ||
| + | lcd.print(temperature); | ||
| + | lcd.print(char(223)); | ||
| + | lcd.print("C"); | ||
| + | </file> | ||
| + | |||
| + | == Driver L293D + motor + elice == | ||
| + | Global am declarat pinii pentru motor si driver. | ||
| + | Apoi am apelat functia construita de mine in fisierul DCMDriverL293D.cpp pentru initializarea motoras-ului si a driver-ului. | ||
| + | <file cpp global> | ||
| + | // Pin Definitions | ||
| + | #define DCMOTORDRIVERB_PIN_ENABLE1 3 | ||
| + | #define DCMOTORDRIVERB_PIN_IN1 2 | ||
| + | #define DCMOTORDRIVERB_PIN_IN2 4 | ||
| + | #define DCMOTORDRIVERB_PIN_ENABLE2 5 | ||
| + | #define DCMOTORDRIVERB_PIN_IN3 7 | ||
| + | #define DCMOTORDRIVERB_PIN_IN4 8 | ||
| + | |||
| + | // object initialization | ||
| + | DCMDriverL293D dcMotorDriverB(DCMOTORDRIVERB_PIN_ENABLE1,DCMOTORDRIVERB_PIN_IN1,DCMOTORDRIVERB_PIN_IN2,DCMOTORDRIVERB_PIN_ENABLE2,DCMOTORDRIVERB_PIN_IN3,DCMOTORDRIVERB_PIN_IN4); | ||
| + | </file> | ||
| + | |||
| + | In functia de loop daca temperatura este mai mare sau egala cu 30 grade Celsius activam mototras-ul folosind functia setMotorA/setMotorB cu o viteza ce este reglata de potentiometru si directia de invartire a elicei alese aleator. | ||
| + | <file cpp loop> | ||
| + | if(temperature >= 30){ | ||
| + | dcMotorDriverB.setMotorA(value2,true); | ||
| + | dcMotorDriverB.setMotorB(value2,false); | ||
| + | }else{ | ||
| + | dcMotorDriverB.stopMotors(); | ||
| + | } | ||
| + | </file> | ||
| + | |||
| + | == Potentiometru 10k == | ||
| + | In functia de loop , pentru ca potentiometrul citea valori in 25 si 1005 , am sacalat valoarea citita intre 10 si 200, 255 fiind | ||
| + | valoarea maxima pe care o poate primii motoras-ul, valoare cu care ii este reglata viteza elicei. | ||
| + | <file cpp loop> | ||
| + | int value2 = analogRead(A1); | ||
| + | value2 = map(value2, 25, 1005, 10, 200); | ||
| + | </file> | ||
| + | |||
| + | |||
| + | |||
| == Unelte Folosite == | == Unelte Folosite == | ||
| https://app.diagrams.net/ - pentru realizarea schemei bloc | https://app.diagrams.net/ - pentru realizarea schemei bloc | ||
| Line 77: | Line 168: | ||
| ===== Download ===== | ===== Download ===== | ||
| + | |||
| + | <note important>Arhiva proiectului se află mai jos și conține: | ||
| + | * Fișierele cu codul software | ||
| + | * Imagini cu proiectul | ||
| + | </note> | ||
| + | |||
| + | Download: {{:pm:prj2024:ccontasel:proiect_pm_vasilache_george.zip|}} | ||
| + | |||
| ===== Tinte ===== | ===== Tinte ===== | ||
| Line 89: | Line 188: | ||
| * 05/05/2024 - completarea descrierii generale + schema bloc | * 05/05/2024 - completarea descrierii generale + schema bloc | ||
| * 15/05/2024 - adaugare schema electrica | * 15/05/2024 - adaugare schema electrica | ||
| + | * 21/05/2024 - finalizare proiect(hardware + software) | ||
| + | * 22/05/2024 - finisare proiect(realizarea unui design adecvat) | ||
| **GRAFIC GANT** | **GRAFIC GANT** | ||
| - | {{:pm:prj2024:ccontasel:gantt_pm_geo.png?700|}} | + | {{:pm:prj2024:ccontasel:grafic_chart_pm_vasilache_george.png?700|}} |
| - | + | ||
| - | + | ||
| - | ===== Bibliografie și Resurse ===== | + | |