Un spectrophotomètre microplaques Arduino alimenté par (6 / 16 étapes)

Étape 6: En cours d’exécution les steppers

Le stepper 28YBJ-48 est un stepper 4-bobine avec un ratio d’endettement élevé (cité comme 64:1). Il y a quelques tutoriels utiles ici :

http://42bots.com/tutorials/28byj-48-Stepper-motor...

https://Arduino-info.wikispaces.com/SmallSteppers

Et un grand, général stepper Instructable ici :

Ils se connectent à l’Arduino via une carte de conducteur ULN2003 (le câble de moteur pas à pas se branche dans un sens seulement, donc ne vous inquiétez pas à obtenir le câblage incorrect). Vous pouvez exécuter ces moteurs avec la bibliothèque intégrée de Stepper dans l’Arduino. Ceci active chaque bobine en séquence, en parcourant le rotor 4 positions pour faire une rotation. C’est vraiment simple, mais limite la vitesse du stepper. Si les bobines passer trop rapidement, le rotor ne peut pas garder vers le haut et le moteur se bloque (vous entendrez un bruit de ronflement avec quelques vibrations). Nous avons utilisé la bibliothèque AccelStepper , qui permet un contrôle plus sophistiqué du moteur. Il vous permet d’utiliser une séquence de 8 étapes pour déplacer le rotor en demi-tons, rend plus facile pour elle de garder et par conséquent atteindre des vitesses plus rapides. Il vous permet également d’utiliser l’accélération, ce qui augmente également la vitesse maximale. Essayer d’obtenir le rotor pour passer immédiatement à la vitesse finale reste fera le rotor à caler. Accélère jusqu'à la vitesse finale permet à la dynamique du rotor s’accumuler, vous permettant de rejoindre plus rapidement les vitesses finales. La bibliothèque de AccelStepper prend un peu de s’y habituer, mais il nous a permis de courir les moteurs nettement plus vite. Vous devrez télécharger la bibliothèque à partir du lien donné et installez-le.

Mettre en place

 include <AccelStepper.h> // Motor pin definitions #define motorPin1 38 // IN1 on the ULN2003 driver #define motorPin2 40 // IN2 on the ULN2003 driver #define motorPin3 42 // IN3 on the ULN2003 driver#define motorPin4 44 // IN4 on the ULN2003 driverdefine motorPin5 39 // IN1 on the ULN2003 driver#define motorPin6 41 // IN2 on the ULN2003 driver#define motorPin7 43 // IN3 on the ULN2003 driver#define motorPin8 45 // IN4 on the ULN2003 driver // Define Parameters for Steppers #define HALFSTEP 8#define STEPS_PER_MOTOR_REVOLUTION 32#define STEPS_PER_OUTPUT_REVOLUTION 32*64 // =2048AccelStepper stepperX(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);AccelStepper stepperY(HALFSTEP, motorPin5, motorPin7, motorPin6, motorPin8);Stepper stepper_X(STEPS_PER_MOTOR_REVOLUTION, 38, 42, 40, 44);Stepper stepper_Y(STEPS_PER_MOTOR_REVOLUTION, 39, 43, 41, 45); int Position1 = 0;int Position2 = 0; 

Les ports de sortie sur l’Arduino qui se connectent avec les conseils du moteur doivent être définis. Chaque moteur pas à pas est connecté à une carte de conducteur qui module la sortie de l’Arduino et la transforme en la bonne séquence d’impulsions à envoyer à électro-aimants du stepper.

Le mécanisme de 8 étapes est défini comme HALFSTEP en tant que paramètre pour contrôler les moteurs pas à pas. Ceci fournit les informations à encoder pour la rotation des moteurs pas à pas en utilisant le mécanisme de 8 étapes. L’angle de l’étape de la séquence de 8 étapes (combien une seule étape tourne le pignon denté) est 5.625˚ (64 pas par tour). Le rapport de démultiplication est 1/64, sont donc de 64 x 64 (4096) pas par tour de l’arbre de sortie du moteur. Les positions des moteurs pas à pas sont également définies comme 0 à leur position de départ. Position1 est la variable de la position de stepper1 ; Position2 est la variable de la position du moteur pas à pas 2. PositionX définit la colonne sur la microplaque que le capteur est supérieure à (1-12), qui est contrôlée par stepperX ; PositionY définit la ligne sur la microplaque que le capteur est supérieur (A-H), qui est contrôlée par stepperY. En position de départ, les deux variables de position sont 0, ce qui équivaut à la sonde se trouvant au-dessus de puits A1

 // Set stepper speed and acceleration void setup(){stepper1.setMaxSpeed(3000.0);stepper1.setAcceleration(500.0);stepper2.setMaxSpeed(3000.0);stepper2.setAcceleration(500.0);} 

Le programme d’installation est enfermé dans des accolades: {...}. La vitesse et l’accélération des moteurs est défini pour les deux moteurs. Ces variables ont été choisis pour être bien en deçà des capacités des moteurs pas à pas pour prévenir le décrochage, mais suffisamment élevé pour que le programme est trop en longueur. La vitesse, 3000 (mesures par seconde), équivaut à 44 t/mn ; l’accélération, 500, équivaut à 7,3 t/mn ^ 2

Déplacement de la table

 delay (2000); //Take reading of A1 

Avant de déplacer les moteurs il y a un retard de 2000ms (2 secondes) pour permettre le premier échantillon (A1) à analyser

 stepper1.runToNewPosition(stepper1.currentPosition() +52406);Position1 = Position1 +1; delay(5000); // Stepper1 with delays between each turn 

Moteurs pas à pas 1 est pivotés 52406 étapes, qui équivaut à déplacer la microplaque de la 9mm entre deux échantillons adjacents. Une fois que le stepper a déplacé vers le puits adjacent, la variable PositionX est augmentée d’une unité à définir que la colonne que le capteur se trouve plus haut sur la microplaque a augmenté d’un (par exemple, de puits de A1 à A2). Le stepper fait une pause pour permettre le puits à analyser.

 if (Position1 == 11){ //after 11 turns of stepper 1 (at A12)stepper2.runToNewPosition(stepper2.currentPosition() +52406); Position2 = Position2 +1; delay(2000); stepper1.runToNewPosition(0); //return motor 1 to A1 Position1 = 0; delay(2000);} 

C’est pourquoi la microplaque sera déplacée pour puits adjacents est inférieure à la sonde, la pause et la répétition jusqu'à ce que le capteur soit plus haut de la colonne 12 (PositionX = 11). À ce stade, la clause de la fonction if() commandes que stepperY déplace la microplaque vers le bas, donc le capteur est au-dessus de la ligne suivante (à partir de la ligne A ligne B etc.), il y a une pause et par la suite la microplaque est retournée arrière afin que le capteur se trouve au-dessus de la première colonne.

 if (Position2 == 8){ //after 7 turns of motor 2 (row H)stepper1.runToNewPosition(0); //return motor 1 to H1 Position1 = 0; delay(2000); stepper2.runToNewPosition(0); //return to A1 while(1){}}} 

Les deuxième fonction if() clause les commandes les deux moteurs pour revenir à leurs positions d’origine (avec échantillon A1 au-dessous du capteur) une fois la première clause if () a été répété 8 fois. À ce stade, chaque cupule sur la microplaque a été analysée afin que cette clause ne réinitialise la position de la microplaque pour la prochaine utilisation. Les while(1) de code {} commandes cette clause seulement être répété une fois. Cela signifie qu’une fois la microplaque a été scannée et retournée au puits A1 l’arrêt de la boucle et la microplaque reste stationnaire.

Articles Liés

Nocturnal Emissions : Mon Arduino alimenté par Internet activé rêve générateur

Nocturnal Emissions : Mon Arduino alimenté par Internet activé rêve générateur

nous avons tous besoin de rêver plus, j'ai donc créé ce Arduino alimenté « générateur de rêve » pour aider à planter des graines pour certains folie de penser grand.  Quand vous approchez le générateur d'un capteur à ultrasons Maxbotix déclenche lumi
Comment construire un Robot jouant Arduino alimenté par Chess

Comment construire un Robot jouant Arduino alimenté par Chess

à en juger par le nombre d'échecs liés Instructables, je pense qu'il est sûr de dire que la communauté bénéficie du jeu.  Il peut être difficile, toutefois, de trouver quelqu'un qui joue au même niveau que vous faire.  Pour résoudre ce dilemme et d'a
Arduino alimenté par sonde de température avec écran LCD sortie première fois auteur entrée

Arduino alimenté par sonde de température avec écran LCD sortie première fois auteur entrée

Jamais été un gars un peu de concours, mais j'ai avancé et entré dans pour le premier concours d'auteur de temps, si vous aimez mon intructable ou même d'apprendre quelque chose de nouveau et je pense j'ai gagné votre vote s'il vous plaît ! =]Bonjour
ShotBot - Arduino alimenté par pompe projet

ShotBot - Arduino alimenté par pompe projet

Ce tutoriel de pompe du Arduino est connu comme le projet ShotBot, démontrant un moyen facile de construire un robot battante coup simple. Nous utilisons deux stations de pompage de RobotGeek et du code rapide pour créer un robot battante coup double
Arduino alimenté par boîte aux lettres connectée pour TfCD

Arduino alimenté par boîte aux lettres connectée pour TfCD

Cet appareil vous enverra une notification quand le facteur vous remettra des lettres (ou spam: p). ce guide va vous montrer étape par étape comment le système a été construit et fournit tout le code pour le faire fonctionner.Nous avons utilisé les c
Construire votre propre Arduino alimenté par Satellite pour seulement 2000 USD

Construire votre propre Arduino alimenté par Satellite pour seulement 2000 USD

Mise à jour : trouver la version finale de ce satellite à https://www.indiegogo.com/projects/sateloscope/x/7917212Merci de contribuer vos fonds pour mon projet, s'il vous plaît... ***Étape 1: Introduction Mise à jour : trouver la version finale de ce
Robopod l’Arduino alimenté par Robot

Robopod l’Arduino alimenté par Robot

Robopod est un robot arduino simple qui utilise des antennes pour détecter les obstacles. Moteurs de Robopod sont contrôlées par un pont en H et alimentés par une pile de 9 volts.  Circuit de Robopods est basé sur une maquette pour modification facil
Arduino alimenté par votre SmartPhone (avec SERIAL) - partie 1 - Sound and Vibration Actions

Arduino alimenté par votre SmartPhone (avec SERIAL) - partie 1 - Sound and Vibration Actions

Bienvenue dans la première partie de cette série. Dans cette série, que nous allons essayer sortir autant que nous pouvons de vous smartphone (android actuellement) à votre microcontrôleur à l'aide de câble série (câble OTG).Dans cette partie, nous v
Arduino alimenté par trois couleur 8 x 8 Led Array

Arduino alimenté par trois couleur 8 x 8 Led Array

comment connecter une couleur trois, comme en rouge, vert et bleu, colonne 8 par 8 rang de matrice de LED pour un Arduino.  Le numéro de modèle du tableau en cours d'utilisation est CRM-2388ARGB-L.  Il n'est pas venu avec des instructions de câblage,
Arduino alimenté par feu

Arduino alimenté par feu

prêtSTABLEGO GO GOÉtape 1: feux de circulationFeux de circulation sont très importants pour les routes qu'ils contrôlent le flux du trafic. L'un d'entre eux il est très simple et nous allons le faire!!Étape 2: Collecte de matérielMatériaux nécessaire
Clef de Morse iambique Arduino alimenté par

Clef de Morse iambique Arduino alimenté par

Remarque : Dans ce Instructable, je suppose que vous savez comment fonctionne une maquette, comment un Arduino fonctionne (comment vous programmez, comment il marche et autres) et vous savez comment câbler le RGB LED dans ce projet. Si vous ne connai
GigginoBot 2.0 : Arduino alimenté par robot

GigginoBot 2.0 : Arduino alimenté par robot

il s'agit de GigginoBot. Il est construit de recyclage d'une vieille affaire d'emballage de bouteille de vin. C'est Arduno basé et il a plusieurs capteurs. Dans la vidéo suivante, il utilise seulement les deux capteurs sonar sur le dessus pour se dép
Arduino alimenté Infared chose

Arduino alimenté Infared chose

Bonjour, ceci est mon premier instructible. Je vais vous montrer comment faire un arduino alimenté par un capteur analogique lecteur (je vais utiliser une photodiode infrarouge).Étape 1: pièces Vous aurez besoin de plusieurs choses à faire ceci :1. u
Faire un Arduino alimenté automatisation de Rideau

Faire un Arduino alimenté automatisation de Rideau

Dans cette vidéo j'ai commencer à travailler sur vous montrant comment faire un dispositif Arduino alimenté par qui va ouvrir et fermer les rideaux !À l'aide d'une corde et un servo de rotation continue, je suis capable de créer un système de poulies