This shows you the differences between two versions of the page.
|
pm:prj2022:sionescu:sportwatch [2022/05/29 23:09] eduard_adiel.dinu |
pm:prj2022:sionescu:sportwatch [2022/06/02 16:19] (current) eduard_adiel.dinu |
||
|---|---|---|---|
| Line 7: | Line 7: | ||
| <note tip> | <note tip> | ||
| Proiectul consta in implementarea unui ceas de tip SportWatch. | Proiectul consta in implementarea unui ceas de tip SportWatch. | ||
| - | Acesta contine integrat un senzor de luat temperatura si o alarma pentru sport. | + | Acesta contine integrat un senzor de luat temperatura si unul pentru puls si o alarma pentru sport. |
| - | Alarma va suna timp de 30 secunde, iar un LED se va aprinda daca senzorul detecteaza o temperatura prea ridicata. | + | Alarma va suna timp de 30 secunde, iar un LED se va aprinde daca senzorul detecteaza o temperatura prea ridicata si un alt LED pentru puls. |
| </note> | </note> | ||
| ===== Descriere generală ===== | ===== Descriere generală ===== | ||
| Line 31: | Line 31: | ||
| 8. fire | 8. fire | ||
| 9. Potentiometru | 9. Potentiometru | ||
| + | 10. Senzor de puls | ||
| Line 54: | Line 55: | ||
| #include <LiquidCrystal.h> | #include <LiquidCrystal.h> | ||
| LiquidCrystal lcd(12, 11, 5, 4, 3, 2); | LiquidCrystal lcd(12, 11, 5, 4, 3, 2); | ||
| + | #include <PulseSensorPlayground.h> | ||
| int button; | int button; | ||
| int h=1; | int h=1; | ||
| Line 64: | Line 66: | ||
| int alarmMin = 21; | int alarmMin = 21; | ||
| int alarmHour = 19; | int alarmHour = 19; | ||
| + | int TempLED = 8; | ||
| + | int PulseLED = 10; | ||
| + | |||
| + | void showPulse(int value) { | ||
| + | lcd.print("Pulse : "); | ||
| + | int res = 0; | ||
| + | value = value / 100; | ||
| + | if(value <= 0) | ||
| + | value = 0; | ||
| + | while(value) | ||
| + | { | ||
| + | res = res * 10 + value % 10; | ||
| + | value /= 10; | ||
| + | } | ||
| + | | ||
| + | while(res > 0) { | ||
| + | char c = '0' + res % 10; | ||
| + | lcd.print(c); | ||
| + | res /= 10; | ||
| + | } | ||
| + | if(res == 0) | ||
| + | lcd.print("0"); | ||
| + | } | ||
| + | void configClock(int hour, int mins, int secs) { | ||
| + | h = hour; | ||
| + | m = mins; | ||
| + | s = secs; | ||
| + | } | ||
| + | void configAlarm(int alarmH, int alarmM) { | ||
| + | alarmMin = alarmM; | ||
| + | alarmHour = alarmH; | ||
| + | } | ||
| + | |||
| void setup() { | void setup() { | ||
| Serial.begin(9600); | Serial.begin(9600); | ||
| Line 69: | Line 104: | ||
| pinMode(7, OUTPUT); | pinMode(7, OUTPUT); | ||
| pinMode(6, INPUT); | pinMode(6, INPUT); | ||
| - | pinMode(8, OUTPUT); | + | pinMode(TempLED, OUTPUT); |
| + | pinMode(PulseLED, OUTPUT); | ||
| configClock(21,32,50); | configClock(21,32,50); | ||
| configAlarm(21,33); | configAlarm(21,33); | ||
| Line 80: | Line 116: | ||
| temp = temp * 100; //Convert to degrees | temp = temp * 100; //Convert to degrees | ||
| Serial.println(temp); | Serial.println(temp); | ||
| - | if(temp > 20) { | + | if(temp > 10) { |
| - | digitalWrite(8, HIGH); | + | digitalWrite(TempLED, HIGH); |
| } | } | ||
| - | else digitalWrite(8, LOW); | + | else digitalWrite(TempLED, LOW); |
| } | } | ||
| - | void configClock(int hour, int mins, int secs) { | + | |
| - | h = hour; | + | void pulse() { |
| - | m = mins; | + | int sensorPulse = analogRead(A1); |
| - | s = secs; | + | Serial.println(sensorPulse); |
| - | } | + | showPulse(sensorPulse); |
| - | void configAlarm(int alarmH, int alarmM) { | + | if(sensorPulse > 750) |
| - | alarmMin = alarmM; | + | { |
| - | alarmHour = alarmH; | + | digitalWrite(PulseLED, HIGH); |
| + | } | ||
| + | else digitalWrite(PulseLED, LOW); | ||
| } | } | ||
| + | |||
| void toneBuzzer(int duration) { | void toneBuzzer(int duration) { | ||
| - | tone(7, 220, duration); | + | tone(7, 220, duration); |
| } | } | ||
| void checkAlarm(int min, int hour, int sec) { | void checkAlarm(int min, int hour, int sec) { | ||
| if(min == alarmMin && hour == alarmHour && sec < 30) | if(min == alarmMin && hour == alarmHour && sec < 30) | ||
| - | toneBuzzer(1000); | + | toneBuzzer(1000);//1 sec |
| } | } | ||
| void loop() { | void loop() { | ||
| - | lcd.setCursor(0,0); | + | temperature(); |
| + | |||
| + | lcd.setCursor(0,0); | ||
| lcd.print("Time "); | lcd.print("Time "); | ||
| if(h<10)lcd.print("0"); | if(h<10)lcd.print("0"); | ||
| lcd.print(h); | lcd.print(h); | ||
| lcd.print(":"); | lcd.print(":"); | ||
| - | if(m<10)lcd.print("0"); | + | if(m<10) lcd.print("0"); |
| lcd.print(m); | lcd.print(m); | ||
| lcd.print(":"); | lcd.print(":"); | ||
| - | if(s<10)lcd.print("0"); | + | if(s<10) lcd.print("0"); |
| lcd.print(s); | lcd.print(s); | ||
| if(flag==0) lcd.print(" AM"); | if(flag==0) lcd.print(" AM"); | ||
| if(flag==1) lcd.print(" PM"); | if(flag==1) lcd.print(" PM"); | ||
| lcd.setCursor(0,1);// for Line 2 | lcd.setCursor(0,1);// for Line 2 | ||
| - | lcd.print("Precision Clock"); | + | |
| - | delay(987);// | + | delay(987); |
| temperature(); | temperature(); | ||
| - | s=s+1; | + | pulse(); |
| + | s=s+1; | ||
| if(s==60){ | if(s==60){ | ||
| s=0; | s=0; | ||
| Line 136: | Line 178: | ||
| } | } | ||
| checkAlarm(m, h, s); | checkAlarm(m, h, s); | ||
| + | | ||
| } | } | ||
| </code> | </code> | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| + | |||
| <note tip> | <note tip> | ||
| - | Ecranul LCD afiseaza cu succes timpul cu precizie, LED ul se lumineaza in caz de pericol, iar alarma suna corespunzator.</note> | + | Ecranul LCD afiseaza cu succes timpul cu precizie, LED urile se lumineaza in caz de pericol, iar alarma suna corespunzator. |
| + | </note> | ||
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| + | |||
| <note tip> | <note tip> | ||
| Consider ca proiectul este important deoarece foloseste in scop didactic cunostinte de intreruperi, senzori. | Consider ca proiectul este important deoarece foloseste in scop didactic cunostinte de intreruperi, senzori. | ||
| </note> | </note> | ||
| + | |||
| ===== Jurnal ===== | ===== Jurnal ===== | ||
| <note tip> | <note tip> | ||
| Main intai am rezolvat partea de afisaj timp. | Main intai am rezolvat partea de afisaj timp. | ||
| Apoi am rezolvat partea de alarma. | Apoi am rezolvat partea de alarma. | ||
| - | In final am facut partea de senzor de temperatura si LED. | + | In final am facut partea de senzor de temperatura si puls, alaturi iluminarea LED urilor. |
| + | | ||
| </note> | </note> | ||
| + | |||
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
| - | <note tip> | + | |
| https://create.arduino.cc/projecthub/munir03125344286/add-buzzer-to-arduino-bf010b | https://create.arduino.cc/projecthub/munir03125344286/add-buzzer-to-arduino-bf010b | ||
| https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/ | https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/ | ||
| Line 159: | Line 208: | ||
| https://www.arduino.cc/en/Tutorial/LibraryExamples/LiquidCrystalSetCursor | https://www.arduino.cc/en/Tutorial/LibraryExamples/LiquidCrystalSetCursor | ||
| https://www.arduino.cc/reference/en/libraries/liquidcrystal/ | https://www.arduino.cc/reference/en/libraries/liquidcrystal/ | ||
| - | </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> | ||