Stap 3: codering.
Dit is het meest lastige deel van het project. U moet toewijzen omlaag wanneer je hart op de sensor klopt.
Het basisidee is dat wanneer het lampje brandt en om de LDR de lezing schijnt ongeveer 1020. Wanneer de vinger op de LDR de waarde tussen 980-995 verandert is ingevoegd. Dit is waar de verwerking 2 handig. Wanneer het bloed is stoten in uw vinger het licht dat door uw vinger wijzigingen enigszins. Kaart neer het juiste moment wanneer het licht is in de helderste en wanneer schemerigste. Van uw lezing afwijken van de mijne.
OK. Dus hier is de code.
Paar ding nodig. Een teller die de hartslag en de Timer voor het tellen van de tijd zal tellen.
De timer is ingesteld op 0 bij begin en het zal stoppen bij 10 sec. teller telt de beats en hen te vermenigvuldigen met zes.
const int analogInPin = A0; int Led = 13; int sensorValue = 0; int count=0; unsigned long time1=0; unsigned long time2; #include #include "rgb_lcd.h"rgb_lcd lcd;const int colorR = 255; const int colorG = 0; const int colorB = 0;
Setup is voornamelijk in de basisinstellingen.
void setup() { Serial.begin(115200); pinMode(Led, OUTPUT); pinMode(Led, HIGH); lcd.begin(16, 2); lcd.setRGB(colorR, colorG, colorB); }
Dan lus. Dit is het hoofdprogramma dat de getelde dingen toont en houd de drempelwaarden voor de sensor dat wanneer is het tijd om te tellen van één, twee, drie, enz...
void loop() { if(count==0) {time1=millis(); } time2=millis(); sensorValue = analogRead(analogInPin); if(time2>=time1+10000) { counter(); } if(sensorValue >1000){ lcd.clear(); Serial.println("Insert finger"); lcd.setCursor(0,0); lcd.print("Insert Finger"); return; } if(sensorValue ==991){ lcd.clear(); digitalWrite(Led, HIGH); increment(); Serial.println(sensorValue); Serial.println(count); Serial.println(time2); lcd.setCursor(0,0); lcd.print("Counting"); } if(sensorValue >990){ digitalWrite(Led, LOW); } delay(200); }
Dan de paar subroutine.
Increment() doet het toevoegen aan de graaf en teller telt beats en toont ze met een bedrijf van de waarde voor 5 sec voordat u doorgaat het programma.
void increment(){ count++;} void counter() { lcd.clear(); count=count*6; Serial.print("Heart beat: "); Serial.print(count); lcd.setCursor(0,0); lcd.print("Heart beat:"); lcd.setCursor(0,1); lcd.print(count); time1=0; time2=0; count=0; delay(5000); }