Capteurs à effet Hall 1: Positionner le contrôle (4 / 6 étapes)

Etape 4: Contrôle de Position

Maintenant que nous avons vu une interruption de base nous pouvons déployer pour commander le moteur. Nous allons pour utiliser une variable unique et ensuite selon si le vérin est aller vers l’avant ou vers l’arrière nous ajouter ou soustraire de la valeur.

La sous-routine speed0() sera liée à l’interruption. En connaissant la position actuelle et calcul de la position de la destination, nous savons quelle direction pour envoyer le moteur. Gardez à l’esprit que les chefs d’accusation ne peuvent pas être parfaits. Si vous exécutez le moteur pendant une longue période en arrière, on peut perdre un compte ici et là et lentement perdent la trace de l’endroit où vous êtes. Nous allons utiliser une routine de guidage (Voir l’étape suivante) pour aider à garder tout en échec.

Le code ci-joint se déplacera l’actionneur vers l’avant ou vers l’arrière par un montant fixe lorsque vous appuyez sur les boutons sur la broche 7 ou 8 (peu actif). Vous pouvez le tester en utilisant un fil attaché à GND.

Consultez le code ci-joint ci-dessous pour plus de détails.

 #define PWMA0 6 #define PWMB0 5 #define enable0 13 //pins for first MegaMoto #define switch0 7 //Up button #define switch1 8 //Down button #define hall0 2 //interrupt pins for hall effect sensors int enable = 0; //enable pin for megaMoto int count[] = {0};//Actuator int sw[] = {1, 1}; //switch up, switch down int prev[] = {0, 0};//previous switch state int currentPos = 0;//current position int threshold = 1; int destination = 0; bool forwards = false; bool backwards = false;// motor states bool firstRun = true;//first run of the motor once the button is pushed void setup() { pinMode(PWMA0, OUTPUT); pinMode(PWMB0, OUTPUT);//set PWM outputs pinMode(enable0, OUTPUT); digitalWrite(enable0, LOW);//set enable and turn board OFF pinMode(switch0, INPUT); pinMode(switch1, INPUT); digitalWrite(switch0, HIGH); digitalWrite(switch1, HIGH);//set up/down switch, enable enternal relays pinMode(hall0, INPUT); digitalWrite(hall0, LOW);//set hall, set low to start for rising edge attachInterrupt(0, speed0, RISING); //enable the hall effect interupts Serial.begin(9600); }//end setup void loop() { ReadInputs();//check input button, calculate speeds if (sw[0] == 0 && sw[1] == 1 && backwards == false) destination = currentPos - 200;//dont change destination while moving else if (sw[0] == 1 && sw[1] == 0 && forwards == false) destination = currentPos + 200;//dont change destination while moving if ((destination >= (currentPos - threshold)) && (destination <= (currentPos + threshold))) stopMoving();//stop if you're close enough else if (destination > currentPos) goForwards();//move if you need to else if (destination < currentPos) goBackwards();//move if you need to for (int i = 0; i <= 1; i++) prev[i] = sw[i]; //store switch values as previous values }//end loop void speed0() { if (forwards == true) count[0]++; //if moving forwards, add counts else if (backwards == true) count[0]--; //if moving back, subtract counts }//end speed0 void ReadInputs() { sw[0] = digitalRead(switch0), sw[1] = digitalRead(switch1);//check switches currentPos = count[0];//set where you are }//end read inputs void goForwards() { forwards = true; backwards = false;//set travel direction digitalWrite(enable0, HIGH);//enable board analogWrite(PWMA0, 255); analogWrite(PWMB0, 0);//apply speeds }//end goForwards void goBackwards() { forwards = false; backwards = true;//set travel direction digitalWrite(enable0, HIGH);//enable board analogWrite(PWMA0, 0); analogWrite(PWMB0, 255);//apply speeds }//end goBackwards void stopMoving() { forwards = false; backwards = false;//set travel direction analogWrite(PWMA0, 0); analogWrite(PWMB0, 0);//set speeds to 0 delay(10); digitalWrite(enable0, LOW);//disable board }//end stopMoving 

Articles Liés

Capteurs à effet Hall 3: Régulation PID

Capteurs à effet Hall 3: Régulation PID

Dans ce Instructable, nous va conclure notre série de trois parties sur les capteurs à effet hall en appliquant le contrôle PID à notre contrôle de position. Nous irons sur les trois volets de régulation PID (proportionnel, intégral, dérivé) et comme
Ventilateur t/mn avec capteur à effet hall interne et Arduino (Intro à interrompre la matériel et écran LCD)

Ventilateur t/mn avec capteur à effet hall interne et Arduino (Intro à interrompre la matériel et écran LCD)

Pour mon autre projet pour le travail, j'ai dû mesurer la vitesse de rotation du rotor en révolutions par Minute (tr/min) d'un ventilateur d'ordinateur mis à jour le. Il avait trois fils qui sortent et qui fait TIC TAC moi que peut-être qu'il a un mo
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
Capteur à effet Hall - NI Multisim

Capteur à effet Hall - NI Multisim

Construire un interrupteur magnétique à l'aide d'un capteur à effet Hall dans Multisim. 5 à 10 minutes débutant spécial !Un capteur à effet Hall est un transducteur qui varie sa tension de sortie en réponse à un champ magnétique. Capteurs à effet Hal
Surveillance de la consommation d’eau résidentielle par la lecture de compteur d’eau municipale avec capteur à effet Hall + Arduino

Surveillance de la consommation d’eau résidentielle par la lecture de compteur d’eau municipale avec capteur à effet Hall + Arduino

si vous souhaitez contrôler votre usage de l'eau, dans le cadre d'un bricolage domotique intelligente et projet de suivi, cette instructable pourrait vous aider à atteindre cet objectif. La solution décrite ici est non invasive, utilise votre compteu
Capteurs à effet Hall 2: Synchronisation de mouvement

Capteurs à effet Hall 2: Synchronisation de mouvement

Dans ce Instructable on étendra sur ce que nous avons appris la semaine dernière dans l'introduction de l'effet hall Instructable. Nous utiliserons les effets hall sur deux actionneurs pour synchroniser le mouvement des actionneurs. Nous permettra de
Vélo électrique centre moteur - comment faire pour remplacer un capteur à effet Hall

Vélo électrique centre moteur - comment faire pour remplacer un capteur à effet Hall

moteurs Brushless utilisent régulateurs électroniques plutôt que des systèmes de brosse pour contrôler le moment et la distribution de l'alimentation électrique du moteur. Pour ce faire, certains systèmes de contrôleur utilisent des capteurs à effet
Magno-Sniffer (magnétique Sniffer sonde Whistler chose en utilisant un capteur à effet Hall)

Magno-Sniffer (magnétique Sniffer sonde Whistler chose en utilisant un capteur à effet Hall)

travailler avec des aimants et que vous voulez un moyen rapide pour dire leurs NORTHs de leurs SOUTHs ? Vous voulez avoir une idée de leurs formes de champ ? Comme des bruits de weeeeeeeooooooeeeeeeoooo ?Construire un Magno-renifleur à l'aide d'un ca
Éclairage par LED activé à l’aide de capteurs à effet Hall de porte

Éclairage par LED activé à l’aide de capteurs à effet Hall de porte

j'ai été sens à faire quelque chose de cool pour ma chambre d'étudiant cette prochaine session et a décidé que certains lumières placards personnalisés auraient fière allure. Dans ce Instructable, je vais vous montrer comment faire certains lumières
Pendule magnétique (avec capteur à effet hall)

Pendule magnétique (avec capteur à effet hall)

Construire cette simple Pendule magnétique avec très peu de composants. Capteur à effet Hall est utilisé pour détecter la présence du champ magnétiqueet de "pousser" le pendule au moment précis. Électro-aimant est "ON" pendant seulemen
Comment faire pour mesure courant CA à l’aide de capteur à effet Hall avec Arduino ou autres microcontrôleurs commune

Comment faire pour mesure courant CA à l’aide de capteur à effet Hall avec Arduino ou autres microcontrôleurs commune

S'il vous plaît voir une nouvelle approche plus simple iciObjectif : Ce Instructable montre comment faire une boîte d'interface qui, lorsque raccordé à une rallonge, permet de microcontrôleurs communs comme l'Arduino à mesure AC courant comme un sign
Simplifié de mesure de courant alternatif Arduino à l’aide de capteur à effet Hall ACS712

Simplifié de mesure de courant alternatif Arduino à l’aide de capteur à effet Hall ACS712

C'est un simplifié l'approche à mon Instructable préalable concernant la mesure de courant avec le capteur de courant ACS712... lienDes simplifications comprennent :Éliminant la spéciale carte de circuits de conditionnement de signaux - au lieu de ce
Identificateur de pôle magnétique à effet Hall

Identificateur de pôle magnétique à effet Hall

J'ai vu un détecteur de pôle magnétique sur un site Web aimant pour 17 $, et qui semblait assez extrême et trop complexe, alors j'ai construit ma propre, pièces fournies par ma propre société de Conseil, Vadien et tech. J'ai aussi compilé un kit comp
Effet Hall verrouillage commutateur comme un capteur de compteur tourne pour un enrouleur de la bobine

Effet Hall verrouillage commutateur comme un capteur de compteur tourne pour un enrouleur de la bobine

aimants sur une chose de filature près un verrouillage commutateur puce fais impulsions qui un compteur compte pour compter les virages la chose de filature filée à effet hall.Étape 1: Verrouillage commutateur Hall ? Désolé, ce n'est pas un très comp