Cuprins:
- Pasul 1: Ce este un senzor de efect Hall?
- Pasul 2: Ce este o întrerupere?
- Pasul 3: Conexiuni și cod
- Pasul 4: Acțiuni suplimentare
Video: Senzor de efect Arduino Hall cu întreruperi: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Buna tuturor, Astăzi vă voi arăta cum puteți conecta un senzor de efect de hală la un Arduino și îl puteți utiliza cu o întrerupere.
Instrumente și materiale utilizate în videoclip (linkuri de afiliere): Arduino Uno:
Senzori de efect Hall:
Rezistoare asortate:
Pasul 1: Ce este un senzor de efect Hall?
Un senzor de efect Hall este un dispozitiv care este utilizat pentru a măsura magnitudinea unui câmp magnetic. Tensiunea sa de ieșire este direct proporțională cu intensitatea câmpului magnetic prin ea.
Senzorii de efect Hall sunt utilizați pentru aplicații de detectare a proximității, poziționare, detectare a vitezei și detectare a curentului.
Cel cu care voi lucra astăzi este etichetat ca 3144, care este un comutator cu efect de hală utilizat în principal pentru aplicații cu temperatură ridicată și automobile. Ieșirea sa este ridicată în mod implicit și scade o dată în prezența unui câmp magnetic.
Senzorul are 3 pini, VCC, masă și ieșire. Le puteți identifica în această ordine dacă țineți senzorul cu etichetele spre dvs. VCC este în stânga, iar ieșirea este în partea dreaptă. Pentru a preveni orice derivație de tensiune, un rezistor de 10k este utilizat între VCC și ieșire într-o configurație pull-up.
Pasul 2: Ce este o întrerupere?
Pentru a conecta senzorul de pe Arduino, vom folosi o funcție simplă, dar foarte puternică numită Întrerupere. O sarcină de întrerupere este de a vă asigura că procesorul răspunde rapid la evenimente importante. Când este detectat un anumit semnal, o întrerupere (așa cum sugerează și numele) întrerupe orice face procesorul și execută un cod conceput pentru a reacționa la orice stimul extern care este alimentat către Arduino. Odată ce codul a fost încheiat, procesorul revine la ceea ce făcea inițial de parcă nu s-ar fi întâmplat nimic!
Ce este minunat în acest sens este că vă structurează sistemul pentru a reacționa rapid și eficient la evenimente importante care nu sunt ușor de anticipat în software. Cel mai bun lucru este că vă eliberează procesorul pentru a face alte lucruri în timp ce așteaptă să apară un eveniment.
Arduino Uno are doi pini pe care îi putem folosi ca întreruperi, pinul 2 și 3. Funcția pe care o folosim pentru a înregistra pinul ca întrerupere se numește attachInterrupt unde, ca prim parametru, trimitem pinul care va fi utilizat, al doilea parametru este numele funcției pe care dorim să o apelăm odată detectată o întrerupere și ca al treilea parametru îl trimitem în modul în care dorim să funcționeze întreruperea. În descrierea videoclipului există un link către referința completă pentru această funcție.
Pasul 3: Conexiuni și cod
În exemplul nostru, conectăm senzorul de efecte hall la pinul 2 de pe Arduino. La începutul schiței, definim variabilele pentru numărul de pin al LED-ului încorporat, pinul de întrerupere, precum și o variabilă de octeți pe care o vom folosi pentru a o modifica prin întrerupere. Este crucial să îl marcăm ca fiind volatil, astfel încât compilatorul să poată ști că este modificat în afara fluxului principal al programului prin întrerupere.
În funcția de configurare, mai întâi specificăm modurile pe pinii utilizați și apoi atașăm întreruperea așa cum s-a explicat anterior. O altă funcție pe care o folosim aici este digitalPinToInterrupt care, după cum sugerează și numele, traduce numărul pinului la numărul de întrerupere.
În metoda principală, scriem doar variabila de stare pe pinul LED și adăugăm o întârziere foarte mică, astfel încât procesorul să aibă timp să funcționeze corect.
Unde am atașat întreruperea, am specificat clipirea ca al doilea parametru și acesta este numele funcției care trebuie apelată. Înăuntru inversăm valoarea de stare.
Al treilea parametru al funcției attachIntertupt este modul în care operează. Când îl avem ca CHANGE, funcția de clipire va fi executată de fiecare dată când starea de întrerupere se schimbă, așa că va fi apelată odată ce magnetul se apropie de senzor și se va declanșa din nou odată ce îl scoatem. În acest fel, LED-ul este aprins în timp ce ținem magnetul aproape de senzor.
Dacă acum schimbăm modul în RISING, funcția de clipire va fi declanșată numai odată ce o margine ascendentă a semnalului este văzută pe pinul de întrerupere. Acum, de fiecare dată când apropiem magnetul de senzor, LED-ul fie se stinge, fie se aprinde, așa că am făcut practic un comutator magnetic.
Modul final pe care îl vom încerca este LOW. Odată cu acesta, când magnetul este aproape, funcția de clipire va fi declanșată constant și LED-ul va pâlpâi, având starea inversată tot timpul. Când scoatem magnetul, este cu adevărat imprevizibil cum va ajunge starea, deoarece acest lucru depinde de sincronizare. Cu toate acestea, acest mod este foarte util dacă trebuie să știm cât timp a fost apăsat un buton, deoarece putem folosi funcțiile de sincronizare pentru a determina acest lucru.
Pasul 4: Acțiuni suplimentare
Întreruperile sunt un mod simplu de a face sistemul dvs. mai receptiv la sarcinile sensibile la timp. De asemenea, au avantajul suplimentar de a vă elibera principalul `loop ()` pentru a vă concentra asupra unor sarcini principale din sistem. (Am constatat că acest lucru tinde să-mi facă codul puțin mai organizat atunci când le folosesc - este mai ușor să văd pentru ce a fost concepută partea principală de cod, în timp ce întreruperile gestionează evenimente periodice.) Exemplul prezentat aici este aproape cel mai carcasă de bază pentru utilizarea unei întreruperi - le puteți utiliza pentru citirea unui dispozitiv I2C, trimiterea sau primirea de date fără fir sau chiar pornirea sau oprirea unui motor.
Dacă aveți o utilizare interesantă a unei întreruperi sau a unui senzor de efecte de sală, asigurați-vă că mă anunțați în comentarii, apreciați și distribuiți acest Instructable și nu uitați să vă abonați la canalul meu YouTube pentru tutoriale și proiecte mai minunate în viitor.
Noroc și mulțumesc pentru vizionare!
Recomandat:
Conversie senzor de efect Hall Logitech 3D Extreme Pro: 9 pași
Conversia senzorului de efect Hall Hall Logitech 3D Extreme Pro: Controlul cârmei de pe joystick-ul meu se stingea. Am încercat să desprind vasele și să le curăț, dar nu prea a ajutat. Așa că am început să caut oale de înlocuire și am dat peste câteva site-uri web diferite de acum câțiva ani care se referă
Raspberry Pi A1332 Precision Hall - Tutorial Java senzor de unghi de efect: 4 pași
Raspberry Pi A1332 Precision Hall - Senzor de unghi de efect Tutorial Java: A1332 este un senzor de poziție unghi magnetic programabil fără rezoluție de 360 °, de înaltă rezoluție. Este proiectat pentru sisteme digitale care utilizează o interfață I2C. Este construit pe tehnologia Circular Vertical Hall (CVH) și un semnal programabil bazat pe microprocesor
Cum să vă construiți propriul anemometru folosind comutatoare Reed, senzor de efect Hall și câteva resturi pe Nodemcu - Partea 2 - Software: 5 pași (cu imagini)
Cum să vă construiți propriul anemometru folosind comutatoare Reed, senzor de efect Hall și câteva fragmente pe Nodemcu - Partea 2 - Software: Introducere Aceasta este continuarea primului post „Cum să vă construiți propriul anemometru folosind comutatoare Reed, senzor de efect Hall și câteva fragmente pe Nodemcu - Partea 1 - Hardware " - unde vă arăt cum să asamblați viteza vântului și măsurarea direcției
Cum să vă construiți propriul anemometru folosind comutatoare Reed, senzor de efect Hall și câteva resturi pe Nodemcu. - Partea 1 - Hardware: 8 pași (cu imagini)
Cum să vă construiți propriul anemometru folosind comutatoare Reed, senzor de efect Hall și câteva resturi pe Nodemcu. - Partea 1 - Hardware: Introducere De când am început cu studiile Arduino și Maker Culture, mi-a plăcut să construiesc dispozitive utile folosind piese de gunoi și resturi, cum ar fi capace de sticlă, bucăți de PVC, cutii de băuturi, etc. Îmi place să ofer o secundă viață pentru orice piesă sau orice prieten
Senzor de efect Hall pe Arduino folosind Fidget Spinner: 3 pași (cu imagini)
Senzor de efect Hall pe Arduino Utilizând Fidget Spinner: Rezumat În acest proiect explic despre modul în care funcționează senzorul de efect Hall măsurând viteza de spinner Fidget cu placa arduino. funcționare: -Un senzor de efect Hall este un traductor care își variază tensiunea de ieșire ca răspuns la un câmp magnetic. Efectul de hol