Capteur contrôlée queue d’impulsion (3 / 4 étapes)

Étape 3: Capteur d’impulsions et code

3.1
Le capteur d’impulsions peut être acheté chez SparkFun 24,95 $, sparkfun fournit également le code que vous devrez travailler avec gratuitement !

Alors prenez votre Arduino, prise USB Arduino, capteur d’impulsions, bouclier moteur et arriver à un ordinateur !
(même si c’est plus que probablement vous avez déjà atteint un ordinateur si vous lisez ce lol)

Allez-y et faites glisser votre flasque arrière sur le dessus de votre Arduino et branchez dedans à votre ordinateur, une fois le programme Arduino est ouvert vous pouvez brancher votre capteur d’impulsions (fil violet à A0, rouge à 5V ou 3V et noir à GRD) et j’ai développé ce code combinant le code capteur de pouls et le code de base de balayage

Ce qui devrait arriver est à comme certaine fréquence cardiaque est inférieure à 66 bpm elle empruntera à un taux normal si votre fréquence cardiaque est supérieure à 66 bpm puis il se déplace plus vite :

#include < Servo.h >

Servo myservo ;  Créez l’objet servo pour contrôler un servo

vous pouvez créer un maximum de huit objets de servo

int pinNineInput = 9 ;

int pulsePin = 0 ;                 Impulsion capteur violet fil connecté à broche analogique 0

int blinkPin = 13 ;                broche à clignoter conduit à chaque battement

int fadePin = 5 ;                  broche pour fantaisie chic décoloration blink à chaque battement

int fadeRate = 0 ;                 utilisé pour se faner LED sur avec PWM sur fadePin

ces variables sont instables car ils sont utilisés au cours de la routine d’interruption du service !

volatile int puls/min ;                   utilisée pour stocker la valeur du pouls

volatile int Signal ;                contient les données brutes entrantes

volatile int IBI = 600 ;             détient le temps entre deux battements, l’intervalle inter-Beat

volatil Pulse booléen = false ;     true lorsque l’onde de pouls est élevé, false lorsqu’elle est faible

volatils QS booléens = false ;        prend la valeur true lorsque Arduoino trouve un battement.

int pos = puls/min ;

void setup()

{

myservo.Attach(9) ;  attache le servo sur la broche 9 à l’objet de servo

pinMode(blinkPin,OUTPUT) ;         goupille qui se mettra à clignoter à votre rythme cardiaque !

pinMode(fadePin,OUTPUT) ;          goupille qui se dissipera à votre rythme cardiaque !

Serial.Begin(115200) ;             Nous sommes d’accord parler vite !

interruptSetup() ;                 met en place à lu signal capteur d’impulsions chaque 2mS

UN commentaire la ligne suivante si vous êtes mise sous tension du capteur d’impulsions à basse tension,

ET DEMANDER QUE LA TENSION SUR LA BROCHE A-REF

analogReference(EXTERNAL) ;

}

void loop()

{

Si (pinNineInput < 66)

{

pour (pos = 0; pos < 360; pos += 2) / / va de 0 degrés à 360 degrés

{/ / par incréments de 1 degré

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(5) ;                       attend 5 ms pour le servo atteindre la position

}

pour (pos = 360; pos > = 1; pos-= 2) / / va de 360 degrés à 0 degrés

{

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(5) ;                       attend 5 ms pour le servo atteindre la position

}

pour (pos = 0; pos < 360; pos += 1) / / va de 0 degrés à 360 degrés

{/ / par incréments de 1 degré

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(15) ;                       attend 15 ms pour le servo atteindre la position

}

pour (pos = 360; pos > = 1; pos-= 1) / / va de 360 degrés à 0 degrés

{

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(15) ;                       attend 15 ms pour le servo atteindre la position

}

pour (pos = 0; pos < 180; pos += 1) / / va de 0 degrés à 180 degrés

{/ / par incréments de 1 degré

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(3) ;                       attend 3ms du servo atteindre la position

}

pour (pos = 180; pos > = 1; pos-= 1) / / va de 180 degrés à 0 degrés

{

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(3) ;                       attend 3ms du servo atteindre la position

}

pour (pos = 0; pos < 180; pos += 1) / / va de 0 degrés à 180 degrés

{/ / par incréments de 1 degré

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(3) ;                       attend 3ms du servo atteindre la position

}

pour (pos = 180; pos > = 1; pos-= 1) / / va de 180 degrés à 0 degrés

{

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(3) ;                       attend 3ms du servo atteindre la position

}

pour (pos = 0; pos < 180; pos += 1) / / va de 0 degrés à 180 degrés

{/ / par incréments de 1 degré

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(3) ;                       attend 3ms du servo atteindre la position

}

pour (pos = 180; pos > = 1; pos-= 1) / / va de 180 degrés à 0 degrés

{

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(3) ;                       attend 3ms du servo atteindre la position

}

}

ElseIf (pinNineInput > = 66)

{

{

pour (pos = 0; pos < 360; pos += 2) / / va de 0 degrés à 360 degrés

{/ / par incréments de 1 degré

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(5) ;                       attend 5 ms pour le servo atteindre la position

}

pour (pos = 360; pos > = 1; pos-= 2) / / va de 360 degrés à 0 degrés

{

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(5) ;                       attend 5 ms pour le servo atteindre la position

}

pour (pos = 0; pos < 360; pos += 1) / / va de 0 degrés à 360 degrés

{/ / par incréments de 1 degré

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(4) ;                       attend 4ms du servo atteindre la position

}

pour (pos = 360; pos > = 1; pos-= 1) / / va de 360 degrés à 0 degrés

{

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(4) ;                       attend 4ms du servo atteindre la position

}

pour (pos = 0; pos < 180; pos += 1) / / va de 0 degrés à 180 degrés

{/ / par incréments de 1 degré

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(3) ;                       attend 3ms du servo atteindre la position

}

pour (pos = 180; pos > = 1; pos-= 1) / / va de 180 degrés à 0 degrés

{

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(3) ;                       attend 3ms du servo atteindre la position

}

pour (pos = 0; pos < 180; pos += 1) / / va de 0 degrés à 180 degrés

{/ / par incréments de 1 degré

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(3) ;                       attend 3ms du servo atteindre la position

}

pour (pos = 180; pos > = 1; pos-= 1) / / va de 180 degrés à 0 degrés

{

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(3) ;                       attend 3ms du servo atteindre la position

}

pour (pos = 0; pos < 180; pos += 1) / / va de 0 degrés à 180 degrés

{/ / par incréments de 1 degré

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(3) ;                       attend 3ms du servo atteindre la position

}

pour (pos = 180; pos > = 1; pos-= 1) / / va de 180 degrés à 0 degrés

{

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(3) ;                       attend 3ms du servo atteindre la position

}

}

}

d’autre

{

pour (pos = 0; pos < 360; pos += 2) / / va de 0 degrés à 360 degrés

{/ / par incréments de 1 degré

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(10) ;                       attente de 10 ms pour le servo atteindre la position

}

pour (pos = 360; pos > = 1; pos-= 2) / / va de 360 degrés à 0 degrés

{

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(10) ;                       attente de 10 ms pour le servo atteindre la position

}

pour (pos = 0; pos < 360; pos += 1) / / va de 0 degrés à 360 degrés

{/ / par incréments de 1 degré

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(15) ;                       attend 15 ms pour le servo atteindre la position

}

pour (pos = 360; pos > = 1; pos-= 1) / / va de 360 degrés à 0 degrés

{

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(15) ;                       attend 15 ms pour le servo atteindre la position

}

pour (pos = 0; pos < 180; pos += 1) / / va de 0 degrés à 180 degrés

{/ / par incréments de 1 degré

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(7) ;                       attend 7ms pour le servo atteindre la position

}

pour (pos = 180; pos > = 1; pos-= 1) / / va de 180 degrés à 0 degrés

{

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(7) ;                       attend 7ms pour le servo atteindre la position

}

pour (pos = 0; pos < 180; pos += 1) / / va de 0 degrés à 180 degrés

{/ / par incréments de 1 degré

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(7) ;                       attend 7ms pour le servo atteindre la position

}

pour (pos = 180; pos > = 1; pos-= 1) / / va de 180 degrés à 0 degrés

{

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(7) ;                       attend 7ms pour le servo atteindre la position

}

pour (pos = 0; pos < 180; pos += 1) / / va de 0 degrés à 180 degrés

{/ / par incréments de 1 degré

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(7) ;                       attend 7ms pour le servo atteindre la position

}

pour (pos = 180; pos > = 1; pos-= 1) / / va de 180 degrés à 0 degrés

{

myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »

Delay(7) ;                       attend 7ms pour le servo atteindre la position

}

}

Serial.Print(BPM) ;

Serial.Print("\t") ;

sendDataToProcessing (les de ', de Signal) ;     Envoyer les données brutes du capteur d’impulsions de traitement

Si (QS == true) {/ / drapeau Self quantifié est vrai quand arduino trouve un battement de coeur

fadeRate = 255 ;                  La valeur « fadeRate » Variable 255 se faner LED avec impulsion

sendDataToProcessing('B',BPM) ;   Envoyer la fréquence cardiaque avec un préfixe « B »

sendDataToProcessing('Q',IBI) ;   Envoyer le temps entre deux battements avec le préfixe « Q »

QS = false ;                      réinitialiser l’indicateur auto quantifiés pour la prochaine fois

//     }

ledFadeToBeat() ;

myservo.Attach(9) ;  attache le servo sur la broche 9 à l’objet de servo

myservo.Write(POS) ;

Delay(3000) ;                             Faites une pause

}

void ledFadeToBeat() {}

fadeRate-= 15 ;                         valeur de fondu de LED

fadeRate = constrain(fadeRate,0,255) ;   valeur fondu LED empêcher d’entrer dans les nombres négatifs !

analogWrite(fadePin,fadeRate) ;          fondu de LED

}

void sendDataToProcessing (symbole de char, int data) {}

Serial.Print(Symbol) ;                préfixe de symbole indique quel type de données provient de la transformation

Serial.println(Data) ;                les données à envoyer qui a abouti à un retour chariot

//  }

Une fois que le code est téléchargé le tester en branchant votre queue à la partie de la flasque arrière qui dit Servo2.

Remarque :
Ce code est uniquement développé pour un servo-moteur, pour ceux qui veulent contrôler deux servomoteurs que vous devrez ajuster ce code. Je vais également travailler là-dessus pour tenir compte de deux servomoteurs, mais si quelqu'un me bat pour elle et qu’elle élabore un code de leur propre s’il vous plaît n’oublient pas de partager ! : D

Le code original de capteur d’impulsions peut être trouvé ici :
SparkFun

Articles Liés

Capteur avec Bluetooth et Arduino d’impulsion

Capteur avec Bluetooth et Arduino d’impulsion

Ces projets vise à utiliser le capteur d'impulsions (qui est facilement disponible maintenant) avec arduino uno et module Bluetooth HC-05, le capteur d'impulsions est placé sur le doigt et il mesure la fréquence cardiaque et envoie ensuite la fréquen
Contrôle de moteur sans balai avec Arduino, récupéré moteur HD et des capteurs Hall

Contrôle de moteur sans balai avec Arduino, récupéré moteur HD et des capteurs Hall

il y a beaucoup d'intérêt ces jours-ci chez les amateurs dans le contrôle moteur Brushless DC (BLDC), qui ont amélioré la performance et une meilleure efficacité énergétique surREDUCTEUR traditionnels, mais sont plus difficiles à utiliser. Beaucoup d
Queue de loup contrôlé par Arduino

Queue de loup contrôlé par Arduino

salutations, ou devrais-je dire, « Aaaaaooooooooooooh! » Plaisir de faire votre passionné de loup compagnons de connaissance. Vous avez un esprit de loup intérieure qui est tellement désireux de se faire connaître que vous sont venus à moi pour appre
Capteur de Distance ultrason longue portee

Capteur de Distance ultrason longue portee

Ce Instructable illustre une méthode de plus en plus la plage de mesure du capteur ultrasonique distance HC-SR04 populaire.L'amélioration dans la gamme repose sur la réduction du champ de vision (FOV) le capteur de base en l'utilisant comme un élémen
Capteur de vitesse gearbox Tamiya 72004 ver

Capteur de vitesse gearbox Tamiya 72004 ver

je voulais contrôler avec précision la vitesse du moteur dans une boîte de vitesses ver 72004 Tamiya pour un robot que je construis. Pour ce faire, vous devez avoir un moyen de mesurer la vitesse du courant. Ce projet montre l'évolution du capteur vi
Voiture contrôlée à distance de framboise PI

Voiture contrôlée à distance de framboise PI

Je suis de l'époque, lorsque le premier ordinateur personnel est né à microprocesseur Zilog Z-80. Ces jours-là, il faut écrire les codes de programme en langage d'assemblage. Écrire en EEPROM via eeprom brûleurs et programme de modifier/effacer dans
Discours contrôlée Quadropod

Discours contrôlée Quadropod

Il s'agit de mon premier post sur Instructables et je suis super heureux de partager mes connaissances !Mon message de robot original est ici : Spryo SpoonTail qui est juste mon robot montrant quelques trucs, mais avec un contrôle captif.Dans ce Inst
Capteur à effet Hall

Capteur à effet Hall

Un capteur à effet Hall est une sonde que la réponse à un champ magnétique.Quand le capteur hall est mis dans un champ magnétique, les électrons traversant se déplace d'un côté du capteur. Le capteur va alors ont un positif et un côté négatif et crée
Interfaçage d’un capteur de vent à LEDs

Interfaçage d’un capteur de vent à LEDs

objectifs :En utilisant Arduino, interface un capteur vent/souffle à LEDs. Via Arduino, vous pouvez programmer les LEDs pour répondre aux différents niveaux du vent par le capteur, contrôle la luminosité des LEDs individuelles, et programme un patron
Débuter avec le capteur de Bend

Débuter avec le capteur de Bend

Nous avons commencé par regarder comment le capteur de Bend est mise vers le haut, et comment il fonctionne.Nous avons ensuite examiné différents domaines, dans que nous pouvons le voir beeing utilisé.Enfin, nous avons fait un feu étaient vous pouvez
Comment faire un capteur de Distance à ultrasons Simple Arduino

Comment faire un capteur de Distance à ultrasons Simple Arduino

Il s'agit d'un simple tutoriel sur comment faire un capteur de Distance ultrason Arduino en centimètres. Vous aurez besoin de savoir comment utiliser une carte de test électronique de base et Arduino.Étape 1: Ce qui est un capteur à ultrasons Un capt
Lumières de costume de squelette fil EL contrôlées par un Arduino

Lumières de costume de squelette fil EL contrôlées par un Arduino

Résumé du projet :EL fil a été cousu sur une chemise et un pantalon dans une configuration de squelette.  Un capteur à chaque coude tourné fils EL cette dépendance marche/arrêt.  Un capteur sous chaque heal contrôlé la jambe correspondante EL fil.  U
Midi contrôlant Leggings

Midi contrôlant Leggings

Vous avez tous voulu contrôler la musique ou des effets visuels avec vos jambières ? Si vous avez toujours voulu s'éloigner des contraintes d'utilisation d'un clavier midi ou appuyer sur des boutons sur votre ordinateur pour manipuler votre audio ou
Arduino contrôlée feux

Arduino contrôlée feux

Bonjour, mon nom est Blane Parker, j'ai 14 ans et vivants au Texas. J'aime jouer avec l'électronique et de visiter instructables souvent à apprendre ; pour devenir meilleur en électronique.1. qu'avez-vous fait ?J'ai fait l'appareil qui se branche sur