Etape 23 : Arduino Software Development
Alors que le script Arduino requis pour implémenter la génération de signaux ECG n’est pas difficile, c’est un peu plus complexe que les exemples liminaire « clignoter une LED », l'on peut rencontrer. Voici quelques-unes des questions on doit réfléchir avant d’entrer dans la première ligne de code.Forme d’onde sous forme d’un tableau de langage C
Ce projet a deux critères importants concernant la forme d’onde. La fréquence d’échantillonnage sera 1000 fois par seconde (1 milliseconde par exemple) ; Cela a été retenu pour la fidélité de la bonne forme d’onde. La grille de cette forme d’onde devrait être de 0 à 4095 (faire un usage à grande échelle d’un convertisseur N/A unipolaire de 12 bits).
La forme d’onde doit résider dans l’EPROM, facilement satisfait en utilisant un const C-tableau avec un initialiseur sous la forme suivante :
const y_data court [] = {}
939, 940, 941, 942, 944, 945, 946, 947, 951, 956,
962, 967, 973, 978, 983, 989, 994, 1000, 1005, 1015
};
En déclarant le tableau de forme d’onde comme un const de tableau, il est monté dans l’EPROM de k 32 plutôt que le plus précieux 2k de RAM qui sera nécessaire pour les variables, etc..
Forme d’onde, mis à jour lorsqu’une interruption Timer2
La forme d’onde sera envoyé à un rythme de mise à jour des 1000 échantillons par seconde. Pour ce faire, Timer2 servira de compter sur une période de milliseconde un et ensuite déclencher une interruption Timer2. Au sein de la routine d’interruption, l’échantillon suivant sera déplacé du tableau stockées de forme d’onde et envoyé au convertisseur D/A via l’interface SPI. Le Timer2 est remis en marche et cela continue ad-infinitum (pour toujours).
Rythme cardiaque affiche toutes les 50 millisecondes
Chaque entrée 50e le Timer2 interrompre la routine, la fréquence cardiaque sélectionnée par l’utilisateur via le potentiomètre sera envoyée à l’affichage numérique à 4 chiffres (encore une fois à l’aide de l’interface SPI). Fois le D/A et l’affichage à 4 chiffres sont mises à jour dans la routine d’interruption du Timer2. Puisqu’elles sont sérialisé (l’un après l’autre), il n’y aura aucune prétention sur le bus d’interface SPI.
Fréquence cardiaque Pot lire dans la boucle de fond
L’Arduino boucle de fond est où la tension analogique (0 à 5 volts) défini par le pot est lue en utilisant une entrée analogique. Cette valeur servira pour spécifier le nombre d’échantillons dans la « période de repos » de l’onde, plus précisément cette période plat en ligne après la T-vague qui se poursuit jusqu’au début du prochain complexe PQRS. Cette valeur de « période de repos » sera écrit vers une variable qui sera lu par la routine d’interruption du Timer2.