Sommario:
- Passaggio 1: cos'è un sensore ad effetto Hall?
- Passaggio 2: cos'è un'interruzione?
- Passaggio 3: connessioni e codice
- Passaggio 4: ulteriori azioni
Video: Sensore ad effetto Hall Arduino con interruzioni: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Ciao a tutti, Oggi ti mostrerò come collegare un sensore ad effetto hall a un Arduino e usarlo con un interrupt.
Strumenti e materiali utilizzati nel video (link affiliati): Arduino Uno:
Sensori ad effetto Hall:
Resistori assortiti:
Passaggio 1: cos'è un sensore ad effetto Hall?
Un sensore ad effetto Hall è un dispositivo utilizzato per misurare l'ampiezza di un campo magnetico. La sua tensione di uscita è direttamente proporzionale all'intensità del campo magnetico che lo attraversa.
I sensori ad effetto Hall vengono utilizzati per applicazioni di rilevamento di prossimità, posizionamento, rilevamento della velocità e rilevamento della corrente.
Quello con cui lavorerò oggi è etichettato come 3144, che è un interruttore a effetto hall utilizzato principalmente per applicazioni automobilistiche e ad alta temperatura. La sua uscita è alta per impostazione predefinita e diventa bassa una volta in presenza di un campo magnetico.
Il sensore ha 3 pin, VCC, massa e uscita. Puoi identificarli in questo ordine se tieni il sensore con le etichette verso di te. VCC è a sinistra e l'output è a destra. Per prevenire qualsiasi deriva di tensione, viene utilizzato un resistore da 10k tra VCC e l'uscita in una configurazione pull-up.
Passaggio 2: cos'è un'interruzione?
Per collegare il sensore su Arduino, utilizzeremo una funzionalità semplice ma molto potente chiamata Interrupt. Un lavoro di interruzione consiste nell'assicurarsi che il processore risponda rapidamente a eventi importanti. Quando viene rilevato un certo segnale, un Interrupt (come suggerisce il nome) interrompe qualsiasi cosa stia facendo il processore ed esegue un codice progettato per reagire a qualsiasi stimolo esterno venga inviato all'Arduino. Una volta che il codice si è concluso, il processore torna a ciò che stava facendo originariamente come se nulla fosse!
La cosa fantastica di questo è che struttura il tuo sistema per reagire in modo rapido ed efficiente a eventi importanti che non sono facili da prevedere nel software. Soprattutto, libera il tuo processore per fare altre cose mentre è in attesa che si presenti un evento.
L'Arduino Uno ha due pin che possiamo usare come Interrupt, pin 2 e 3. La funzione che usiamo per registrare il pin come interrupt si chiama attachInterrupt dove come primo parametro inviamo il pin da utilizzare, secondo parametro è il nome della funzione che vogliamo chiamare una volta che viene rilevato un interrupt e come terzo parametro inviamo nella modalità in cui vogliamo che l'interrupt funzioni. C'è un collegamento nella descrizione del video al riferimento completo per questa funzione.
Passaggio 3: connessioni e codice
Nel nostro esempio, colleghiamo il sensore degli effetti hall al pin 2 di Arduino. All'inizio dello sketch, definiamo le variabili per il numero di pin del LED integrato, il pin di interrupt e una variabile di byte che utilizzeremo per modificare tramite l'interrupt. È fondamentale contrassegnarlo come volatile in modo che il compilatore possa sapere che viene modificato al di fuori del flusso del programma principale attraverso l'interrupt.
Nella funzione di setup, specifichiamo prima le modalità sui pin utilizzati e poi alleghiamo l'interrupt come spiegato in precedenza. Un'altra funzione che usiamo qui è digitalPinToInterrupt che, come suggerisce il nome, traduce il numero di pin nel numero di interrupt.
Nel metodo principale, scriviamo semplicemente la variabile di stato sul pin LED e aggiungiamo un ritardo molto piccolo in modo che il processore possa avere il tempo di funzionare correttamente.
Dove abbiamo attaccato l'interrupt, abbiamo specificato blink come secondo parametro e questo è il nome della funzione da chiamare. All'interno invertiamo semplicemente il valore dello stato.
Il terzo parametro della funzione attachIntertupt è la modalità in cui opera. Quando lo abbiamo come CHANGE, la funzione di lampeggio verrà eseguita ogni volta che lo stato di interruzione cambia, quindi verrà chiamata una volta una volta avvicinato il magnete al sensore e attivata nuovamente una volta rimosso. In questo modo, il LED è acceso mentre teniamo il magnete vicino al sensore.
Se ora cambiamo la modalità in RISING, la funzione di lampeggio verrà attivata solo quando viene visto un fronte di salita del segnale sul pin di interruzione. Ora ogni volta che avviciniamo il magnete al sensore, il LED si spegne o si accende, quindi abbiamo praticamente creato un interruttore magnetico.
La modalità finale che proveremo è LOW. Con esso, quando il magnete è vicino, la funzione di lampeggio sarà costantemente attivata e il LED lampeggerà, avendo il suo stato invertito per tutto il tempo. Quando rimuoviamo il magnete, è davvero imprevedibile come andrà a finire lo stato in quanto dipende dai tempi. Tuttavia, questa modalità è davvero utile se abbiamo bisogno di sapere per quanto tempo è stato premuto un pulsante, poiché possiamo utilizzare le funzioni di temporizzazione per determinarlo.
Passaggio 4: ulteriori azioni
Gli interrupt sono un modo semplice per rendere il sistema più reattivo alle attività sensibili al tempo. Hanno anche l'ulteriore vantaggio di liberare il tuo `loop()` principale per concentrarti su alcune attività primarie nel sistema. (Trovo che questo tenda a rendere il mio codice un po' più organizzato quando li uso - è più facile vedere per cosa è stato progettato il pezzo principale di codice, mentre gli interrupt gestiscono eventi periodici.) L'esempio mostrato qui è quasi il più caso di base per l'utilizzo di un interrupt: è possibile utilizzarli per leggere un dispositivo I2C, inviare o ricevere dati wireless o persino avviare o arrestare un motore.
Se hai un uso interessante di un sensore di interruzione o di effetti hall, assicurati di farmelo sapere nei commenti, metti mi piace e condividi questo Instructable e non dimenticare di iscriverti al mio canale YouTube per tutorial e progetti più fantastici nel futuro.
Saluti e grazie per la visione!
Consigliato:
Conversione del sensore ad effetto Hall Logitech 3D Extreme Pro: 9 passaggi
Conversione del sensore ad effetto Hall Logitech 3D Extreme Pro: Il controllo del timone sul mio joystick si stava spegnendo. Ho provato a smontare le pentole e a pulirle, ma non è servito a niente. Quindi ho iniziato a cercare pentole sostitutive e mi sono imbattuto in alcuni siti Web diversi di diversi anni fa che fanno riferimento
Come Costruire il Tuo Anemometro Usando Interruttori Reed, Sensore ad Effetto Hall e alcuni Scarti su Nodemcu - Parte 2 - Software: 5 Passaggi (con Immagini)
Come costruire il tuo anemometro usando interruttori a lamella, sensore ad effetto Hall e alcuni frammenti su Nodemcu - Parte 2 - Software: IntroduzioneQuesto è il seguito del primo post "Come costruire il tuo anemometro usando interruttori a lamella, sensore ad effetto Hall e alcuni frammenti" su Nodemcu - Parte 1 - Hardware" - dove mostro come assemblare la misura della velocità e della direzione del vento
Come costruire il tuo anemometro usando interruttori reed, sensore ad effetto Hall e alcuni frammenti su Nodemcu. - Parte 1 - Hardware: 8 passaggi (con immagini)
Come costruire il tuo anemometro usando interruttori reed, sensore ad effetto Hall e alcuni frammenti su Nodemcu. - Parte 1 - Hardware: IntroduzioneDa quando ho iniziato con gli studi di Arduino e la Maker Culture mi è piaciuto costruire dispositivi utili utilizzando rottami e pezzi di scarto come tappi di bottiglia, pezzi di PVC, lattine per bevande, ecc. Mi piace dare un secondo vita a qualsiasi pezzo o a qualsiasi compagno
Sensore ad effetto Hall: Carillon di Natale: 4 passaggi
Sensore ad effetto Hall: Carillon di Natale: questo è un carillon che riproduce la musica una volta aperto (guarda il video!). È un modo fantastico, speciale e unico per incartare i regali per la tua persona speciale! Utilizza un sensore ad effetto hall per verificare se il coperchio è stato aperto dalla mancanza di campo magnetico e
Sensore ad effetto Hall su Arduino utilizzando Fidget Spinner: 3 passaggi (con immagini)
Sensore ad effetto hall su Arduino utilizzando Fidget Spinner: AbstractIn questo progetto sto spiegando come funziona il sensore ad effetto hall misurando la velocità del filatore di fidget con la scheda arduino. funzionamento:-Un sensore ad effetto Hall è un trasduttore che varia la sua tensione di uscita in risposta a un campo magnetico. Effetto Hall