- Потребне компоненте
- МАКС30205 са Ардуино - кружна шема
- Повезивање Ардуина са сензором телесне температуре МАКС30205
- Програмирање МАКС30205 са Ардуином
- Ардуино мерач телесне температуре - испитивање
За медицинске или клиничке примене, мерење телесне температуре човека је важан параметар за одређивање здравственог стања било ког појединца. Међутим, постоји пуно начина да се осети температура, али немају сви тачност да би се задовољиле спецификације клиничке термометрије. Сензор температуре МАКС30205 посебно је дизајниран за ову примену. Имајте на уму да овај сензор није бесконтактни температурни сензор. Ако тражите бесконтактно мерење ИЦ температуре, погледајте МЛКС90614 термометар који смо раније дизајнирали.
У овом пројекту повезаћемо МАКС30205 сензор телесне температуре човека који се лако може повезати са фитнес траком или може користити у медицинске сврхе. Користићемо Ардуино Нано као главну јединицу микроконтролера, а такође ћемо користити и 7-сегментне дисплеје за приказ осећене температуре у Фахренхеит-у. Једном када знате како се користи сензор, можете га користити било која од ваших омиљених апликација, такође можете погледати овај пројекат Ардуино Смартватцх који се у комбинацији са МАКС30205 може користити за надгледање температуре појединаца.
Потребне компоненте
- Ардуино НАНО
- 7-Сег приказује уобичајену катоду - 3ком
- 74ХЦ595 - 3 ком
- Отпорник 680Р - 24ком
- Плоча модула МАКС30205
- Напајање од 5В
- Бреадбоард
- Много жица
- Ардуино ИДЕ
- Микро-УСБ кабл
МАКС30205 са Ардуино - кружна шема
Комплетна шема споја за повезивање Ардуина са сензором телесне температуре МАКС30205 приказана је испод. Коло је врло једноставно, али пошто смо користили 7-сегментне дисплеје, изгледа помало компликовано. 7-сегментни дисплеји са Ардуином су одличан начин да прикажете своју вредност великом и светлом уз врло ниску цену. Али ако желите, ове вредности можете приказати и на ОЛЕД или ЛЦД екрану.
Ардуино Нано је повезан са три 74ХЦ595. Три 74ХЦ595 су каскадно спашена да сачувају додатне излазне пинове са Ардуино Нано-а за повезивање три 7-сег дисплеја. Раније смо користили 74ХЦ595 са Ардуином у многим другим пројектима као што су Ардуино Цлоцк, ЛЕД Боард Дисплаи, Ардуино змијска игра итд. Да набројимо само неке.
Модуларна плоча МАКС30205 захтева додатне пулл-уп отпоре јер комуницира са И2Ц протоколом. Међутим, неколико плоча модула не захтева додатно извлачење јер су повлачни отпорници већ дати унутар модула. Због тога треба потврдити да ли плоча модула има унутрашње отпорнике на извлачење или захтева додатно спољно повлачење. Плоча која се користи у овом пројекту већ има уграђене вучне отпоре унутар плоче модула.
Повезивање Ардуина са сензором телесне температуре МАКС30205
Овде се користи сензор МАКС30205 од максимума интегрисаног. МАКС30205 температурни сензор тачно мери температуру са тачношћу од 0,1 ° Ц (37 ° Ц до 39 ° Ц). Сензор ради са И2Ц протоколом.
Плоча модула може радити са напоном од 5 или 3,3 В. Међутим, плоча је конфигурисана за употребу са радним напоном од 5В. Такође укључује логички пребацивач нивоа, јер сам сензор подржава максимално 3,3 В као сврху напајања или комуникације података.
На излазу се користе три 74ХЦ595, 8-битна регистара померања за повезивање три 7-сегментна екрана са Ардуино НАНО. Шема пин-а може се приказати на доњој слици-
Пин опис 74ХЦ595 можете видети у доњој табели-
КА до КХ су пинови за излаз података који су повезани са 7-сег приказима. Пошто су три 74ХЦ595 каскадно спојена, пин за унос података (ПИН14) првог регистра смене биће повезан са Ардуино НАНО, а излазни пин за серијски податак ће дати податке следећем регистру смене. Ова серијска податковна веза биће настављена до трећег 74ХЦ595.
Програмирање МАКС30205 са Ардуином
Комплетан програм за овај водич налази се на дну ове странице. Објашњење овог кода је следеће. Прво, укључујемо стандардну датотеку заглавља библиотеке Ардуино И2Ц.
#инцлуде
Горњи ред ће садржати библиотеку Арцентина из протоцентрала. Ова библиотека има важне функције за комуникацију са сензором МАКС30205. Библиотека је преузета са доњег ГитХуб линка-
хттпс://гитхуб.цом/протоцентрал/ПротоЦентрал_МАКС30205
Након увоза библиотеке, дефинишемо МАКС30205 податке о објекту као што је приказано испод -
#инцлуде "Протоцентрал_МАКС30205.х" МАКС30205 темпСенсор;
Следећа два реда су важна за подешавање параметара. Ред доле ће дати температуру у Фаренхајту ако је постављено тачно. За приказ резултата у Целзијусу, линија мора бити постављена на фалсе.
цонст боол фахренхеиттемп = тачно; // Приказујем температуру у Фахренхеит-у. Ако желите приказати температуру у Целзијусу, учините ову променљиву лажном.
Испод линије треба да се конфигурише ако се у хардверу користе уобичајени 7-сегментни дисплеји катоде. Нека буде лажно ако се користи уобичајена анода.
цонст боол цоммонЦатходе = тачно; // Користим уобичајени сегмент Катоде 7 ако користите уобичајену Аноде, а затим промените вредност у фалсе. цонст бите дигит_паттерн = {// 74ХЦ595 Оутпин Цоннецтион витх 7сегмент дисплаи. // К0 К1 К2 К3 К4 К5 К6 К7 // абцдефг ДП 0б11111100, // 0 0б01100000, // 1 0б11011010, // 2 0б11110010, // 3 0б01100110, // 4 0б10110110, // 5 0б10111110, // 6 0б11100000, // 7 0б11111110, // 8 0б11110110, // 9 0б11101110, // А 0б00111110, // б 0б00011010, // Ц 0б01111010, // д 0б10011110, // Е 0б10001110, // Ф 0б00000001 //. };
Горњи низ се користи за чување узорка цифара за 7-сегментне екране.
У функцији подешавања, након подешавања режима пинова од 74ХЦ595 пинова, покреће се очитавање протокола И2Ц и сензора температуре.
воид сетуп () {// овде ставите свој код за подешавање да бисте га покренули једном: // поставите серијски порт на 9600 Сериал.бегин (9600); кашњење (1000); // подесимо контролни пин 74ХЦ595 као излазни пинМоде (латцхПин, ОУТПУТ); // СТ_ЦП од 74ХЦ595 пинМоде (цлкПин, ОУТПУТ); // СХ_ЦП од 74ХЦ595 пинМоде (дтПин, ОУТПУТ); // ДС од 74ХЦ595 // иницијализација И2Ц Либс Вире.бегин (); // покретање МАКС30205 очитавање температуре у континуираном режиму, активни режим темпСенсор.бегин (); }
У петљи температура очитава функцију темпСенсор.гетТемпературе () и чува се у променљивој променљивој која се зове темп . Након тога, ако је одабран температурни режим Фахренхеита, подаци се конвертују из Целзијуса у Фахренхеит. Затим се три цифре из претворених података о осетљивој температури даље раздвајају у три појединачне цифре. Да бисте то урадили, користе се доњи редови кодова -
// издвајамо 3 цифре од тренутне температуре (као ако је темп = 31,23ц,) инт диспДигит1 = (инт) темп / 10; // цифра1 3 инт диспДигит2 = (инт) темп% 10; // дигит2 1 инт диспДигит3 = (темп * 10) - ((инт) темп * 10); // цифра3 2
Сада се одвојене три цифре шаљу на 7-сегментне дисплеје помоћу регистара померања 74ХЦ595. Од када се ЛСБ први пут приказао на трећем 7-сегментном дисплеју преко трећег 74ХЦ595, трећа цифра се прво преноси. Да би то урадио, затегнути затик се повлачи ниско и подаци се достављају на 74ХЦ595 помоћу функције схифтОут ();
На исти начин, преостале друге и прве цифре се такође шаљу одговарајућим 74ХЦ595, остајући тако два 7-сегментна дисплеја. Након слања свих података, затик резе се ослобађа и подиже високо да би се потврдио крај преноса података. Одговарајући кодови се могу видети доле -
// приказ цифара у приказ од 3, 7 сегмената. дигиталВрите (латцхПин, ЛОВ); иф (цоммонЦатходе == труе) {схифтОут (дтПин, цлкПин, ЛСБФИРСТ, дигит_паттерн); схифтОут (дтПин, цлкПин, ЛСБФИРСТ, дигит_паттерн-дигит_паттерн); // 1. (цифра + ДП) схифтОут (дтПин, цлкПин, ЛСБФИРСТ, дигит_паттерн); } елсе {схифтОут (дтПин, цлкПин, ЛСБФИРСТ, ~ (образац_цифре)); схифтОут (дтПин, цлкПин, ЛСБФИРСТ, ~ (узорак цифара-цифара); // 1. (Дигит + ДП) схифтОут (дтПин, цлкПин, ЛСБФИРСТ, ~ (узорак_цифре)); } дигиталВрите (латцхПин, ХИГХ);
Ардуино мерач телесне температуре - испитивање
Коло је направљено у два сета плоча као што можете видети доле. Када ставимо прст на сензор, температура се осећа и излаз се приказује на 7-сегментном дисплеју, овде је вредност 92,1 * Ф.
Комплетан рад пројекта може се наћи у доњем видео линку. Надам се да сте уживали у изради пројекта и научили нешто корисно. Ако имате питања, оставите их у одељку за коментаре испод или користите наше форуме.