INHOUDSOPGAWE:

Arduino Hall -effek sensor met onderbrekings: 4 stappe
Arduino Hall -effek sensor met onderbrekings: 4 stappe

Video: Arduino Hall -effek sensor met onderbrekings: 4 stappe

Video: Arduino Hall -effek sensor met onderbrekings: 4 stappe
Video: How to use Allegro ACS712 AC/DC Current Sensor with Arduino 2024, Julie
Anonim
Image
Image
Wat is 'n saal -effek sensor?
Wat is 'n saal -effek sensor?

Haai almal, Vandag sal ek u wys hoe u 'n saal -effek sensor aan 'n Arduino kan koppel en dit met 'n onderbreking kan gebruik.

Gereedskap en materiaal wat in die video gebruik word (aangeslote skakels): Arduino Uno:

Hall -effek sensors:

Verskeie weerstande:

Stap 1: Wat is 'n saal -effek sensor?

Wat is 'n saal -effek sensor?
Wat is 'n saal -effek sensor?
Wat is 'n saal -effek sensor?
Wat is 'n saal -effek sensor?
Wat is 'n saal -effek sensor?
Wat is 'n saal -effek sensor?

'N Hall -effek sensor is 'n toestel wat gebruik word om die grootte van 'n magnetiese veld te meet. Die uitgangsspanning daarvan is direk eweredig aan die magnetiese veldsterkte daardeur.

Hall -effek sensors word gebruik vir nabyheidswaarneming, posisionering, spoedopsporing en stroomwaarnemingstoepassings.

Die een waarmee ek vandag sal werk, word aangedui as 3144, 'n saal -effekskakelaar wat hoofsaaklik gebruik word vir hoë temperatuur en motortoepassings. Sy uitset is standaard hoog en word een keer laag in teenwoordigheid van 'n magnetiese veld.

Die sensor het 3 penne, VCC, grond en uitset. U kan hulle in daardie volgorde identifiseer as u die sensor met die etikette na u hou. VCC is aan die linkerkant, en die uitset is aan die regterkant. Om spanning te voorkom, word 'n 10k-weerstand tussen VCC en die uitset in 'n optrek-opset gebruik.

Stap 2: Wat is 'n onderbreking?

Wat is 'n onderbreking?
Wat is 'n onderbreking?
Wat is 'n onderbreking?
Wat is 'n onderbreking?

Om die sensor op die Arduino aan te sluit, gebruik ons 'n eenvoudige, maar tog baie kragtige funksie genaamd Interrupt. 'N Onderbrekingswerk is om seker te maak dat die verwerker vinnig reageer op belangrike gebeurtenisse. As 'n sekere sein opgespoor word, onderbreek 'n onderbreking (soos die naam aandui) wat die verwerker ook al doen, en voer 'n kode uit wat ontwerp is om te reageer op die eksterne stimulus wat aan die Arduino gevoer word. Sodra die kode voltooi is, gaan die verwerker terug na alles wat dit oorspronklik gedoen het asof niks gebeur het nie!

Wat wonderlik hieraan is, is dat dit u stelsel struktureer om vinnig en doeltreffend te reageer op belangrike gebeurtenisse wat nie maklik in sagteware kan voorspel nie. Die beste van alles, dit maak u verwerker vry om ander dinge te doen terwyl dit wag op 'n geleentheid om op te daag.

Die Arduino Uno het twee penne wat ons as onderbrekings kan gebruik, pen 2 en 3. Die funksie wat ons gebruik om die pen as 'n onderbreking te registreer, word attachInterrupt genoem. die naam van die funksie wat ons wil noem sodra 'n onderbreking opgespoor word, en as 'n derde parameter stuur ons in die modus waarin ons wil hê dat die onderbreking moet werk. Daar is 'n skakel in die videobeskrywing na die volledige verwysing vir hierdie funksie.

Stap 3: Verbindings en kode

Verbindings en kode
Verbindings en kode
Verbindings en kode
Verbindings en kode
Verbindings en kode
Verbindings en kode

In ons voorbeeld koppel ons die saal -effekssensor aan pen 2 op die Arduino. Aan die begin van die skets definieer ons die veranderlikes vir die speldnommer van die ingeboude LED, die onderbrekingspen sowel as 'n greepveranderlike wat ons sal gebruik om deur die onderbreking te verander. Dit is van kardinale belang dat ons hierdie een as onbestendig merk, sodat die samesteller kan weet dat dit buite die hoofprogramvloei deur die onderbreking gewysig word.

In die opstelfunksie spesifiseer ons eers die modusse op die gebruikte penne en dan heg ons die onderbreking aan soos voorheen verduidelik. Een ander funksie wat ons hier gebruik, is digitalPinToInterrupt, wat, soos die naam aandui, die speldnommer na die onderbrekingsnommer vertaal.

In die hoofmetode skryf ons net die toestandveranderlike op die LED -pen en voeg 'n baie klein vertraging by sodat die verwerker tyd kan hê om behoorlik te werk.

Waar ons die onderbreking aangeheg het, het ons knippie as die tweede parameter gespesifiseer, en dit is die funksienaam wat genoem moet word. Binne draai ons net die staatswaarde om.

Die derde parameter van die attachIntertupt -funksie is die modus waarop dit werk. As ons dit as VERANDERING het, word die knipfunksie uitgevoer elke keer as die onderbrekingstoestand verander, sodra dit die magneet naby die sensor kry en weer geaktiveer word sodra ons dit verwyder. Op hierdie manier is die LED aan terwyl ons die magneet naby die sensor hou.

As ons nou die modus na RISING verander, sal die knipfunksie eers geaktiveer word sodra 'n stygende rand van die sein op die onderbrekingspen gesien word. Elke keer as ons die magneet naby die sensor bring, gaan die LED af of aan, sodat ons basies 'n magnetiese skakelaar maak.

Die laaste metode wat ons gaan probeer, is LAAG. As die magneet naby is, word die knipfunksie voortdurend geaktiveer en die LED flikker, terwyl die toestand die hele tyd omgekeer word. As ons die magneet verwyder, is dit regtig onvoorspelbaar hoe die toestand sal eindig, aangesien dit afhang van die tydsberekening. Hierdie modus is egter baie handig as ons moet weet hoe lank 'n knoppie ingedruk is, aangesien ons tydsfunksies kan gebruik om dit te bepaal.

Stap 4: Verdere aksies

Verdere aksies
Verdere aksies

Onderbrekings is 'n eenvoudige manier om u stelsel meer reageer op tydsensitiewe take. Hulle het ook die ekstra voordeel dat u u 'loop ()' vrystel om op 'n primêre taak in die stelsel te fokus. (Ek vind dat dit die neiging het om my kode 'n bietjie meer georganiseerd te maak as ek dit gebruik - dit is makliker om te sien waarvoor die belangrikste deel kode ontwerp is, terwyl die onderbrekings periodieke gebeurtenisse hanteer.) Die voorbeeld hier is omtrent die meeste basiese geval vir die gebruik van 'n onderbreking - u kan dit gebruik om 'n I2C -toestel te lees, draadlose data te stuur of te ontvang, of selfs om 'n motor te begin of te stop.

As u 'n interrupt of 'n sensor vir 'n saaleffek interessant gebruik, laat weet my dan in die kommentaar, like en deel hierdie instruksies, en vergeet nie om op my YouTube -kanaal in te teken vir meer wonderlike tutoriale en projekte in die toekoms.

Sterkte en dankie dat jy gekyk het!

Aanbeveel: