Ahoj lidi, vítejte u dnešního tutoriálu. Dnes se podíváme na to, jak používat senzor s Hallovým jevem s Arduinem.
Senzor s Hallovým jevem je senzor, který mění svůj výstup na základě přítomnosti nebo nepřítomnosti magnetického pole. To znamená, že výstupní signál produkovaný snímačem s Hallovým jevem je funkcí hustoty magnetického pole v jeho okolí. Když hustota magnetického toku v jeho okolí překročí určitou předem nastavenou prahovou hodnotu, snímač ji detekuje a generuje výstupní napětí, někdy nazývané Hallovo napětí, které indikuje přítomnost magnetického pole.
Snímače s Halovým efektem se díky své univerzálnosti stávají velmi oblíbenými a používají se v mnoha různých aplikacích. Jednou z oblíbených aplikací Hallových snímačů je použití v automobilových systémech, kde se používají k detekci polohy, měření vzdálenosti a rychlosti. Používají se také v moderních zařízeních, jako jsou chytré telefony a počítače, a také se používají v různých typech spínačů, kde se přítomnost magnetického pole využívá buď k aktivaci, nebo deaktivaci obvodu.
Hallovy senzory produkují buď analogový, nebo digitální výstup v závislosti na konkrétním senzoru. Ať už se jedná o jakýkoli typ, obvykle se dodávají v balení se třemi vývody, přičemž jeden vývod představuje signál a další dva slouží k napájení senzoru. To usnadňuje připojení k libovolnému mikrokontroléru.
V dnešním tutoriálu si ukážeme, jak funguje Hallův senzor, a to tak, že ho připojíme spolu s LED k Arduinu. Arduino bude naprogramováno tak, aby se při přiblížení magnetu k senzoru Hallova jevu rozsvítila LED dioda, a když se magnet odstraní, zhasne.
Potřebné komponenty
K sestavení tohoto projektu jsou zapotřebí následující komponenty.
- Senzor Hallova jevu
- Levné Arduino Uno
- Breadboard mini
- LED
- Dráty
- Magnety
Jako obvykle, přesné komponenty použité pro tento návod lze zakoupit prostřednictvím odkazů připojených k jednotlivým výše uvedeným komponentám.
Schémata
Schémata pro tento projekt jsou jednoduchá, protože vše, co musíme udělat, je připojit tři piny hallova senzoru a LED k Arduinu. Součástky zapojte podle níže uvedeného schématu.
Zapojení je dále popsáno níže, aby bylo snadné ho sledovat.
Senzor haly – Arduino
VCC - 5VGND - GNDSIG - D2
Diodu LED lze zapojit přímo do Arduina s kladnou nohou v pinu 13 Arduina a druhou nohu zapojit do zemnícího pinu bez rezistoru, protože Arduino má na pinu 13 připojený vnitřní rezistor.
Pokud máme schéma hotové, můžeme přistoupit ke kódu tohoto projektu.
Kód
Kód tohoto projektu je opravdu jednoduchý, jediné, co chceme udělat, jak už bylo řečeno, je zkontrolovat, zda je snímáno magnetické pole, a pokud ano, rozsvítíme LED, pokud ne, LED vypneme.
Pro krátké vysvětlení kódu tohoto projektu nejprve deklarujeme piny Arduina, ke kterým je připojen náš hallův senzor a LED dioda, poté vytvoříme proměnnou „state“, která bude uchovávat hodnotu z hallova senzoru.
////////////////////////////////////////////// // HALL EFFECT SENSOR DEMO // // Author: Nick Koumaris //// http://www.educ8s.tv ///////////////////////////////////////////////int hallSensorPin = 2; int ledPin = 13; int state = 0;
Následuje funkce void setup, kde deklarujeme režim pinů pro piny Arduina, ke kterým je připojena LED a Hallův senzor.
void setup() { pinMode(ledPin, OUTPUT); pinMode(hallSensorPin, INPUT); }
Následuje funkce void loop, úkol je zde stejný, jako kdybychom chtěli pomocí tlačítka ovládat LED s Arduinem mezi tím. Přečteme výstup hallova senzoru a uložíme jej do proměnné s názvem state. Když je hodnota LOW, zapneme LED, HIGH a když je hodnota high, zapneme LED Low. Konfigurace vašeho hallova senzoru se může lišit, protože senzor se může při detekci magnetického pole zapnout na High. To by mělo být potvrzeno v datasheetu senzoru.
void loop(){ state = digitalRead(hallSensorPin); if (state == LOW) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); }}
Kompletní kód tohoto projektu je uveden níže a je také k dispozici ke stažení v sekci ke stažení na konci tohoto návodu.
////////////////////////////////////////////// // HALL EFFECT SENSOR DEMO // // //// http://www.educ8s.tv ///////////////////////////////////////////////int hallSensorPin = 2; int ledPin = 13; int state = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(hallSensorPin, INPUT); }void loop(){ state = digitalRead(hallSensorPin); if (state == LOW) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); }}
Demo
Kód zkopírujte a nahrajte na desku Arduino. Měli byste vidět, jak se LED dioda přepne, když se k ní přiblíží magnet, jak je znázorněno na obrázku níže.
.