#include <LiquidCrystal.h> //библиотека за lcd
int pot=A3; // пин за поврзување на потенциометар
int U; // променлива
int broj; // резултат за отчукување на срцето
int pauza = 300; // пауза
int pauza1 = 50; // пауза за трепкање на црвен лед
int rs = 7; // пинoви за поврзување lcd екран
int e = 8;
int d4 = 9;
int d5 = 10;
int d6 = 11;
int d7 = 12;
int R = 3; // пин за RGB, црвен
int G = 5; // пин за RGB, зелен
int B = 6; // пин за RGB, син
LiquidCrystal lcd(rs,e,d4,d5,d6,d7); // lcd екран
void setup() {
pinMode(R, OUTPUT); // излезен елемент
pinMode(G, OUTPUT); // излезен елемент
pinMode(B, OUTPUT); // излезен елемент
lcd.createChar(0,U); // укл. на lcd
lcd.begin(16,2); // тип на lcd екран
pinMode(pot, INPUT); // влезен елемент
}
void loop() {
broj=analogRead(pot); // отчитување од потенциометар (сензор)
U = 30+(100./1023.)*broj; // формула за пресметка на отчукување на срце
lcd.clear(); // да се избриши претходно напишано на lcd
lcd.setCursor(0, 0); //почетна позиција на прв карактер (горе)
lcd.print("Vashiot puls e:"); // што да се запиши на lcd
lcd.setCursor(4, 1); //почетна позиција на прв карактер (долу)
lcd.print((U)); // отчитана вредност од сензорот
lcd.print(" BPM"); // да се запише на lcd
delay(pauza);
if(U<45){
analogWrite(R, 75); //виолетова
analogWrite(G, 0);
analogWrite(B, 130);
}
else if(U>=46 && U<65){
analogWrite(R, 0); //сина
analogWrite(G, 0);
analogWrite(B, 139);
}
else if(U>=66 && U<85){
analogWrite(R, 0); ///зелена
analogWrite(G, 255);
analogWrite(B, 0);
}
else if(U>=86 && U<99){
analogWrite(R, 255); ///портокалева
analogWrite(G, 50);
analogWrite(B, 0);
}
else if(U>=100 && U<109){
analogWrite(R, 255); //црвена
analogWrite(G, 0);
analogWrite(B, 0);
}
else {
analogWrite(R, 255); //црвена
analogWrite(G, 0);
analogWrite(B, 0);
delay(pauza1);
analogWrite(R, 0); // црна(не свети)
analogWrite(G, 0);
analogWrite(B, 0);
delay(pauza1);
}
}