Paso 3: codificación.
Esta es la parte más difícil del proyecto. Usted tendrá que asignar hacia abajo cuando su corazón late en el sensor.
La idea básica es que cuando el led esté encendido y brilla a la LDR la lectura alrededor de 1020. Cuando se inserta el dedo en la LDR cambia el valor de entre 980-995. Aquí es donde el proceso 2 viene bien. Cuando la sangre es golpes en el dedo la luz que pasa por los cambios de dedo ligeramente. Mapa por el momento cuando la luz está en el más brillante y más tenue. Su lectura puede diferir de la mía.
Vale. así que aquí está el código.
Pocos lo que necesita. Un contador que cuenta el ritmo cardíaco y temporizador para contar el tiempo.
El temporizador se establece en 0 en el inicio y parar en cuentas del contador de 10 segundos las pulsaciones y multiplicarlos por seis.
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;
Configuración es principalmente en los ajustes básicos.
void setup() { Serial.begin(115200); pinMode(Led, OUTPUT); pinMode(Led, HIGH); lcd.begin(16, 2); lcd.setRGB(colorR, colorG, colorB); }
A continuación, bucle. Este es el principal programa que muestra lo contado y retención de los valores umbral para el sensor que cuando es tiempo de contar uno, dos, tres, etc....
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); }
A continuación algunas subrutinas.
Increment() no agregar a la cuenta y contador cuenta pulsaciones y muestra con manteniendo el valor durante 5 segundos antes de continuar el programa.
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); }