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

Étape 5: autoguidage

Même lorsque nous faisons de notre mieux pour compter chaque impulsion il y a peut-être des reprises que nous pouvons manquer un peu et lentement perdre de la précision au fil du temps. Pour cela que nous pouvons utiliser une routine de radioralliement minimiser ! L’idée est d’envoyer l’actionneur à un prédéterminé position (complètement étendus ou complètement rétractée) et positionner les chefs d’accusation à une valeur connue. Habituellement, c’est plus facile à complètement rétracter l’actionneur et les comtes la valeur 0. Dans le code ci-dessous, qu'il se remettra au maximum compte valeur lorsqu’il est entièrement étendu et réinitialisé à 0 lorsque complètement rétracté.

Du pour faire, vous avez besoin d’un moyen de dire quand le moteur est à ses limites. Ici nous allons utiliser la télédétection actuels de la MegaMoto à regarder quand le courant passe à 0. Quand cela arrive, nous pouvons voir que l’actionneur a Appuyez sur le commutateur de limite et cessé de déplacement. Nous avons un petit compteur en cours d’exécution parce que parfois, le courant peut signaler un faux 0. En faisant en sorte que le courant est de 0 pour un laps de temps, nous savons que le moteur a atteint une limite vraiment et qu’il n’obtient pas des lectures erronées.

Voir code ci-joint et commentaires pour plus d’informations :

 #define amp0 A5 #define PWMA0 6 #define PWMB0 5 #define enable0 13 //pins for first MegaMoto #define switch0 7 //Up button to add counts #define switch1 8 //Down button to subtract counts #define hall0 2 //interrupt pins for hall effect sensors int enable = 0; //enable pin for megaMoto int lowampLimit = 0;//Low limit to detect when actuator stops int amps = 0; //current readings int timedelay[] = {750, 50}; //first, regular delay for feedback int hitLimits = 0; int hitLimitsmax = 10;//value for knowing when retracted int count[] = {0};//Actuator int maxCounts = 1150;//number of counts when fully extended 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 extended = false; bool retracted = false;//actuator positions bool firstRun = true;//first run of the motor once the button is pushed void setup() { pinMode(amp0, INPUT); digitalWrite(amp0, LOW);//set Current sensors 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 retracted = true;//start retracted extended = false; Serial.begin(9600); }//end setup void loop() { ReadInputs();//check input button, calculate speeds if (sw[0] == 0 && sw[1] == 1 && backwards == false) destination = currentPos - 115;//dont change destination while moving else if (sw[0] == 1 && sw[1] == 0 && forwards == false) destination = currentPos + 115;//dont change destination while moving Serial.print("count[0] "); Serial.println(count[0]); Serial.print("currentPos "); Serial.println(currentPos); Serial.print("destination "); Serial.println(destination); 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() { amps = analogRead(amp0);//read current 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 getFeedback();//check current draw digitalWrite(enable0, HIGH);//enable board analogWrite(PWMA0, 255); analogWrite(PWMB0, 0);//apply speeds }//end goForwards void goBackwards() { forwards = false; backwards = true;//set travel direction getFeedback();//check current draw 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 void getFeedback() { amps = analogRead(amp0); Serial.print(" Amp readings - "), Serial.println(amps); if (amps <= lowampLimit && hitLimits < hitLimitsmax) hitLimits = hitLimits + 1; else hitLimits = 0; if (hitLimits == hitLimitsmax && backwards == true) { Serial.println("RETRACTED"); retracted = true; count[0] = 0; //reset counter when homed destination = 0; } if (hitLimits == hitLimitsmax && forwards == true) { Serial.println("EXTENDED"); extended = true; count[0] = maxCounts; //reset counter when extended destination = maxCounts; } }//end getFeedback 

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