Мазмұны:

Arduino магнитометрі: 5 қадам (суреттермен)
Arduino магнитометрі: 5 қадам (суреттермен)

Бейне: Arduino магнитометрі: 5 қадам (суреттермен)

Бейне: Arduino магнитометрі: 5 қадам (суреттермен)
Бейне: Как измерить любое напряжение постоянного тока с Arduino ARDVC-01 2024, Қараша
Anonim
Ардуино магнитометрі
Ардуино магнитометрі

Біз не салып жатырмыз?

Адамдар магнит өрісін анықтай алмайды, бірақ біз үнемі магнитке сүйенетін құрылғыларды қолданамыз. Қозғалтқыштар, циркульдер, айналу датчиктері мен жел турбиналары, мысалы, жұмыс істеу үшін магнитті қажет етеді. Бұл оқу құралы магнит өрісін сезетін Arduino негізіндегі магнитометрді қалай жасау керектігін сипаттайды. Магнит өрісінің векторы изометриялық проекция көмегімен шағын экранда көрсетіледі.

Arduino дегеніміз не?

Arduino-бұл ашық бастапқы коды бар шағын микроконтроллер. Оның сандық кіріс және шығыс түйреуіштері бар. Сондай -ақ, аналогты кіріс түйреуіштері бар, олар сенсорлардан кірісті оқу үшін пайдалы. Әр түрлі Arduino модельдері бар. Бұл оқулықта Arduino Uno немесе Arduino MKR1010 қалай қолдануға болатыны сипатталған. Бірақ басқа модельдерді қолдануға болады.

Бұл оқулықты бастамас бұрын, Arduino даму ортасын, сондай -ақ сіздің нақты үлгіге қажет кез келген кітапхананы жүктеп алыңыз. Әзірлеу ортасы https://www.arduino.cc/kz/main/software сайтында, ал орнату нұсқаулары https://www.arduino.cc/en/main/software сайтында қол жетімді.

Магнит өрісі дегеніміз не?

Тұрақты магниттер басқа тұрақты магниттерге әсер етеді. Ток өткізгіш сымдар басқа ток өткізгіш сымдарға күш түсіреді. Тұрақты магниттер мен ток өткізгіш сымдар бір -біріне әсер етеді. Сынау тогының бірлігіне келетін бұл күш магнит өрісі болып табылады.

Егер біз объектінің көлемін өлшесек, онда бір скалярлық сан шығады. Алайда, магнетизм векторлық өріспен сипатталады, бұл күрделі шама. Біріншіден, ол барлық кеңістіктегі позицияға байланысты өзгереді. Мысалы, тұрақты магниттен бір сантиметрлік магнит өрісі он сантиметр қашықтықтағы магнит өрісінен үлкен болуы мүмкін.

Әрі қарай, кеңістіктің әр нүктесіндегі магнит өрісі вектормен бейнеленеді. Вектордың шамасы магнит өрісінің күшін көрсетеді. Бағыт күштің бағытына да, сынақ тогының бағытына да перпендикуляр.

Біз магнит өрісін бір жерде жебе түрінде бейнелей аламыз. Біз магнит өрісін кеңістіктегі әр түрлі өлшемдегі және әр түрлі бағыттағы жебе арқылы суреттей аламыз. Керемет визуализацияны https://www.falstad.com/vector3dm/ сайтынан алуға болады. Біз құрастырып жатқан магнитометр сенсорлардың орналасқан жеріндегі магнит өрісін дисплейде көрсеткі ретінде көрсетеді.

Hall әсерінің сенсоры дегеніміз не және ол қалай жұмыс істейді?

Холл әсерінің сенсоры - бұл белгілі бір бағытта магнит өрісінің кернеулігін өлшейтін шағын, арзан құрылғы. Ол артық зарядталған қоспа жартылай өткізгіштен жасалған. Кейбір Hall эффектілі датчиктердің шығысы аналогты кернеу болып табылады. Басқа Холл эффектілі датчиктерде интегралды компаратор бар және цифрлық шығыс шығарады. Басқа Hall эффектілі датчиктер ағынды, айналу жылдамдығын немесе басқа шамаларды өлшейтін үлкен құралдарға біріктірілген.

Холл эффектісінің физикасы Лоренц күшінің теңдеуімен жинақталған. Бұл теңдеу сыртқы электрлік және магнит өрісінің әсерінен қозғалатын зарядтың күшін сипаттайды.

Кескін
Кескін

Төмендегі суретте Холл эффектісі көрсетілген. Магнит өрісінің кернеулігін көк көрсеткі бағытында өлшегіміз келеді делік. Фигураның сол бөлігінде көрсетілгендей, біз өлшенетін өрістің бағытына перпендикуляр жартылай өткізгіш арқылы ток жүргіземіз. Ток - зарядтар ағыны, сондықтан жартылай өткізгіштегі заряд белгілі бір жылдамдықпен қозғалады. Бұл заряд суреттің орта бөлігінде көрсетілгендей сыртқы өрістің әсерінен күшті сезінеді. Заряд күш әсерінен қозғалады және жартылай өткізгіштің жиектерінде жиналады. Зарядтар жинақталған зарядтар әсер ететін күш сыртқы магнит өрісінің әсерінен күштерді теңестірмейінше жинақталады. Біз суреттің оң жағында көрсетілгендей жартылай өткізгіштегі кернеуді өлшей аламыз. Өлшенген кернеу магнит өрісінің кернеулігіне пропорционалды және ол ток пен магнит өрісінің бағытына перпендикуляр бағытта.

Кескін
Кескін

Изометриялық проекция дегеніміз не?

Кеңістіктің әр нүктесінде магнит өрісі үш өлшемді вектормен сипатталады. Дегенмен, біздің дисплей экраны екі өлшемді. Біз үш өлшемді векторды екі өлшемді жазықтықта проекциялай аламыз, сонда біз оны экранға шығара аламыз. Бұл үшін изометриялық проекция, орфографиялық проекция немесе қиғаш проекция сияқты көптеген әдістер бар.

Изометриялық проекцияда x, y және z осьтері бір -бірінен 120 градус қашықтықта орналасқан және олар бірдей алдын ала көрсетілгендей көрінеді. Изометриялық проекция туралы, сондай -ақ қажетті формулалар туралы қосымша ақпаратты Уикипедия бетіндегі тақырып бойынша табуға болады.

1 -қадам: Жабдықтарды жинаңыз

Arduino және кабель

Ардуино - бұл магнитометрдің миы. Бұл нұсқаулар Arduino Uno немесе Arduino MKR1010 қалай қолдануға болатынын сипаттайды. Кез келген жағдайда, оны компьютерге қосу үшін кабель қажет.

1 -нұсқа: Arduino Uno және USB AB кабелі

www.digikey.com/product-detail/kz/arduino/A000066/1050-1024-ND/2784006

www.digikey.com/product-detail/kz/stewart-connector/SC-2ABE003F/380-1424-ND/8544570

2 -нұсқа: Arduino MKR1010 және microUSB кабелі

www.digikey.com/product-detail/kz/arduino/ABX00023/1050-1162-ND/9486713

www.digikey.com/product-detail/kz/stewart-connector/SC-2AMK003F/380-1431-ND/8544577

TFT дисплейі

TFT - жұқа пленка транзисторы. Бұл 1,44 дюймдік дисплейде 128 -ден 128 пиксельге дейін болады. Ол кішкентай, жарқын және түрлі -түсті. Ол сынғыш тақтаға бекітілген. Дегенмен, түйреуіш түйреуіштері бөлек орналасқан, сондықтан оларды дәнекерлеу керек. қажет.)

www.digikey.com/product-detail/kz/adafruit-industries-llc/2088/1528-1345-ND/5356830

    Кескін
    Кескін
  • Аналогты холл әсерінің сенсорлары

Үш Холл әсерінің сенсоры қажет. Төмендегі сілтеме Allegro бөлшек нөмірі A1324LUA-T үшін. Бұл сенсор үшін түйреуіш 1 - кернеу, түйреуіш - 2, түйреуіш - шығыс. Басқа Холл сенсорлары да жұмыс істеуі керек, бірақ олардың сандық емес, аналогты екеніне көз жеткізіңіз. Егер сіз басқа сенсорды қолдансаңыз, түйреуішті тексеріңіз және қажет болса сымдарды реттеңіз. (Мен шын мәнінде тестілеу үшін бір компанияның басқа сенсорын қолдандым. Алайда мен қолданған ескірген және бұл сенсор оны ауыстырады.)

www.digikey.com/product-detail/kz/allegro-microsystems-llc/A1324LUA-T/620-1432-ND/2728144

Кішкене нан тақтасы мен сым

www.digikey.com/product-detail/kz/adafruit-industries-llc/239/1528-2143-ND/7244929

Тестілеуге арналған тұрақты магниттер

Тоңазытқыш магниттері жақсы жұмыс істейді.

2 -қадам: Сымдарды жалғау

Сымдар
Сымдар

Дисплейдегі тақырыптарды дәнекерлеңіз.

Кескін
Кескін

Датчиктерді тақтаның бір шетіне, ал дисплей мен Arduino -ны қарама -қарсы жаққа қойыңыз. Arduino мен дисплейдегі сымдардағы ток магнит өрісін тудырады, біз сенсорлардың оқуын қаламаймыз. Сонымен қатар, сенсорларды дисплей мен сенсор сымдарындағы токқа теріс әсер етуі мүмкін тұрақты магниттердің қасына қойғымыз келуі мүмкін. Осы себептерге байланысты сенсорлар дисплейден және Arduino -дан алыс болғанын қалаймыз. Сондай -ақ, осы себептермен бұл магнитометрді өте күшті магнит өрістерінен алыс ұстау керек.

Сенсорларды бір -біріне перпендикуляр, бірақ бір -біріне мүмкіндігінше жақын орналастырыңыз. Сенсорларды перпендикуляр болу үшін ақырын бүгіңіз. Әр сенсордың түйреуіші бөлек тақтаның бөлек қатарында болуы керек, сондықтан оны бөлек қосуға болады.

Кескін
Кескін

Сымдар екі себеп бойынша MKR1010 мен Uno арасында сәл өзгеше. Біріншіден, Arduino мен дисплей SPI арқылы байланысады. Әр түрлі Arduino модельдерінде SPI -дің белгілі бір желілеріне арналған арнайы түйреуіштер бар. Екіншіден, Uno аналогты кірістері 5 В дейін қабылдай алады, ал MKR1010 аналогты кірістері тек 3,3 В дейін қабылдай алады, Hall эффектінің сенсорлары үшін ұсынылатын кернеудің кернеуі 5 В. Сенсордың шығысы Arduino аналогты кірістеріне қосылған және олар жеткізу кернеулері сияқты үлкен болуы мүмкін. Uno үшін сенсорларға ұсынылған 5 В кернеуін қолданыңыз. MKR1010 үшін Arduino аналогтық кірісі ешқашан өңдей алмайтын кернеуді көрмейтін етіп 3,3 В пайдаланыңыз.

Қолданылатын Arduino үшін төмендегі схемалар мен нұсқауларды орындаңыз.

Arduino Uno -мен байланыс

Кескін
Кескін

Дисплейде 11 түйреуіш бар. Оларды Arduino Uno -ға келесідей қосыңыз. (NC қосылмаған дегенді білдіреді.)

  • Vin → 5V
  • 3.3 → NC
  • Gnd → GND
  • SCK → 13
  • SO → NC
  • SI → 11
  • TCS → 10
  • RST → 9
  • D/C → 8
  • CCS → NC
  • Lite → NC

Сенсорлардың Винін Arduino 5В -ге қосыңыз. Сенсордың жерін Arduino жеріне қосыңыз. Сенсорлардың шығуын Arduino A1, A2 және A3 аналогтық кірістеріне қосыңыз.

Кескін
Кескін

Arduino MKR1010 сымдары

Кескін
Кескін

Дисплейде 11 түйреуіш бар. Оларды Arduino -ға келесідей қосыңыз. (NC қосылмаған дегенді білдіреді.)

  • Vin → 5V
  • 3.3 → NC
  • Gnd → GND
  • SCK → SCK 9
  • SO → NC
  • SI → MOSI 8
  • TCS → 5
  • RST → 4
  • D/C → 3
  • CCS → NC
  • Lite → NC

Сенсорлардың Винін Arduino Vcc -ке қосыңыз. Бұл түйін 5 В емес, 3,3 В кернеуде. Сенсордың жерін Arduino жеріне қосыңыз. Сенсорлардың шығуын Arduino A1, A2 және A3 аналогтық кірістеріне қосыңыз.

Кескін
Кескін

3 -қадам: дисплейді тексеру

TFT дисплейінің жұмыс істеуін қамтамасыз етейік. Бақытымызға орай, Adafruit -те пайдаланушыларға ыңғайлы кітапханалар мен олармен бірге жүруге арналған тамаша оқулық бар. Бұл нұсқаулық оқулықты мұқият қадағалайды, Arduino даму ортасын ашыңыз. Құралдар → Кітапханаларды басқару тармағына өтіңіз. Adafruit_GFX, Adafruit_ZeroDMA және Adafruit_ST7735 кітапханаларын орнатыңыз. Android әзірлеу ортасын қайта іске қосыңыз.

Ең графикалық мысал кітапханаларға енгізілген. Оны ашыңыз. Файл → Мысалдар → Adafruit ST7735 және ST7789 кітапханасы → graphicstest. 1,44 дюймдік дисплейдің 95 -жолын және 98 -жолды өшіруді таңдау үшін.

Түпнұсқа:

94 // 1,8 дюймдік TFT экраны пайдаланылса, осы инициализаторды қолданыңыз:

95 tft.initR (INITR_BLACKTAB); // Init ST7735S чипі, қара қойынды 96 97 // НЕМЕСЕ инициализаторды қолданыңыз (түсініктеме бермеңіз), егер 1.44 «TFT: 98 //tft.initR(INITR_144GREENTAB); // Init ST7735R чипі, жасыл қойынды

1,44 дюймдік дисплей үшін дұрыс нұсқа:

94 // 1,8 дюймдік TFT экраны пайдаланылса, осы инициализаторды қолданыңыз:

95 //tft.initR(INIT_BLACKTAB); // Init ST7735S чипі, қара қойынды 96 97 // НЕМЕСЕ инициализаторды қолданыңыз (түсініктеме бермеңіз), егер 1,44 дюймдік TFT: 98 tft.initR (INITR_144GREENTAB); // Init SST35R чипі, жасыл қойынды

Дисплей SPI арқылы байланысады, ал Arduinos -тың әртүрлі моделі кейбір байланыс желілері үшін әр түрлі түйреуіштерді қолданады. Ең графикалық мысал Uno түйреуіштерімен жұмыс істеуге арналған. Егер сіз MKR1010 қолдансаңыз, 80 мен 81 жолдарының арасына келесі жолдарды қосыңыз.

MKR1010 түзетулері:

80

#define TFT_CS 5 #define TFT_RST 4 #define TFT_DC 3 #define TFT_MOSI 8 #define TFT_SCLK 9 Adafruit_ST7735 tft = Adafruit_ST7735 (TFT_CS, TFT_DC, TFT_MOSI, TFT_MOSI; 81 өзгермелі р = 3.1415926;

Өзгертілген графикалық тесттің мысалын сақтаңыз. Егер сіз әлі жасамаған болсаңыз, Arduino -ны компьютерге қосыңыз. Компьютердің Arduino таба алатынын тексеру үшін Құралдар → Тақта мен Құралдар → Портқа өтіңіз. Эскиз → Жүктеу тармағына өтіңіз. Егер мысал жұмыс істесе, дисплейде сызықтар, тіктөртбұрыштар, мәтін және толық демо көрсетіледі. Adafruit оқулығында ақаулықтарды жою қажет болса, толығырақ ақпарат берілген.

4 -қадам: магнитометр коды

Қосылған кодты жүктеп алып, оны Arduino даму ортасында ашыңыз.

Бұл бағдарлама алты функцияны қолданады:

Setup () дисплейді инициализациялайды

Loop () бағдарламаның негізгі циклін қамтиды. Ол экранды қараңғылатады, осьтерді, кірістерді оқиды және магнит өрісінің векторын көрсететін көрсеткіні тартады. Оның жаңарту жылдамдығы бір секундты құрайды, оны 127 жолды өзгерту арқылы өзгертуге болады

DrawAxes3d () x, y және z осьтерін салады және белгілейді

DrawArrow3d () x, y және z кірістерін 0 -ден 1023 -ке дейін қабылдайды. Осы мәндер бойынша ол кеңістіктегі көрсеткінің соңғы нүктелерін есептейді. Содан кейін экрандағы соңғы нүктелерді есептеу үшін isometricxx () және isometricyy () функцияларын қолданады. Соңында, ол көрсеткіні тартады және кернеуді экранның төменгі жағына басып шығарады

Isometricxx () изометриялық проекцияның х координатасын табады. Ол нүктенің x, y және z координаттарын қабылдап, экрандағы х пиксельдің сәйкес орнын қайтарады

Isometricyy () изометриялық проекцияның y координатасын табады. Ол нүктенің x, y және z координаттарын қабылдайды және экрандағы у пиксельдің сәйкес орнын қайтарады

Кодты іске қоспас бұрын, дисплеймен SPI байланысы үшін қандай түйреуіштерді қолдану керектігін және сенсорлар үшін кернеудің бастапқы кернеуін көрсету керек. Егер сіз MKR1010-ды қолдансаңыз, 92-96-шы жолдарды, сондай-ақ 110-жолды түсіндіріңіз. Содан кейін 85-89-шы жолдарды, сондай-ақ 108-жолды жазыңыз. Егер сіз Uno қолдансаңыз, 85-89-шы жолдарды және 108-ші жолды түсіндіріңіз. Содан кейін 92-96-жолдарды, сондай-ақ 110-жолды жазыңыз.

Кодты жүктеңіз, эскиз → Жүктеу.

Сіз x, y және z осьтерін қызыл түспен көруіңіз керек. Ұшы үшін көк шеңбері бар жасыл көрсеткі датчиктердегі магнит өрісінің векторын білдіреді. Төменгі сол жақта кернеудің көрсеткіштері көрсетіледі. Магнит датчиктерге жақындаған кезде кернеудің көрсеткіштері өзгеруі керек, ал көрсеткі өлшемі өсуі керек.

Кескін
Кескін

5 -қадам: Болашақ жұмыс

Болашақ жұмыс
Болашақ жұмыс

Келесі қадам - құрылғыны калибрлеу. Сенсорлық деректер парағы датчиктің кернеу мәндерін магнит өрісінің кернеулігіне қалай түрлендіру туралы ақпаратты береді. Калибрлеуді дәлірек магнитометрмен салыстыру арқылы тексеруге болады.

Тұрақты магниттер ток өткізетін сымдармен әрекеттеседі. Дисплей жанында және Arduino сымдары магнит өрісін тудырады, бұл сенсордың көрсеткіштеріне әсер етуі мүмкін. Сонымен қатар, егер бұл құрылғы күшті тұрақты магнит жанында өлшеу үшін қолданылса, тексерілетін құрылғының магнит өрісі өзара әрекеттеседі, шу шығарады және Arduino мен дисплейге зақым келтіруі мүмкін. Қорғаныс бұл магнитометрді неғұрлым берік ете алады. Егер Arduino металл қорапта қоршалған болса, үлкен магниттік өрістерге төтеп бере алады, ал егер сенсорларды жалаң сымдардың орнына экрандалған кабельдер қосса, шу аз болады.

Магнит өрісі - бұл позицияның функциясы, сондықтан ол кеңістіктің әр нүктесінде әр түрлі болады. Бұл құрылғы нүктеде магнит өрісінің x, y және z компоненттерін өлшеу үшін үш сенсорды қолданады. Сенсорлар бір -біріне жақын, бірақ бір нүктеде емес, бұл магнитометрдің ажыратымдылығын шектейді. Әр түрлі нүктелерде магнит өрісінің көрсеткіштерін сақтау жақсы болар еді, содан кейін оларды сәйкес жерлерде көрсеткілер жиыны ретінде көрсету. Дегенмен, бұл басқа күнге арналған жоба.

Әдебиеттер

Adafruit Arduino Graphics кітапханалары туралы ақпарат

https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket/overview

Магнит өрісінің визуализациясы

https://www.falstad.com/vector3dm/

Холл эффектісі мен Холл әсерінің сенсорлары туралы ақпарат

  • https://sensing.honeywell.com/index.php?ci_id=47847
  • https://www.allegromicro.com/~/media/Files/Datasheets/A1324-5-6-Datasheet.ashx

Изометриялық проекция туралы ақпарат

  • https://kk.wikipedia.org/wiki/3D_projection
  • https://kk.wikipedia.org/wiki/Isometric_projection

Ұсынылған: