🥇Onderbrekings in Arduino Wat is dit? + Effekte en funksies ▷ 2021
Arduino is een van die tegnologieë wat ons kan gebruik om groot innovasies te programmeer en te skepen bygevoeg dat dit heeltemal prakties is om deur een van ons ontwikkel te word sonder dat ons 'n paar certificerings in programmering of elektronika benodig.
Daar is soveel besonderhede oor Arduino, dat u tans onderbrekings in u proses kan implementeer. Gedurende hierdie artikel sal ons duidelik en breedvoerig verduidelik wat hierdie onderbrekings werklik is en die belangrikheid daarvan.
Ons sal ook praat oor die funksies daarvan en hoe u vinnig en maklik een kan skep. As u hierna u eie onderbreking wil skep, kan u dit gebruik as basis vir sommige van die projekte wat ons hier noem.
Wat is onderbrekings in Arduino en waarvoor is dit nodig om 'n toestel te ontwikkel?
As ons praat oor onderbrekings ons bedoel 'n kragtige meganisme wat gebruik kan word vir veilige stop, of stop enige toerusting of stelsel onmiddellik. Omdat Arduino dit is 'n elektroniese stelsel, u moet ook van hierdie meganisme gebruik maak.
Op 'n meer illustratiewe manier, Ons kan ons voorstel dat ons 'n tegnologie het wat ons toelaat om 'n sentrifugale pomp vanaf 'n PLC te beheerOns het egter nodig om te stop en dit reageer nie op die optrede van die PLC nie, dit is waar ons vinnig na die stop- of onderbrekingsknop moet gaan, dat hy dadelik in hegtenis geneem moet word.
Die groot waarde van hierdie stop lê nie net in 'n veilige werk vir 'n operateur nie, maar dit kan ook voordele bied, soos:
Ingryping om die korrekte verbruik van energie en hulpbronne te kontroleer, wat deur die invoerstatus gevra kan word.
Om 'n stelsel op die punt van botsing te hê, wat onmiddellik moet ingegryp word, sodat regstellende stappe uitgevoer kan word.
Gaan die pulse na wat vanaf die verwerkers gestuur word, As gevolg van stelselmatige konsultasie, sal ons dalk nie verkorte voorraadpulse opmerk nie.
Aan die ander kant, hierdie onderbrekings as dit nie geprogrammeer en geaktiveer word nie kan 'n ernstige probleem wees, wat die stelsel en verwerker onstabiliteit veroorsaak, die onderbreking van gebeure wat perfek uitgevoer is. Hierdie tipe onderbrekings kan ISR genoem word volgens die akroniem in Engels, "Onderbrekingsdiensroetine."
Vanuit 'n meer tegniese oogpunt, hierdie onderbrekings werk deur 'n normale verwerker en programvloei wat onderbreek word, waarvan die take en aksies wat gestuur word nie in ag geneem word nie, die enigste funksie van die ISR uit te voer.
Effekte van onderbreking in Arduino Hoe beïnvloed dit die werking van 'n projek?
Onderbrekings het 'n positiewe invloed op alle projekte, hoewel dit wel duidelik as gevolg van die korrekte gebruik daarvan. 'N Stelsel kan meer as een onderbrekingslyn bevat, die gebruik daarvan hang af van die behoeftes en prioriteite. As ons 'n stelsel en verwerker het wat 'n stel take op 'n normale en deurlopende manier uitvoer, maar ons wil hê dat dit ander aktiwiteite moet uitvoer waarvan die waarde en belangrikheid groter is as die vorige, die ISR moet bestuur word.
Hoe dit werk, kan op 'n basiese manier deur middel van die volgende lyste verduidelik word:
Kanselleer alle opdragte van die masjiene wat aan die skakelaar gekoppel is.
Alle boodskappe en waardes wat deur die verwerker vrygestel word, word beskerm en in 'n register gestoor sodat kan voortgaan om te hardloop wanneer die aksie weer aangevra word.
Die verwerker of SVE oorslaan al die adresse wat gestoor word vir roetineopsporing, en voer 'n enkele teikenparrie uit. Dit is een van die veiligste stoppe vir beide die stelsel en die operateur.
Sodra ons die onderbreking voltooi het, die SVE sal alle take wat voorheen geïgnoreer is, uitvoer, dus word dit hervat vanaf die vorige gebruikspunt.
bestaan meer as een tipe stelsels en verwerkersDaarom is daar ook verskillende soorte onderbrekings.
Sodanige noem ons hulle hieronder:
HW of eksterne onderbrekings: Dit is asynchrone onderbrekings van die aksies wat deur die verwerker uitgereik word. Met ander woorde, dit is stoppe wat te eniger tyd uitgevoer kan word, ongeag of die SVE op die oomblik werk.
SW onderbreek: Dit is die beroemde sagtewareonderbrekings, waarvan die proses veroorsaak word deur die programmering van 'n kode en aksie. Arduino ondersteun tans nie hierdie tipe onderbrekings nie.
Geskeduleerde gebeure of tyd stop: Soos die naam aandui, is dit stop in tydfaktor, dit word volgens 'n spesifieke werktyd geprogrammeer.
Uitsonderings: Dit is die tipe stop wat voorkom elke keer as 'n operateur onbehoorlike of geblokkeerde aksies wil uitvoer, waar die stelsel onmiddellik reageer.
ISR-funksie Wat is dit en wat is die doel daarvan in Arduino-onderbrekings?
Ons kan ongeveer sê dat die funksies van 'n onderbreking ISR genoem word, en is gebaseer met die doel om nie 'n ander funksie te stuur of te ontvang nie, om die terugkeer van enige data te voorkom. In die vorige afdeling het ons genoem dat daar egter verskillende soorte ISR is nie een kan gelyktydig bestuur word nie omdat dit 'n gebrek aan beheer kan veroorsaak. Die regte manier daarvoor is om een ​​uit te voer in voortsetting met 'n ander.
As u behoorlik in die wêreld van Arduino-tegnologieë ingaan, sal u sien dat dit voortdurend herhaal word 'n onderbreking hoe korter hoe beter. As 'n ISR die kortste moontlike lopietyd het, stel die stelsel in staat om vinnig en effektief sy aktiwiteite terug te gee, en die generering van foute is minder.
Andersins kan ons dit op 'n illustratiewe manier sien; as ons 'n voorwerpversamelingsproses het met die implementering van 'n enjin, kan 'n lang stop foute veroorsaak as gevolg van dat die motor krag verloor en ophou om druk op die arm te plaas, wat veroorsaak dat dit die voorwerpe vrylaat.
As ons 'n veranderlike wat aan die eksterne deel van die onderbreking behoort te wysig, moet ons altyd rekening hou met die belangrikheid van die maak van 'n vlugtige verklaring, waarvan die aanwyser die gebruikte is om na 'n veranderlike te verwys wat geoudit of bevraagteken kan word.
'N Veranderlike aanwyser is die een wat al die rekords opstel, en dit skakel ook 'n paar optimeringsfunksies uit word beskou as doeltreffendheidslekkasies. Wanneer ons veranderlikes moet skep, hoef ons slegs die kenmerke wat regtig nodig is as vlugtig te merk vir die skep van die hooflus binne onderbrekings.
Leer stap vir stap hoe om vinnig en maklik 'n onderbreking op 'n Arduino te skep en te toets
As u u eie onderbreking in 'n arduino bord, dit is die regte plek vir u. In hierdie afdeling Ons gaan verduidelik wat u moet doen om te leer hoe om 'n onderbreking te skep en te toets op Arduino, op die maklikste manier daar buite.
Om 'n onderbreking te bewerkstellig, moet u die taal en die sintaksis in ag neem, waarvan die meeste met die volgende hanteer word:
Omdat ons die bogenoemde ken, gaan ons voort met die skep van ons eie ISR met behulp van die gelyste parameters:
Onderbreek: Dit dui die aantal onderbrekings aan wat ons wil hê. Die sintaksis wat ingevoer moet word om hierna te verwys, is 'int".
Speld: Soos sy eie naam aandui, is dit slegs die Arduino-pinnommer.
ISR: Hierdie keer as ons oor ISR praat, wil ons slegs verwys na die oproep wat die onderbreking maak. Dit is 'n funksie wat sonder parameters is en lewer niks op nie, maar in baie gevalle is dit net 'n roetine van die diens.
Wyse: Met hierdie funksie bepaal u wanneer die onderbrekings geaktiveer moet word, en dit is gebaseer op vier konstantes van toegelate waardes, Wat:
Laag: Dit word gebruik as ons die onderbreking wil aktiveer solank die pen laag is.
Verander: Dit word gebruik om die onderbreking te aktiveer wanneer die waarde van die pen verander.
Styg: As die pen verander, van laag na hoog, word hierdie pen gebruik.
Val: Anders as die vorige, is dit wanneer die waarde van die pen van hoog na laag gaan.
Ons moet nie net 'n onderbreking skep nie, ons moet ook toets op 'n manier wat bevestig dat die algoritme korrek werk. Omdat dit 'n toets is, sal ons die maksimum van alles, sowel as die minimum, moet waardeer, ons moet alle moontlike stoppe uitvoer, beide lank en kort, as ons iets ongewoon in die stelsel opmerk, moet die ISR verander wordInteendeel, as alles goed gaan, moet ons onsself gelukwens met die goeie werk.
Lys die beste Arduino-projekte met Interrupts wat u self kan doen om te oefen
In hierdie laaste afdeling Ons sal gesels oor die projekte wat u kan gebruik om te oefen en oefen al u verworwe kennis om onderbrekings te skep.
Die volgende is eenvoudige projekte wat geskik is vir programmering:
Ten einde sorg vir die integriteit van die motor wanneer ons parkeer, is dit gerieflik om 'n sensor met 'n Arduino-bord te skep. Met hierdie toestel sal 'n alarm hoor elke keer as die motor 'n voorwerp nader tydens die manoeuvre, maar dit is belangrik dat dit 'n onderbrekingsmeganisme het om die geluid te stop nadat die taak uitgevoer is.
Om die sintaksis te ken en die ISR van hierdie projek te skep, is baie maklik om te programmeer voer eenvoudige take uit, en aan die ander kant die onderbreking moet lank wees, sodat dit al die uitgevoer take staak. U sal 'n Arduino UNO-model in hierdie projek moet gebruik, drie ultrasoniese sensors, 'n broodbord, 'n kabelset en twee mini-batteryskerms. As u al hierdie elemente het, sal u dit moet saamstel volgens die beeld wat u wys.
Dan moet u IDE oopmaak en die volgende instruksies vir programmering skryf:
Die tipiese Arduino-semafoor, is die tweede eenvoudigste Arduino-projekDie moeilikheidsgraad lê egter wanneer ons 'n onderbreking moet skep wat 'n aksie en laat 'n ander proses loop. Dit beteken dat die sirkulasie kleur verander kan word. Hiervoor moet die tipe ISR wat gebruik word, kort wees en in tydsfaktor geprogrammeer word.
Met inagneming van bogenoemde, is u nodig om 'n slim verkeerslig te skep Arduino Nano R3, generiese geleide ligte, fotovoltaïese weerstande, kabels en 'n weerstand van 100 Ohm. Wanneer jy klaarmaak kyk na die diagram wat ons aan u toelaat om die komponente aan te sluit.
Maak dan die programmeringsplatform oop en voer die volgende kodes in:
Dit is een van die Arduino-projekte die meeste gekies deur beginners, omdat dit ons nie net toelaat om die motor te versier nie en gee dit 'n gevoel van luuksheid, maar u sal ook die IDE kan oefen. Die programmering daarvan is eenvoudig, dus u kan nie hierdie elektroniese werk opsy sit nie. Onderbrekings speel 'n belangrike rol, omdat die rigting of vloei van die proses van elk van die ligte volgens ons smaak moet verander, sodat die ISR die verandering toelaat om die taak wat tans uitgevoer word, te kanselleer.
U het 'n Arduino Nano R3 nodig om die projek uit te voer, 'n geleide strook van 120 stuk, 3 mm-koker, manlike tot manlike kabels en drie 400-punt naatlose broodbordborde. U sal hierdie materiaal kan saamvoeg, met inagneming van die beeld hierbo.
Ten slotte is daar die programmeringsdeel van die Arduino Nano Rev3-bord, dus u sal die rye moet laai wat ons hieronder aandui: