Hall-Effect sensoren 1: Controle positie (4 / 6 stap)

Stap 4: Positie controle


Nu dat we hebben gezien een fundamentele interrupt kunnen we uitbreiden om te controleren de motor. Wij zijn gaan gebruiken, een enkele variabele en vervolgens afhankelijk van de bedieningssleutel is gaan vooruit of achteruit zullen we optellen of aftrekken van de waarde.

De subroutine speed0() zal worden gekoppeld aan de interrupt. Door te weten van de huidige positie en de positie van de bestemming te berekenen weten we welke richting om te sturen van de motor. Houd er rekening mee dat de graven niet perfect zijn. Voert u de motor voor een lange tijd heen en weer kan u hier en daar een telling verliezen en langzaam verliezen spoor van waar je bent. We zullen een homing routine gebruiken (zie volgende stap) om te helpen alles onder controle te houden.

De bijgevoegde code zal gaan de bedieningssleutel vooruit of achteruit door een vast bedrag wanneer u op de knoppen op pin 7 of 8 (actieve laag). U kunt het testen door met behulp van een draad verbonden aan GND.

Zie de bijgevoegde code hieronder voor meer details.

 #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 

Gerelateerde Artikelen

Hall-Effect sensoren 3: PID Control

Hall-Effect sensoren 3: PID Control

In dit Instructable, zullen wij sluiten onze driedelige serie over hall-effect sensoren door PID controle op onze positie bedieningsorgaan. We gaan over de drie onderdelen van PID controle (evenredige, integraal, afgeleide) en hoe zij elk de stap rea
Hall-Effect sensoren 2: Synchroniseren Motion

Hall-Effect sensoren 2: Synchroniseren Motion

In dit Instructable zal we op wat we geleerd hebben vorige week in de hall-effect Inleiding Instructable uitbreiden. Wij zullen de effecten van de hal op twee aandrijvers gebruiken om synchroniseren de beweging van de actuatoren. We beide punten zal
Hall effect sensor

Hall effect sensor

Een Hall effect sensor is een sensor die reactie op een magnetisch veld.Aan de ene kant van de sensor gaan wanneer de Hallsensor wordt gezet in een magnetisch veld de elektronen doorheen. De sensor zal dan één positieve en één negatieve kant hebben e
Elektrische fiets Hub Motor - Hoe Vervang de Sensor van een Hall-effect

Elektrische fiets Hub Motor - Hoe Vervang de Sensor van een Hall-effect

Borstelloze motoren gebruiken elektronische besturingen in plaats van de borstel systemen om de timing en de verdeling van de macht aan de motor. Om dit te doen, gebruiken sommige systemen controller hall-effect sensoren binnen de hub, die het bijhou
Hall Effect Sensor - NI Multisim

Hall Effect Sensor - NI Multisim

Een magneetschakelaar met behulp van een Hall Effect sensor in Multisim bouwen. 5 tot 10 minuten newbie speciale!Een Hall effect sensor is een transducer die varieert van de uitgangsspanning in reactie op een magnetisch veld. Hall-effect sensoren zij
Hall-Effect magnetische pool-id

Hall-Effect magnetische pool-id

Ik zag een magnetische pool detector op de website van een magneet voor $17, en welk toelijken vrij extreme en overdreven gemanipuleerde, zodat ik mijn eigen, onderdelen kopen via mijn eigen tech en adviesbureau, Vadien gebouwd. Ik stelde ook een kit
Toezicht op gebruik van residentiële water door het lezen van de gemeentelijke watermeter met Hall effect sensor + Arduino

Toezicht op gebruik van residentiële water door het lezen van de gemeentelijke watermeter met Hall effect sensor + Arduino

als u zou willen controleren uw waterverbruik, als onderdeel van een DIY slimme huisautomatisering en toezicht project, dan dit instructable u helpen kan dat doel te bereiken. De hier beschreven oplossing is niet-invasief, gebruik uw bestaande gemeen
Deur geactiveerd LED-verlichting met behulp van sensoren Hall-Effect

Deur geactiveerd LED-verlichting met behulp van sensoren Hall-Effect

ik heb zin om iets te maken koel voor mijn slaapzaal deze komende semester en besloten dat sommige aangepaste kast lichten zou ziet er geweldig uit. In dit Instructable, zal ik u tonen hoe te maken van enkele mooie LED-lampjes die zal aanzetten autom
Fan van RPM met interne hall effect sensor en de Arduino (Intro naar Hardware onderbreken en LCD display)

Fan van RPM met interne hall effect sensor en de Arduino (Intro naar Hardware onderbreken en LCD display)

Ik moest voor mijn andere project voor werk, meet de draaisnelheid van de rotor in omwentelingen Per minuut (RPM) van een gemodificeerde computer fan. Het had drie draden komen en dat me dat er enige manier om te controleren de snelheid kan worden aa
Raspberry Pi A1332 Precision Hall - Effect hoek Sensor het leerprogramma van Java

Raspberry Pi A1332 Precision Hall - Effect hoek Sensor het leerprogramma van Java

A1332 is een 360° contactloze hoge resolutie programmeerbare magnetische hoek positie sensor. Het is ontworpen voor digitale systemen via een I2C-interface. Het is gebouwd op circulaire verticale Hall (CVH) technologie en een programmeerbare micropro
Magno-Sniffer (magnetische Sniffer Probe Whistler ding met behulp van A Hall Effect Sensor)

Magno-Sniffer (magnetische Sniffer Probe Whistler ding met behulp van A Hall Effect Sensor)

werkt met magneten en willen een snelle manier om te zeggen hun NORTHs van hun SOUTHs? Wilt u een idee krijgen van hun veld vormen? Zoals het maken van weeeeeeeooooooeeeeeeoooo geluiden?Bouw een Magno-Sniffer met behulp van een hall effect sensor, 55
Magnetische slinger (met hall effect sensor)

Magnetische slinger (met hall effect sensor)

Deze eenvoudige Magnetische slinger met weinig componenten te bouwen. Hall effect sensor wordt gebruikt voor het detecteren van de aanwezigheid van magnetisch veld, en "push" de slinger in het exacte moment. Elektromagneet is "ON" tijd
Hall-Effect arrêtering schakelen als een Sensor van de teller draait voor een Coil Winder

Hall-Effect arrêtering schakelen als een Sensor van de teller draait voor een Coil Winder

magneten op een spinnen ding in de buurt van een hall-effect schakelaar chip make pulsen die een teller telt om te tellen de bochten het spinnen ding gesponnen arrêtering.Stap 1: Arrêtering Hall Switch? Sorry, dit is niet een zeer complete instructab
Vereenvoudigd Arduino AC huidige meting met behulp van ACS712 Hall Effect Sensor

Vereenvoudigd Arduino AC huidige meting met behulp van ACS712 Hall Effect Sensor

Dit is een vereenvoudigde benadering tot mijn voorafgaande Instructable over meten AC huidige met de huidige sensor van ACS712... koppelingVereenvoudigingen omvatten:Elimineren van de speciale signaal Conditioning printplaat - in plaats daarvan gaan