Pulse Sensor gecontroleerd staart (3 / 4 stap)

Stap 3: Pulse Sensor en code


3.1
De Pulse-sensor kan worden gekocht van SparkFun voor $24.95, sparkfun biedt ook de code die u werken moeten zult met gratis!

Dus pak uw Arduino Arduino,, Arduino USB plug, Pulse sensor, Motorschild en krijgen op een computer!
(ook al meer dan waarschijnlijk je al op een computer als je dit lol leest)

Ga je gang en schuif uw Motor Shield bovenop je Arduino en daarin op de computer aansluit, zodra de Arduino-programma geopend is kunt u de stekker in uw hartslag sensor (paarse draad A0, rode tot 5V of 3V en zwart naar GRD) en ik ontwikkelde deze code combineren de hartslag sensor code en de code van de fundamentele sweep

Wat er moet gebeuren is op als bepaalde hartslag lager dan 66 bpm zal gaan met een standaard snelheid is als uw hartslag is hoger dan 66 bpm dan het zullen zich sneller bewegen:

#include < Servo.h >

Servo myservo;  maken van servo-object om te bepalen van een servo

maximaal acht servo-objecten kan worden gemaakt

int pinNineInput = 9;

int pulsePin = 0;                 Hartslag Sensor paarse draad aangesloten op analoge pin 0

int blinkPin = 13;                PIN te knipperen leidde bij elke hartslag

int fadePin = 5;                  PIN te verbeelden stijlvolle fading knipperen bij elke hartslag

int fadeRate = 0;                 gebruikt voor LED fade op met PWM op fadePin

deze variabelen zijn volatiel, omdat ze worden gebruikt tijdens de interrupt service routine!

vluchtige int BPM;                   gebruikt om te houden van de polsslag

vluchtige int signaal;                houdt de binnenkomende onbewerkte gegevens

vluchtige int IBI = 600;             houdt de tijd tussen de beats, het Interval tussen Beat

vluchtige Booleaanse Pulse = false;     waar wanneer pulse wave hoog, false is als het lage

vluchtige Booleaanse QS = false;        waar wordt als Arduoino een beat vindt.

int pos = BPM;

VOID Setup

{

myservo.attach(9);  de servo op pin 9 hecht aan de servo-object

pinMode(blinkPin,OUTPUT);         PIN die naar uw hartslag zal knipperen!

pinMode(fadePin,OUTPUT);          PIN dat tot je hartslag vervagen zal!

Serial.begin(115200);             We willen snel praten!

interruptSetup();                 stelt te lezen Pulse Sensor signaal elke 2mS

UN-COMMENT de volgende regel als u zijn het VOEDEN van de Pulse-Sensor op laagspanning,

EN DIE SPANNING VAN TOEPASSING OP DE PIN A-REF

analogReference(EXTERNAL);

}

void loop

{

Als (pinNineInput < 66)

{

voor (pos = 0; pos < 360; pos += 2) / / gaat van 0 graden tot 360 graden

{/ / in stappen van 1 graad

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(5);                       wacht 5ms voor de servo te bereiken de positie

}

voor (pos = 360; pos > = 1; pos-= 2) / / gaat van 360 graden naar 0 graden

{

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(5);                       wacht 5ms voor de servo te bereiken de positie

}

voor (pos = 0; pos < 360; pos += 1) / / gaat van 0 graden tot 360 graden

{/ / in stappen van 1 graad

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(15);                       wacht 15ms voor de servo te bereiken de positie

}

voor (pos = 360; pos > = 1; pos-= 1) / / gaat van 360 graden naar 0 graden

{

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(15);                       wacht 15ms voor de servo te bereiken de positie

}

voor (pos = 0; pos < 180; pos += 1) / / gaat van 0 graden tot 180 graden

{/ / in stappen van 1 graad

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(3);                       wacht 3ms voor de servo te bereiken de positie

}

voor (pos = 180; pos > = 1; pos-= 1) / / gaat van 180 graden tot 0 graden

{

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(3);                       wacht 3ms voor de servo te bereiken de positie

}

voor (pos = 0; pos < 180; pos += 1) / / gaat van 0 graden tot 180 graden

{/ / in stappen van 1 graad

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(3);                       wacht 3ms voor de servo te bereiken de positie

}

voor (pos = 180; pos > = 1; pos-= 1) / / gaat van 180 graden tot 0 graden

{

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(3);                       wacht 3ms voor de servo te bereiken de positie

}

voor (pos = 0; pos < 180; pos += 1) / / gaat van 0 graden tot 180 graden

{/ / in stappen van 1 graad

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(3);                       wacht 3ms voor de servo te bereiken de positie

}

voor (pos = 180; pos > = 1; pos-= 1) / / gaat van 180 graden tot 0 graden

{

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(3);                       wacht 3ms voor de servo te bereiken de positie

}

}

anders als (pinNineInput > = 66)

{

{

voor (pos = 0; pos < 360; pos += 2) / / gaat van 0 graden tot 360 graden

{/ / in stappen van 1 graad

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(5);                       wacht 5ms voor de servo te bereiken de positie

}

voor (pos = 360; pos > = 1; pos-= 2) / / gaat van 360 graden naar 0 graden

{

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(5);                       wacht 5ms voor de servo te bereiken de positie

}

voor (pos = 0; pos < 360; pos += 1) / / gaat van 0 graden tot 360 graden

{/ / in stappen van 1 graad

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(4);                       wacht 4ms voor de servo te bereiken de positie

}

voor (pos = 360; pos > = 1; pos-= 1) / / gaat van 360 graden naar 0 graden

{

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(4);                       wacht 4ms voor de servo te bereiken de positie

}

voor (pos = 0; pos < 180; pos += 1) / / gaat van 0 graden tot 180 graden

{/ / in stappen van 1 graad

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(3);                       wacht 3ms voor de servo te bereiken de positie

}

voor (pos = 180; pos > = 1; pos-= 1) / / gaat van 180 graden tot 0 graden

{

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(3);                       wacht 3ms voor de servo te bereiken de positie

}

voor (pos = 0; pos < 180; pos += 1) / / gaat van 0 graden tot 180 graden

{/ / in stappen van 1 graad

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(3);                       wacht 3ms voor de servo te bereiken de positie

}

voor (pos = 180; pos > = 1; pos-= 1) / / gaat van 180 graden tot 0 graden

{

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(3);                       wacht 3ms voor de servo te bereiken de positie

}

voor (pos = 0; pos < 180; pos += 1) / / gaat van 0 graden tot 180 graden

{/ / in stappen van 1 graad

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(3);                       wacht 3ms voor de servo te bereiken de positie

}

voor (pos = 180; pos > = 1; pos-= 1) / / gaat van 180 graden tot 0 graden

{

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(3);                       wacht 3ms voor de servo te bereiken de positie

}

}

}

anders

{

voor (pos = 0; pos < 360; pos += 2) / / gaat van 0 graden tot 360 graden

{/ / in stappen van 1 graad

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(10);                       wacht 10ms voor de servo te bereiken de positie

}

voor (pos = 360; pos > = 1; pos-= 2) / / gaat van 360 graden naar 0 graden

{

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(10);                       wacht 10ms voor de servo te bereiken de positie

}

voor (pos = 0; pos < 360; pos += 1) / / gaat van 0 graden tot 360 graden

{/ / in stappen van 1 graad

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(15);                       wacht 15ms voor de servo te bereiken de positie

}

voor (pos = 360; pos > = 1; pos-= 1) / / gaat van 360 graden naar 0 graden

{

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(15);                       wacht 15ms voor de servo te bereiken de positie

}

voor (pos = 0; pos < 180; pos += 1) / / gaat van 0 graden tot 180 graden

{/ / in stappen van 1 graad

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(7);                       wacht 7ms voor de servo te bereiken de positie

}

voor (pos = 180; pos > = 1; pos-= 1) / / gaat van 180 graden tot 0 graden

{

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(7);                       wacht 7ms voor de servo te bereiken de positie

}

voor (pos = 0; pos < 180; pos += 1) / / gaat van 0 graden tot 180 graden

{/ / in stappen van 1 graad

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(7);                       wacht 7ms voor de servo te bereiken de positie

}

voor (pos = 180; pos > = 1; pos-= 1) / / gaat van 180 graden tot 0 graden

{

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(7);                       wacht 7ms voor de servo te bereiken de positie

}

voor (pos = 0; pos < 180; pos += 1) / / gaat van 0 graden tot 180 graden

{/ / in stappen van 1 graad

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(7);                       wacht 7ms voor de servo te bereiken de positie

}

voor (pos = 180; pos > = 1; pos-= 1) / / gaat van 180 graden tot 0 graden

{

myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen

delay(7);                       wacht 7ms voor de servo te bereiken de positie

}

}

Serial.Print(BPM);

Serial.Print("\t");

sendDataToProcessing (de ', signaal);     Stuur verwerking van de ruwe gegevens van de Pulse Sensor

Als (QS == true) {/ / gekwantificeerd zelf vlag geldt wanneer arduino een hartslag vindt

fadeRate = 255;                  'FadeRate' variabele ingesteld op 255 te vervagen LED met pulse

sendDataToProcessing('B',BPM);   Stuur hartslag met een 'B'-prefix

sendDataToProcessing('Q',IBI);   tijd tussen beats met een voorvoegsel 'Q' verzenden

QS = false;                      Reset de vlag gekwantificeerd zelf voor de volgende keer

//     }

ledFadeToBeat();

myservo.attach(9);  de servo op pin 9 hecht aan de servo-object

myservo.write(POS);

delay(3000);                             Neem een pauze

}

ongeldig ledFadeToBeat() {}

fadeRate-= 15;                         LED vervagen waarde instellen

fadeRate = constrain(fadeRate,0,255);   LED vervagen waarde in negatieve getallen gaan houden!

analogWrite(fadePin,fadeRate);          vervagen van LED

}

VOID sendDataToProcessing (char symbool, int data) {}

Serial.Print(Symbol);                symbool voorvoegsel vertelt verwerken wat voor soort gegevens komt

Serial.println(Data);                de gegevens moeten worden verzonden die wordt afgesloten met een regeleinde

//  }

Nadat de code is geüpload testen door het aansluiten van uw staart naar het deel van de motor schild dat Servo2 zegt.

Opmerking:
Deze code is alleen ontwikkeld voor een servomotor, voor degenen die willen controleren van twee servomotoren zul je deze code aanpassen. Ik zal ook werken op het voor twee servomotoren, maar als iemand slaat me aan en een code van hun eigen gelieve ontwikkelt Vergeet niet om te delen! : D

De originele code van de Pulse Sensor kan hier worden gevonden:
SparkFun

Gerelateerde Artikelen

Zelfgemaakte Arduino vriendelijke Pulse Sensor

Zelfgemaakte Arduino vriendelijke Pulse Sensor

Ik zag de Open Hardware Pulse Sensor bij gedachte dat ik zou proberen om er thuis. Kostte me een tijdje, maar hier is mijn stuntelige proces.Stap 1: Pulse Sensor--overzichtIk heb gewerkt aan het opnieuw maken van de de Open Hardware Pulse Sensor dus
Wearable hartslag sensor ESP8266 + Pulse sensor

Wearable hartslag sensor ESP8266 + Pulse sensor

Als onderdeel van een wens om te leren over ESP8266 als standaloneIk dacht over een project voor puls sensor aansluiten en doorgeven van de BPM op de computer door TCP-verbinding.Tijdens de bouw kwam ik enkele problemen.De problemen bij mijn mening,
Pulse Sensor met Bluetooth en Arduino

Pulse Sensor met Bluetooth en Arduino

Dit is bedoeld om het gebruik van de puls-sensor (dat is nu gemakkelijk beschikbaar) met arduino uno projecten en Bluetooth HC-05 module, de pols-sensor op de vinger wordt geplaatst en het meet de hartslag en stuurt de hartslag naar android mobiele t
Arduino Pulse Sensor

Arduino Pulse Sensor

Dit is mijn eerste project hier, een arduino pro mini bord met Pulse Sensor gepubliceerd.Hier zal ik u laten zien hoe ik het deed mijn arduino bekabeling en codering, met inbegrip van de broncode en schema's. Ook ik een windows-hulpprogramma om aan t
Valentines Pulse Sensor

Valentines Pulse Sensor

bouwen op andermans werk, ik kwam met dit kleine apparaat om te gaan en mijn hartslag meten. Nu, ik wist dat het gepast was om te gaan en een hart-vorm maken van LEDs en zo, ik deed. Niet met een sjabloon, was ik nogal clueless. Een beetje experiment
Pulse Sensor Plumbob

Pulse Sensor Plumbob

mijn finale voor mijn klas digitale Multimedia vonden we een instructable wij graag en we moesten maken iets gelijkaardig met onze originele twist.Op deze site vond ik een man die zijn eigen versie van de Sims Plumbob gemaakt. (hieronder is de link n
Arduino Pulse Sensor Cardio grafiek

Arduino Pulse Sensor Cardio grafiek

De toepassing van de Arduino Pulse Sensor Cardio Graph illustreert hart beat informatie in grafische vorm. De toepassing toont verschillende hartslag variatie grafieken: Beats Per Minute (BPM), Interbeat intervallen (IBI), hartslag frequentie (Hz), P
Het gebruik van Pulse Sensor

Het gebruik van Pulse Sensor

Puls is een opensource hartslagsensor.Het maakt gebruik van verschillende lichtdoorlatendheid voor weefsels van het lichaam veroorzaakt door vasculaire pulserende voor het meten van de hartslag.Stap 1:1. bouw van de Arduino omgeving, de Arduino IDE d
LED Pulse Sensor (PPG) voor Arduino

LED Pulse Sensor (PPG) voor Arduino

Binnen dit Instructable ik zal je laten zien, het implementeren van een eenvoudige PPG (photoplethysmogram)-sensor voor de arduino. Dit apparaat gebruikt infrarood licht om je pols meten. U kan deze techniek weten uit de vingertop pulse sensoren in z
Alarm met beweging en geluid Sensor gecontroleerd en beheerd Via Web

Alarm met beweging en geluid Sensor gecontroleerd en beheerd Via Web

In deze Instructables zult maakte ik een kleine project met een blauw PHPoC uit Sollae systeem (Zuid Korea).PHPoC Blue(P4S-342) is een programmeerbare board met een PHPoC-interpreter ingebed. Het heeft 22 digitale input/output pinnen, 6 analoge ingan
Handenvrije Sensor gecontroleerd Robot

Handenvrije Sensor gecontroleerd Robot

Dit project is een eenvoudige robot bestuurd vanuit een PC door een toetsenbord of een sprong handenvrije bewegingssensor. De robot zelf draait op een PICAXE van 20M 2 chip, een microcontroller die is geprogrammeerd met een vorm van BASIC. Ik koos vo
Foto van Sensor gecontroleerd Outlet (bochten in- of uitschakelen bij daglicht of nightime)

Foto van Sensor gecontroleerd Outlet (bochten in- of uitschakelen bij daglicht of nightime)

Als je rond kijkt, is het zeer gemakkelijk te vinden een fotoelektrisch sensor switches die lichten uitgeschakeld gedurende de dag. Wat als uw project nodig dat u een item inschakelen tijdens de dag en het 's nachts uitgeschakeld. Ik denk dat die ook
DIY Arduino Pulse Sensor

DIY Arduino Pulse Sensor

Dus vermeld ik in een eerdere Instructable dat ik een onderwijs-assistent (TA) voor een engineering introductiecursus voor biomedische ingenieurstechnieken majors aan de Vanderbilt University. Mijn belangrijkste taak als een TA is opnieuw schrijven e
Gyro Sensor gecontroleerd auto

Gyro Sensor gecontroleerd auto

Had je ooit gespeeld games door gyro Sensor op uw mobiele apparaat? Natuurlijk ja.U kunt mobiele gyro sensor ook gebruiken om te controleren elke ding (dat wil zeggen auto's, robots) in echte life.you hoeft alleen maar enkele dingen...1) een Bluetoot