Мазмұны:
- 1 -қадам: Қажетті жабдық:
- 2 -қадам: Жабдықты қосу:
- 3 -қадам: магниттік өрістің қарқындылығын өлшеу үшін Arduino коды:
- 4 -қадам: Өтініштер:
Бейне: HMC5883 және Arduino Nano көмегімен магниттік өрісті өлшеу: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
HMC5883-бұл төмен өрісті магнитті сезуге арналған цифрлық компас. Бұл құрылғыда магнит өрісінің кең диапазоны +/- 8 Oe және шығыс жылдамдығы 160 Гц. HMC5883 сенсорында композитті бағыттау дәлдігін 1 °-2 ° дәлдікке қосатын автоматты ажырату таспасының драйверлері, офсетті жою және 12 биттік ADC бар. Барлық I²C шағын модульдері 5VDC жұмыс істеуге арналған.
Бұл оқулықта біз HMC5883 Arduino наномен жұмысының егжей -тегжейлі жұмысын түсіндіреміз.
1 -қадам: Қажетті жабдық:
Мақсатқа жету үшін бізге қажет материалдар келесі аппараттық компоненттерді қамтиды:
1. HMC5883
2. Ардуино Нано
3. I2C кабелі
4. Arduino Nano үшін I2C қалқаны
2 -қадам: Жабдықты қосу:
Аппаратты қосу бөлімі негізінен сенсор мен arduino нано арасындағы сымдық қосылыстарды түсіндіреді. Қажетті шығыс үшін кез келген жүйеде жұмыс істеу кезінде дұрыс қосылуды қамтамасыз ету - бұл негізгі қажеттілік. Сонымен, қажетті байланыстар келесідей:
HMC5883 I2C арқылы жұмыс істейді. Датчиктің әр интерфейсін қалай қосуға болатынын көрсететін электр схемасының мысалы.
Қаптамадан тыс тақта I2C интерфейсі үшін конфигурацияланған, сондықтан егер сіз агностикалық болмасаңыз, осы қосылымды пайдалануды ұсынамыз. Сізге тек төрт сым қажет!
Vcc, Gnd, SCL және SDA түйреуіштеріне тек төрт қосылым қажет және олар I2C кабелінің көмегімен қосылған.
Бұл байланыстар жоғарыдағы суреттерде көрсетілген.
3 -қадам: магниттік өрістің қарқындылығын өлшеу үшін Arduino коды:
Енді Arduino кодынан бастайық.
Сенсорлық модульді Arduino -мен қолданған кезде біз Wire.h кітапханасын қосамыз. «Wire» кітапханасында сенсор мен Arduino тақтасы арасындағы i2c байланысын жеңілдететін функциялар бар.
Пайдаланушыға ыңғайлы болу үшін барлық Arduino коды төменде келтірілген:
#қосу
// HMC5883 I2C мекенжайы - 0x1E (30)
#анықтау Addr 0x1E
жарамсыз орнату ()
{
// I2C байланысын MASTER ретінде баптаңыз
Wire.begin ();
// Сериялық байланысты орнатыңыз, жіберу жылдамдығы = 9600
Serial.begin (9600);
// I2C берілуін бастау
Wire.beginTransmission (Addr);
// А регистрін конфигурациялауды таңдаңыз
Wire.write (0x00);
// Қалыпты өлшеу конфигурациясын орнатыңыз, деректерді шығару жылдамдығы = 0,75 Гц
Wire.write (0x60);
// I2C берілуін тоқтату
Wire.endTransmission ();
// I2C берілуін бастау
Wire.beginTransmission (Addr);
// Режим регистрін таңдаңыз
Wire.write (0x02);
// Үздіксіз өлшеуді орнатыңыз
Wire.write (0x00);
// I2C берілуін тоқтату
Wire.endTransmission ();
кешіктіру (300);
}
бос цикл ()
{
қол қойылмаған int деректері [6];
// I2C берілуін бастау
Wire.beginTransmission (Addr);
// Деректер регистрін таңдаңыз
Wire.write (0x03);
// I2C берілуін тоқтату
Wire.endTransmission ();
// 6 байт деректерді сұрау
Wire.requestFrom (Addr, 6);
// 6 байт деректерді оқу
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
егер (Wire.available () == 6)
{
деректер [0] = Wire.read ();
деректер [1] = Wire.read ();
деректер [2] = Wire.read ();
деректер [3] = Wire.read ();
деректер [4] = Wire.read ();
деректер [5] = Wire.read ();
}
кешіктіру (300);
// Деректерді түрлендіру
int xMag = ((деректер [0] * 256) + деректер [1]);
int zMag = ((деректер [2] * 256) + деректер [3]);
int yMag = ((деректер [4] * 256) + деректер [5]);
// Деректерді сериялық мониторға шығару
Serial.print («X-осіндегі магнит өрісі:»);
Serial.println (xMag);
Serial.print («Y осінде магнит өрісі:»);
Serial.println (yMag);
Serial.print («Z-осіндегі магнит өрісі:»);
Serial.println (zMag);
кешіктіру (300);
}
Сымдық кітапханада Wire.write () және Wire.read () командаларды жазу және сенсор шығысын оқу үшін қолданылады. Кодтың келесі бөлігі сенсордың шығуын көрсетеді.
// 6 байт деректерді оқу // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb if (Wire.available () == 6) {data [0] = Wire.read (); деректер [1] = Wire.read (); деректер [2] = Wire.read (); деректер [3] = Wire.read (); деректер [4] = Wire.read (); деректер [5] = Wire.read (); }
Serial.print () және Serial.println () сенсордың шығысын Arduino IDE сериялық мониторында көрсету үшін қолданылады.
Сенсордың шығысы жоғарыдағы суретте көрсетілген.
4 -қадам: Өтініштер:
HMC5883-бұл төмен бағалы компас пен магнитометрия сияқты қосымшаларға арналған цифрлық интерфейсі бар, төмен өрісті магнитті зондтауға арналған жер үсті, көп чипті модуль. Оның бір -екі дәрежелі дәлдігі мен дәлдігі жаяу жүру навигациясы мен LBS қосымшаларын қосады.
Ұсынылған:
HMC5883 және Raspberry Pi көмегімен магниттік өрісті өлшеу: 4 қадам
HMC5883 және Raspberry Pi көмегімен магниттік өрісті өлшеу: HMC5883-бұл төмен өрісті магнитті сезуге арналған цифрлық компас. Бұл құрылғыда магнит өрісінің кең диапазоны +/- 8 Oe және шығыс жылдамдығы 160 Гц. HMC5883 сенсорында автоматты ажырату белбеу драйверлері, офсетті жою және
HMC5883 және бөлшек фотонының көмегімен магниттік өрісті өлшеу: 4 қадам
HMC5883 және бөлшек фотонының көмегімен магниттік өрісті өлшеу: HMC5883-бұл төмен өрісті магнитті сезуге арналған цифрлық компас. Бұл құрылғыда магнит өрісінің кең диапазоны +/- 8 Oe және шығыс жылдамдығы 160 Гц. HMC5883 сенсорында автоматты ажырату белбеу драйверлері, офсетті жою және
CPS120 және Arduino Nano көмегімен қысымды өлшеу: 4 қадам
CPS120 мен Arduino Nano көмегімен қысымды өлшеу: CPS120 - бұл толық компенсацияланған шығысы бар жоғары сапалы және төмен сыйымдылықтағы абсолютті қысым сенсоры. Ол өте аз қуатты тұтынады және қысымды өлшеуге арналған өте шағын микроэлектромеханикалық сенсордан (MEMS) тұрады. Сигма-дельтаға негізделген
STS21 және Arduino Nano көмегімен температураны өлшеу: 4 қадам
STS21 және Arduino Nano көмегімен температураны өлшеу: STS21 сандық температура сенсоры жоғары өнімділікті және кеңістікті үнемдеуге мүмкіндік береді. Ол сандық, I2C форматында калибрленген, сызықты сигналдарды береді. Бұл сенсорды жасау CMOSens технологиясына негізделген, ол жоғары деңгейге жатады
H3LIS331DL және Arduino Nano көмегімен үдеуді өлшеу: 4 қадам
H3LIS331DL және Arduino Nano көмегімен үдеуді өлшеу: H3LIS331DL-бұл цифрлық I²C сериялық интерфейсі бар, «нано» тобына жататын, қуаты төмен, жоғары білікті 3 осьті желілік акселерометр. H3LIS331DL -де ± 100g/± 200g/± 400g пайдаланушы таңдауға болатын толық таразы бар және ол жылдамдықты өлшеуге қабілетті