Cola de control de Sensor de pulso (3 / 4 paso)

Paso 3: Sensor de pulso y código

3.1
El sensor del pulso puede adquirirse en SparkFun por $24.95, sparkfun también proporciona el código que tendrá que trabajar gratis!

Así que agarra tu Arduino, conexión Arduino USB, sensor de pulso, protector de Motor y llegar a un equipo!
(aunque más que probable que ya se encuentra en una computadora si estás leyendo este jajaja)

Adelante y deslice su escudo del Motor en la parte superior su Arduino y se conecta en su computadora, una vez abierto el programa de Arduino puede conectar el sensor de pulso (cable morado a A0, rojo para 5V o 3V y negro a tierra) y he desarrollado este código combina el código de sensor de pulso y el código de barrido básico

Lo que debe suceder es en cierta frecuencia cardíaca es menor que 66 bpm se moverá a una velocidad estándar, si su ritmo cardíaco es superior a 66 bpm se moverá más rápido:

#include < Servo.h >

Servo myservo;  crear objeto servo para controlar un servo

se puede crear un máximo de ocho objetos de servo

int pinNineInput = 9;

int pulsePin = 0;                 Pulso púrpura Sensor cable conectado al pin analógico 0

int blinkPin = 13;                PIN a parpadear led en cada latido

fadePin int = 5;                  pasador de lujo blink de decoloración con clase en cada latido

int fadeRate = 0;                 solía desaparecer LED en con PWM en fadePin

estas variables son volátiles porque se utilizan durante la rutina de servicio de interrupción.

int volátil BPM;                   utiliza para mantener el pulso

volátil int señal;                contiene los datos crudos entrantes

int volátil IBI = 600;             retiene el tiempo entre contracciones, el intervalo entre latidos

volátil pulso boolean = false;     verdadero cuando el pulso es alto, false cuando es baja

volátiles QS boolean = false;        llega a ser verdad cuando Arduoino encuentra un ritmo.

int pos = BPM;

void setup()

{

myservo.Attach(9);  se fija el servo en el pin 9 al objeto servo

pinMode(blinkPin,OUTPUT);         PIN que empezará a parpadear a los latidos del corazón!

pinMode(fadePin,OUTPUT);          PIN que se decoloran a los latidos del corazón!

Serial.Begin(115200);             Estamos de acuerdo en hablar rápido!

interruptSetup();                 poder para leer la señal del Sensor de pulso cada 2 ms

ONU-comentario la línea siguiente si está encendido el Sensor del pulso en bajo voltaje,

Y QUE LA TENSIÓN SE APLICA AL PERNO A-REF

analogReference(EXTERNAL);

}

void loop()

{

Si (pinNineInput < 66)

{

para (pos = 0; pos < 360; pos += 2) / / va desde 0 grados a 360 grados

{/ / en pasos de 1 grado

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(5);                       espera 5 ms para el servo a la posición

}

para (pos = 360; pos > = 1; pos-= 2) / / va de 360 grados a 0 grados

{

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(5);                       espera 5 ms para el servo a la posición

}

para (pos = 0; pos < 360; pos += 1) / / va desde 0 grados a 360 grados

{/ / en pasos de 1 grado

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(15);                       espera 15ms para el servo a la posición

}

para (pos = 360; pos > = 1; pos-= 1) / / va de 360 grados a 0 grados

{

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(15);                       espera 15ms para el servo a la posición

}

para (pos = 0; pos < 180; pos += 1) / / va desde 0 grados a 180 grados

{/ / en pasos de 1 grado

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(3);                       espera 3 ms para el servo a la posición

}

para (pos = 180; pos > = 1; pos-= 1) / / va de 180 grados a 0 grados

{

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(3);                       espera 3 ms para el servo a la posición

}

para (pos = 0; pos < 180; pos += 1) / / va desde 0 grados a 180 grados

{/ / en pasos de 1 grado

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(3);                       espera 3 ms para el servo a la posición

}

para (pos = 180; pos > = 1; pos-= 1) / / va de 180 grados a 0 grados

{

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(3);                       espera 3 ms para el servo a la posición

}

para (pos = 0; pos < 180; pos += 1) / / va desde 0 grados a 180 grados

{/ / en pasos de 1 grado

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(3);                       espera 3 ms para el servo a la posición

}

para (pos = 180; pos > = 1; pos-= 1) / / va de 180 grados a 0 grados

{

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(3);                       espera 3 ms para el servo a la posición

}

}

else if (pinNineInput > = 66)

{

{

para (pos = 0; pos < 360; pos += 2) / / va desde 0 grados a 360 grados

{/ / en pasos de 1 grado

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(5);                       espera 5 ms para el servo a la posición

}

para (pos = 360; pos > = 1; pos-= 2) / / va de 360 grados a 0 grados

{

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(5);                       espera 5 ms para el servo a la posición

}

para (pos = 0; pos < 360; pos += 1) / / va desde 0 grados a 360 grados

{/ / en pasos de 1 grado

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(4);                       4ms para el servo a la posición de espera

}

para (pos = 360; pos > = 1; pos-= 1) / / va de 360 grados a 0 grados

{

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(4);                       4ms para el servo a la posición de espera

}

para (pos = 0; pos < 180; pos += 1) / / va desde 0 grados a 180 grados

{/ / en pasos de 1 grado

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(3);                       espera 3 ms para el servo a la posición

}

para (pos = 180; pos > = 1; pos-= 1) / / va de 180 grados a 0 grados

{

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(3);                       espera 3 ms para el servo a la posición

}

para (pos = 0; pos < 180; pos += 1) / / va desde 0 grados a 180 grados

{/ / en pasos de 1 grado

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(3);                       espera 3 ms para el servo a la posición

}

para (pos = 180; pos > = 1; pos-= 1) / / va de 180 grados a 0 grados

{

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(3);                       espera 3 ms para el servo a la posición

}

para (pos = 0; pos < 180; pos += 1) / / va desde 0 grados a 180 grados

{/ / en pasos de 1 grado

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(3);                       espera 3 ms para el servo a la posición

}

para (pos = 180; pos > = 1; pos-= 1) / / va de 180 grados a 0 grados

{

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(3);                       espera 3 ms para el servo a la posición

}

}

}

otra cosa

{

para (pos = 0; pos < 360; pos += 2) / / va desde 0 grados a 360 grados

{/ / en pasos de 1 grado

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(10);                       espera 10 ms para el servo a la posición

}

para (pos = 360; pos > = 1; pos-= 2) / / va de 360 grados a 0 grados

{

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(10);                       espera 10 ms para el servo a la posición

}

para (pos = 0; pos < 360; pos += 1) / / va desde 0 grados a 360 grados

{/ / en pasos de 1 grado

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(15);                       espera 15ms para el servo a la posición

}

para (pos = 360; pos > = 1; pos-= 1) / / va de 360 grados a 0 grados

{

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(15);                       espera 15ms para el servo a la posición

}

para (pos = 0; pos < 180; pos += 1) / / va desde 0 grados a 180 grados

{/ / en pasos de 1 grado

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(7);                       7ms para el servo a la posición de espera

}

para (pos = 180; pos > = 1; pos-= 1) / / va de 180 grados a 0 grados

{

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(7);                       7ms para el servo a la posición de espera

}

para (pos = 0; pos < 180; pos += 1) / / va desde 0 grados a 180 grados

{/ / en pasos de 1 grado

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(7);                       7ms para el servo a la posición de espera

}

para (pos = 180; pos > = 1; pos-= 1) / / va de 180 grados a 0 grados

{

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(7);                       7ms para el servo a la posición de espera

}

para (pos = 0; pos < 180; pos += 1) / / va desde 0 grados a 180 grados

{/ / en pasos de 1 grado

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(7);                       7ms para el servo a la posición de espera

}

para (pos = 180; pos > = 1; pos-= 1) / / va de 180 grados a 0 grados

{

myservo.Write(POS);              Dile el servo a la posición en la variable 'pos'

Delay(7);                       7ms para el servo a la posición de espera

}

}

Serial.Print(BPM);

Serial.Print("\t");

sendDataToProcessing (de ', señal);     enviar procesamiento de los datos en bruto del Sensor pulso

Si (QS == true) {/ / bandera ser cuantificada es verdadera cuando arduino encuentra un latido

fadeRate = 255;                  Conjunto 'fadeRate' Variable de hasta 255 descolorarse LED con pulso

sendDataToProcessing('B',BPM);   enviar de la frecuencia cardíaca con un prefijo 'B'

sendDataToProcessing('Q',IBI);   enviar tiempo entre latidos con un prefijo 'Q'

QS = false;                      restablecer la bandera de ser cuantificado para la próxima vez

//     }

ledFadeToBeat();

myservo.Attach(9);  se fija el servo en el pin 9 al objeto servo

myservo.Write(POS);

Delay(3000);                             tomar un descanso

}

void ledFadeToBeat() {}

fadeRate-= 15;                         Ajuste el fade de LED

fadeRate = constrain(fadeRate,0,255);   evitar LED fade valor de a números negativos!

analogWrite(fadePin,fadeRate);          se descolora LED

}

void sendDataToProcessing (símbolo de char, int datos) {}

Serial.Print(Symbol);                Prefijo símbolo dice procesamiento viene qué tipo de datos

Serial.println(Data);                los datos para enviar hasta culminar en un retorno de carro

//  }

Una vez cargado el código prueba enchufando su cola a la parte del escudo del motor que dice Servo2.

Nota:
Este código fue desarrollado sólo para el motor de un servo, para aquellos que quieren controlar dos motores servo que se debe ajustar este código. También se estará trabajando en él para tener en cuenta dos servomotores pero si alguien me pega a él y desarrolla un código de su propio por favor no te olvides compartir! : D

El código de Sensor de pulso original puede encontrarse aquí:
SparkFun

Artículos Relacionados

Sensor de pulso LED (PPG) para Arduino

Sensor de pulso LED (PPG) para Arduino

Dentro de este Instructable te mostraré, cómo implementar un simple sensor PPG (photoplethysmogram) para arduino. Este dispositivo utiliza luz infrarroja para medir pulso usted. Puede conocer esta técnica de los sensores del pulso de la yema del dedo
Sensor de pulso de Arduino

Sensor de pulso de Arduino

Este es mi primer proyecto publicado aquí, un arduino pro mini tablero con Sensor de pulso.Aquí les mostraré cómo hice mi arduino cableado y codificación, incluyendo el código fuente y esquemas. También código de una herramienta de windows para mostr
Sensor de pulso ambiente Arduino casero

Sensor de pulso ambiente Arduino casero

Vi Open Hardware Sensor de pulso en el pensamiento que intentaría hacer en casa. Me llevó un rato, pero aquí está mi proceso de torpe.Paso 1: Sensor de pulso - ResumenHe estado trabajando en volver a hacer el Sensor del pulso del Hardware abierto por
Gerencia de control de sensor

Gerencia de control de sensor

Pide a nuestro cliente controlar sus dispositivos médicos.Él no sabe nada sobre el uso real de sus dispositivos, y hay un hecho que a veces que se realizan más servicios que factura.Como un prototipo hemos decidido desarrollar un programa muy rápido
Latido del corazón para el sensor de pulso + ESP8266

Latido del corazón para el sensor de pulso + ESP8266

Como parte de un deseo de aprender sobre ESP8266 independientePensé en un proyecto para conectar sensor de pulso y transmitir el BPM al ordenador mediante conexión TCP.Durante la construcción, me encontré con algunos problemas.Los problemas por mi op
Plumbob Sensor de pulso

Plumbob Sensor de pulso

mi final para mi clase de Multimedia Digital encontramos un instructable nos gustó y había que crear algo similar con nuestro toque original.En este sitio encontré a un Señor que ha creado su propia versión de los Sims Plumbob. (abajo está el enlace
LilyPad y sensores de pulso: la experiencia de otros cuerpo

LilyPad y sensores de pulso: la experiencia de otros cuerpo

He creado y la instalación interactiva dirigida a esclarecer en cuerpo avergonzar.Mi objetivo era hacer la experiencia participante tener un cuerpo diferente de su, así había alterado un chaleco salvavidas y presentado con arena, lo que es peso 4,2 k
Sensor de pulso de San Valentín

Sensor de pulso de San Valentín

basándose en el trabajo de otros, se me ocurrió este pequeño dispositivo ir a medir mi ritmo cardíaco. Ahora, sabía que fue apropiado ir a hacer en forma de un corazón de LEDs y así lo hice. No tener ninguna plantilla, estaba bastante desorientado. U
Juego de la serpiente con sensor de pulso

Juego de la serpiente con sensor de pulso

Este es un juego de snake que se navega por un joystick. También hemos utilizado un sensor de pulso para trucar el juego. El sensor del pulso hace que la pantalla cambia de color dependiendo de los latidos del corazón. El momento cuando su corazón la
Cómo utilizar el Sensor del pulso

Cómo utilizar el Sensor del pulso

Sensor de pulso es un sensor de ritmo cardíaco de código abierto.Utiliza diferentes transmitencia ligera para los tejidos del cuerpo causando por pulsación vascular para medir el pulso.Paso 1:1. construir el entorno de Arduino, descargar el IDE de Ar
Aplicaciones de IoT industrial - calidad del aire control remoto + Sensor de CO2 control

Aplicaciones de IoT industrial - calidad del aire control remoto + Sensor de CO2 control

** Actualización: El siguiente artículo es de nuestra aplicación Android obsoleta! VALARM es Industrial IoT. Ayudaremos a sus equipos y su empresa con aplicaciones de IoT Industrial utilizando Herramientas de nube de Valarm.Se recomienda utilizar dis
Arduino Bluetooth garaje puerta Control con sensores y personalizable aplicación Android

Arduino Bluetooth garaje puerta Control con sensores y personalizable aplicación Android

Usar un arduino para activar relés para apertura de puertas y cerraduras eléctricas.Una aplicación personalizable para Android, conecta con arduino mediante emparejamiento protegidos por contraseña.Un módulo de bluetooth hc-05 recibe órdenes desde un
¿Luz Led del Control de Sensor de movimiento Arduino

¿Luz Led del Control de Sensor de movimiento Arduino

necesitando un pequeño tutorial útil para cable y programa su nuevo sensor de movimiento con tu arduino? Bueno no busques más. Este tutorial le dará un ejemplo simple de cómo fijar un sensor de movimiento a tu arduino y encender un led o apagar si se
Sensor de pulso de Arduino DIY

Sensor de pulso de Arduino DIY

Así que mencionado en un Instructable anterior que soy una ayudante de enseñanza (TA) para un curso introductorio de ingeniería por especialidad de la ingeniería biomédica en la Universidad de Vanderbilt. Mi tarea principal como un TA es re-escribir