Hall effekt sensorer 1: Placera kontroll (4 / 6 steg)

Steg 4: Placera kontroll



Nu när vi har sett en grundläggande avbryta kan vi utöka den för att styra motorn. Vi kommer för att använda en enda variabel och sedan beroende om manöverdonet är går framåt eller bakåt vi kommer att addera eller subtrahera från värdet.

Subrutin speed0() ska kopplas till avbrottet. Genom att veta den aktuella positionen och beräkna den destination ståndpunkten vet vi vilket håll du skicka motorn. Tänk på att räkningarna inte är perfekt. Om du kör motorn på länge fram och tillbaka kan du förlora en räknas här och där och långsamt tappa bort var du är. Vi kommer att använda en målsökande rutin (se nästa steg) för att hålla allt i schack.

Den bifogade uppförandekoden kommer att flytta manöverdonet framåt eller bakåt genom en viss summa när du trycker på knapparna på stift 7 eller 8 (aktiv låg). Du kan testa det genom att använda en tråd ansluten till GND.

Se bifogade koden nedan för mer detaljer.

#define PWMA0 6
#define PWMB0 5
#define enable0 13 //pins för första MegaMoto

#define switch0 7 //Up knapp
#define VÄXEL1 8 //Down knapp

#define hall0 2 //interrupt stift för hall effekt sensorer

int aktiverar = 0; Aktivera pin för megaMoto

int räkna [] = {0}. //Actuator

int sw [] = {1, 1}; växla upp, växla ner
int [prev] = {0, 0}, //previous switch staten

int currentPos = 0; //current position
int tröskel = 1;
int destination = 0;

bool framlänges = false;
bool bakåt = false; / / motor stater

bool firstRun = true; //first körning av motorn när knappen trycks

void setup() {
pinMode (PWMA0, OUTPUT);
pinMode (PWMB0, OUTPUT); //set PWM utgångar
pinMode (enable0, produktionen);
digitalWrite (enable0, låg); //set aktivera och tur ombord på OFF

pinMode (switch0, ingång);
pinMode (VÄXEL1, ingång);
digitalWrite (switch0, hög);
digitalWrite (VÄXEL1, hög), //set upp/ner switch, aktivera enternal reläer

pinMode (hall0, ingång);
digitalWrite (hall0, låg), //set hall, set låg starta för stigande kanten
attachInterrupt (0, speed0, RISING); Aktivera Halleffekten interupts

Serial.BEGIN(9600);
} //end setup

void loop() {
ReadInputs (); //check input knappen, beräkna hastigheter

om (sw [0] == 0 & & sw [1] == 1 & & bakåt == false) destination = currentPos - 200; //dont Ändra destination när du flyttar
annars om (sw [0] == 1 & & sw [1] == 0 & & framåt == false) destination = currentPos + 200; //dont Ändra destination när du flyttar

om ((destination > = (currentPos - tröskel)) & & (destination < = (currentPos + tröskel))) stopMoving (); //stop om du är tillräckligt nära
annars om (destination > currentPos) goForwards (); //move om du behöver
annars om (destination < currentPos) goBackwards (); //move om du behöver

för (int jag = 0; jag < = 1; i ++) prev [i] = sw [i]; lagra switch värden som tidigare värden
} //end loop

void speed0() {
om (framlänges == true) räkna [0] ++; om flytta framåt, lägga till punkter
annars om (bakåt == true) räkna [0]--; om flyttar tillbaka, subtrahera räknas
} //end speed0

void ReadInputs() {
SW [0] = digitalRead(switch0), sw [1] = digitalRead (VÄXEL1), //check växlar
currentPos = räkna [0]; //set där du är
} //end läsa ingångar

void goForwards()
{
framåt = sant;
baklänges = false; //set resa riktning
digitalWrite (enable0, hög); //enable styrelsen
analogWrite (PWMA0, 255);
analogWrite (PWMB0, 0); //apply hastigheter
} //end goForwards

void goBackwards()
{
framåt = false;
baklänges = true; //set resa riktning
digitalWrite (enable0, hög); //enable styrelsen
analogWrite (PWMA0, 0);
analogWrite (PWMB0, 255); //apply hastigheter
} //end goBackwards

void stopMoving()
{
framåt = false;
baklänges = false; //set resa riktning
analogWrite (PWMA0, 0);
analogWrite (PWMB0, 0); //set hastigheter till 0
Delay(10);
digitalWrite (enable0, låg); //disable styrelsen
} //end stopMoving

Se Steg
Relaterade Ämnen

Dörr aktiverad LED belysning med hjälp av Hall effekt sensorer

jag har varit mening att göra något häftigt för mitt studentrum denna kommande termin och beslutade att några anpassade garderob lampor skulle se bra ut. I detta Instructable, ska jag visa dig hur man gör några fina LED-lampor som tänds automatiskt m...

Magno-Sniffer (magnetiska Sniffer Probe Whistler sak med A Hall effekt Sensor)

arbeta med magneter och vill ha ett snabbt sätt att berätta deras NORTHs från deras SOUTHs? Vill du få en uppfattning om deras fältet former? Som gör weeeeeeeooooooeeeeeeoooo ljud?Bygga en Magno-Sniffer med en hall effekt sensor, 555 oscillator krets...

Hall effekt sensorer 3: PID Control

I detta Instructable kommer vi avsluta vår serie i tre delar på hall effekt sensorer genom att vår ståndpunkt kontroll PID control. Vi kommer att gå över de tre delarna av PID control (proportionell, Integral, derivat) och hur de påverkar klivasvaret...

Hall effekt sensorer 2: Synkroniserar rörelse

I detta Instructable utökar vi på vad vi lärt oss i hall effekt införandet Instructable förra veckan. Vi kommer använda hall effekterna på två manöverdon för synkronisering av manöverdonen. Vi kommer att följa båda dessa punkter, och om räkningarna f...

Elektrisk cykel Hub Motor - hur man byter en Hall-effekt Sensor

borstlösa motorer använda elektroniska styrenheter i stället för borstsystem för att kontrollera tidpunkten och fördelningen av makt till motorn. Det gör använder vissa controller system hall-effekt sensorer inuti navet som spårar motorns position. D...

Övervakning bostäder vattenförbrukning genom att läsa kommunala vattenmätare med Hall effekt sensor + Arduino

om du vill övervaka din vattenförbrukning, som en del av en DIY smart hemautomation och övervaka projekt, då detta instructable kan hjälpa dig att uppnå detta mål. Den lösning som beskrivs här är icke-invasiv, använder din befintliga kommunala vatten...

Fläkt RPM med inre hall effekt sensor och Arduino (Intro till hårdvara avbryta och LCD display)

För mitt andra projekt för arbete, jag var tvungen att mäta rotationshastigheten av rotoren i varv Per minut (RPM) av en modifierad dator fläkt. Den hade tre kablarna kommer ut och som kryssat mig som kanske har något sätt att kontrollera sin hastigh...

Magnetiska pendel (med hall effekt sensor)

Bygga denna enkla Magnetiska pendel med mycket få komponenter. Halleffekten sensor används för att upptäcka förekomsten av magnetfältoch "push" pendeln i exakt ögonblick. Elektromagnet är "ON" under endast 20mS och batteri power avlopp...

Hur man mäter AC nuvarande med Hall effekt Sensor med Arduino eller andra gemensamma Microcontrollers

Vänligen se ett nytt enklare tillvägagångssätt härMål: Detta Instructable visar hur att göra en gränssnittet box som, när skarvas i en förlängningssladd, tillåter gemensamma mikrokontroller som Arduino att mäta AC nuvarande som DC spänning signal pro...

Förenklad Arduino AC ström mätning med hjälp av ACS712 Hall effekt Sensor

Detta är en förenklad metod till min tidigare Instructable om mäta AC nuvarande med ACS712 nuvarande sensor... länkFörenklingar är:Att avskaffa särskilt Signal konditionering kretskort - istället ska vi använda funktionen "RunningStatistics" i A...

Billigaste ljud effekt Sensor under

medan du gör DIY projekt själv ibland behöver du några sensorer. Detta ljud effekt sensor är billigaste sensor du någonsin har sett. En sådan sensor hittar du på 12$-15$. Men detta är bara kostar 2$.Steg 1: Nödvändiga komponenter lista Nödvändiga kom...

Raspberry Pi A1332 Precision Hall - effekt vinkel sensorn Java Tutorial

A1332 är en 360° kontaktlösa högupplösta programmerbara magnetiska vinkel lägesgivare. Den är utformad för digitala system en I2C-gränssnittet. Det är byggt på cirkulär vertikala Hall (CVH) teknik och en programmerbara mikroprocessorn baserad signalb...

Programmera Linker Hall Sensor på pcDuino med Python

Linker Hall Sensor Modulen är en Hall sensor.En Hall effekt sensor är en givare som varierar sitt utspänning som svar på ett magnetfält. Hall effekt sensorer används för närhet växla, positionering, hastighet upptäckt och aktuella miljöavkänning appl...

Halleffekten sensor

En Hall effekt sensor är en sensor som svar på ett magnetfält.När hall sensorn placeras i ett magnetfält Elektronerna rinner genom att flytta till ena sidan av sensorn. Sensorn kommer då ha en positiv och en negativ sida och skapa en spänning, känd s...

Billigt och enkelt varvräknare (RPM Sensor) för borstad DC motorer

jag kom bara upp med en mycket enkel, lätt att genomföra, och mycket billigt sätt att övervaka VARVTALET på borstad DC-motorer. Det skulle också fungera på borstlösa motorer men det finns bättre sätt för dem (räknande fasbyte) så jag skulle bara reko...

Rädda världen en droppe i taget, del 3: Nätverk din sensorer

För detta projekt arbetat jag tillsammans med Will Buchanan - delarna 1 och 2 - att skapa ett hem automationssystem som spår vatten användning över fixturer i hemmet, (handfat, dusch, WC etc). Med hjälp av visuella köer (inklusive ljus färg, längd oc...

Hur man använder vatten flöde Sensor - Arduino handledning

I denna tutorial får du lära dig att använda ett vatten flöde sensor med en Arduino ombord.Vatten flödessensorn består av en plast ventilhuset, en vatten rotor och en hall-effekt sensor. När vattnet flödar genom rotorn, rotor rullar och hastigheten p...

Halleffekten Sensor - NI Multisim

Bygga ett magnetiskt växla med en Hall effekt sensor i Multisim. 5 till 10 minuters nybörjare special!En Hall effekt sensor är en givare som varierar sitt utspänning som svar på ett magnetfält. Hall effekt sensorer är begagnade forproximity växla, po...

Dr Strange kostym

En Dr. konstigt kostym väcks till liv med trollformler med microcontrollers, lysdioder och sensorer!Se, trollkarl högsta!Med filmen kommer snart, sa en vän till mig min nästa kostym bör vara Dr Strange... Jag tror inte att han menade mig att ta honom...