Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2022:sionescu:sportwatch [2022/05/29 23:04]
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) { + 
-  ​hour+void pulse() { 
-  m = mins+ int  sensorPulse ​analogRead(A1)
-  ​s = secs+ Serial.println(sensorPulse)
-} +  ​showPulse(sensorPulse)
-void configAlarm(int alarmHint alarmM{ +  ​if(sensorPulse > 750) 
-  ​alarmMin = alarmM; +  { 
-  ​alarmHour = alarmH;+    digitalWrite(PulseLEDHIGH); 
 +  ​} 
 +  ​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>​
  
pm/prj2022/sionescu/sportwatch.1653854675.txt.gz · Last modified: 2022/05/29 23:04 by eduard_adiel.dinu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0