- Ардуино машина за вагање ради
- Компоненте потребне за машине за вагање засноване на Ардуину
- Машина за вагање заснована на Ардуину - схема спојева
- Израда круга на тачканој перфорацији
- Изградња кућишта за машине за вагање засновано на Ардуину
- Ардуино машина за вагање - шифра
Дигиталне ваге оптерећења још су једно чудо модерног инжењерства и дизајна. Да, говоримо о ваги за вагање коју често виђамо у већини прехрамбених продавница и на другим местима, али да ли сте се икада запитали како функционише вага? Да бисмо одговорили на то питање, у овом пројекту ћемо погледати мерну ћелију и њен рад. Коначно, направићемо преносиву вагу оптерећења засновану на Ардуину са сензором тежине ХКС711, који може да мери тежину до 10 кг.
Ова машина за вагање је савршена за локалне продавнице, где пакују предмете у великој количини. Као и комерцијални производи, и наша вага ће имати дугме нула које поништава вагу. Такође, има опцију за подешавање тежине за мерење, када мерна тежина достигне задату тежину, зујалица се оглашава брзо и зауставља се када је подешена тежина једнака мерној тежини. На овај начин, корисник га може спаковати само чувши звук и не би морао да гледа у екран. Како је ово врло једноставан пројекат, врло лако ћемо га градити користећи компоненте као што су Ардуино и мерну ћелију сонде. Дакле, без даљег одлагања, кренимо одмах у то.
У претходном чланку направили смо пројекте попут сензора тежине заснованог на Распберри Пи-у и паметног контејнера ИоТ са упозорењем е-поште и надгледањем веба користећи популарни модул појачала ХКС711. Дакле, проверите да ли је то ваш захтев.
Ардуино машина за вагање ради
Главна компонента овог пројекта је модул појачавача мерне ћелије и ХКС711. Као што видите, једна страна је означена са десет килограма. Такође, можете приметити неку врсту белог заштитног лепка преко мерне ћелије и излазе четири различите боје жица, које ће открити тајну испод белог заштитног лепка и функцију ових четворобојних жица касније у чланку.
Мерна ћелија је претварач који трансформише силу или притисак у електрични излаз. Има две стране, рецимо десну и леву страну и направљена је од алуминијумских блокова. Као што видите у средини се материјал разређује стављањем велике рупе. Због тога је то тачка која трпи деформације када се терет постави на страну носача. Сада замислите да је десна бочна ћелија монтирана на подножје, а лева је место где се поставља терет, ова конфигурација деформише ћелију теретног мерила због џиновске рупе у средини.
Када се терет постави на теретну страну мерне ћелије, горњи део ће претрпети напетост, а доњи део ће се стиснути. Због тога се алуминијумска шипка савија на левој страни надоле. Ако измеримо ову деформацију, можемо измерити силу која је била примењена на алуминијумски блок и управо ћемо то урадити.
Сада остаје питање шта је унутар белог заштитног лепка? Унутар овог заштитног лепка, наћи ћемо врло танку еластичну компоненту која се назива деформација. Манометар је компонента која се користи за мерење напрезања. Ако пажљивије погледамо ову компоненту, можемо видети две прикључне плочице и тада имамо проводни узорак жице са понављајућим отклонима. Ова проводна жица има дефинисан отпор. Када га савијемо, вредност отпора ће се променити? Дакле, једна страна мерача напрезања је монтирана и фиксирана на месту, ако тег поставимо на другу страну алуминијумске шипке, то ће приморати сондажа да се савије, што ће проузроковати промену отпора. Како се то заправо догађа? Проводни узорак мерача напона направљен је од бакра, ова жица ће имати одређену површину и дужину, па ће ове две јединице дати отпор жице. Отпор жице супротставља се протоку струје. Сада је очигледно да ако се површина ове жице смањи,могло би проћи мање електрона што значи нижу струју. Ако повећамо површину, повећаће се отпор проводника. Ако се на ову жицу примени нека сила, то ће истезати подручје и истовремено ће се смањивати, отпор се повећава. Али ова варијација отпора је врло мала. Ако истегнемо мерач напрезања, отпор ће се повећати, а ако га стиснемо, отпор ће постати мањи. Да бисмо измерили силу, морамо да измеримо отпор. Мерење отпора директно није увек практично, јер је промена врло мала. Дакле, уместо да меримо отпор, можемо лако мерити напоне. Дакле, у овом случају треба да претворимо излазни приказ мерача из вредности отпора у вредности напона.Ако се на ову жицу примени нека сила, то ће истезати подручје и истовремено ће се смањивати, отпор се повећава. Али ова варијација отпора је врло мала. Ако истегнемо мерач напрезања, отпор ће се повећати, а ако га стиснемо, отпор ће постати мањи. Да бисмо измерили силу, морамо да измеримо отпор. Мерење отпора директно није увек практично, јер је промена врло мала. Дакле, уместо да меримо отпор, можемо лако мерити напоне. Дакле, у овом случају треба да претворимо излазни приказ мерача из вредности отпора у вредности напона.Ако се на ову жицу примени нека сила, то ће истезати подручје и истовремено ће се смањивати, отпор се повећава. Али ова варијација отпора је врло мала. Ако истегнемо мерач напрезања, отпор ће се повећати, а ако га стиснемо, отпор ће постати мањи. Да бисмо измерили силу, морамо да измеримо отпор. Мерење отпора директно није увек практично, јер је промена врло мала. Дакле, уместо да меримо отпор, можемо лако мерити напоне. Дакле, у овом случају треба да претворимо излазни приказ мерача из вредности отпора у вредности напона.отпор ће бити мањи. Да бисмо измерили силу, морамо да измеримо отпор. Мерење отпора директно није увек практично, јер је промена врло мала. Дакле, уместо да меримо отпор, можемо лако мерити напоне. Дакле, у овом случају треба да претворимо излазни приказ мерача из вредности отпора у вредности напона.отпор ће бити мањи. Да бисмо измерили силу, морамо да измеримо отпор. Мерење отпора директно није увек практично, јер је промена врло мала. Дакле, уместо да меримо отпор, можемо лако мерити напоне. Дакле, у овом случају, морамо претворити излазни приказ мерача из вредности отпора у вредности напона.
То можемо учинити уз помоћ моста Вхеатстоне. Девометар постављамо у Вхеатстонеов мост ако је мост уравнотежен, напон у средњој тачки треба да буде нула (претходно смо направили пројекат где смо описали како Вхеатстонеов мост ради, то можете проверити ако желите знати више о теми). Када мерач напрезања промени отпор, мост ће избалансирати, а напон ће се такође променити. Дакле, на овај начин Вхеатстонеов мост претвара варијације отпора у вредности напона.
Али ова промена напона је и даље врло мала, па да бисмо је повећали, морамо да користимо ХКС711 модул. ХКС711 је 24-битни диференцијални АДЦ, на тај начин бисмо могли измерити врло мале промене напона. даће вредности од 0 до 2 експоненцијално 24.
Компоненте потребне за машине за вагање засноване на Ардуину
Да бисмо овај пројекат учинили што једноставнијим, користили смо врло генеричке компоненте које можете пронаћи у било којој локалној хоби продавници. Слика испод ће вам дати идеју о компонентама. Поред тога, имамо списак материјала (БОМ) наведен у наставку.
- Теретна ћелија (користимо мерну ћелију од 10 кг)
- Модул појачала ХКС 711
- Ардуино Нано
- И2Ц ЛЦД 16Кс2 - Компатибилан са И2Ц
- 1к отпорник -2 бр
- ЛЕД диоде -2Не
- Зујалица
- Уобичајена ПЦБ
- 7,4В батерија (ако желите да буде преносива)
- ЛМ7805 регулатор напона
Машина за вагање заснована на Ардуину - схема спојева
Мерна ћелија има четири жице које су црвене, црне, зелене и беле. Ова боја се може разликовати у зависности од произвођача, па је боље да се обратите техничком листу. Повежите црвену на Е + плоче ХКС711, црну на Е-, белу на А +, а зелену на А-, Доут, а сат плоче на Д4 и Д5. Повежите један крај тастера са Д3, Д8, Д9 и друге крајеве са земљом. Имамо И2Ц ЛЦД, па повежите СДА на А4 и СЦЛ на А5. Повежите земљу ЛЦД-а, ХКС711 и Ардуино са земљом, такође повежите ВЦЦ-ове са 5Впин-ом Ардуино-а. Сви модули раде на 5В, па смо додали регулатор напона ЛМ7805. Ако не желите да буде преносив, можете Ардуино директно напајати помоћу УСБ кабла.
Израда круга на тачканој перфорацији
Залепили смо све компоненте на заједничку тачкасту перфорацију. Користили смо женске заглавља за лемљење Ардуина и АДЦ-а са плочом, такође смо користили жице за повезивање свих тастера и ЛЕД-а. Након завршетка поступка лемљења, уверили смо се да из ЛМ7805 излази одговарајуће 5В. Коначно, поставили смо прекидач за укључивање / искључивање кола. Кад смо сви завршили, изгледало је као на слици испод.
Изградња кућишта за машине за вагање засновано на Ардуину
Као што видите, мерна ћелија има неколико навоја вијака, тако да бисмо је могли монтирати на основну плочу. За основу наше скале користићемо ПВЦ плочу, за то смо прво одсекли квадрат величине 20 * 20 цм и четири правоугаоника 20 * 5 од ПВЦ плоче. Затим смо помоћу тврдог лепка залепили сваки комад и направили мало кућиште.
Запамтите, нисмо поправили једну страну, јер на њу треба да поставимо тастере, ЛЕД и ЛЦД. Затим смо користили пластичну плочу за врх ваге. Пре него што ово подешавање учинимо трајним, морамо да се уверимо да имамо довољно простора од земље до мерне ћелије, тако да ће се она моћи савити, па смо између теретне ћелије и основе поставили вијак и навртке, такође смо додали неколико пластичних одстојника између мерне ћелије и горњег дела. користили смо округли пластични лим као врхунски елемент равнотеже.
Затим смо ЛЦД, ЛЕД диоде и тастере ставили на предњу плочу и све што је повезано дугачком изолованом жицом. Након што смо завршили поступак ожичења, залепили смо предњу плочу за главну подлогу са одређеним нагибом, тако да врло лако можемо очитати вредности са ЛЦД-а. коначно смо главни прекидач прикачили на страну ваге и то је то. Тако смо направили тело за нашу тежину.
Можете дизајнирати са својим идејама, али не заборавите да теретну ћелију поставите као на слици.
Ардуино машина за вагање - шифра
Како смо сада завршили са процесом израде за нашу дигиталну скалу, можемо прећи на програмски део. За једноставно програмирање користићемо библиотеку ХКС711, ЕЕПРОМ библиотеку и библиотеку ЛикуидЦристал. Можете преузети библиотеку ХКС711 из званичног ГитХуб спремишта или отићи на алати > укључити библиотеку > управљати библиотеком, затим претраживати библиотеку помоћу кључне речи ХКС711, након преузимања библиотеке, инсталирати је у Ардуино иде.
Прво морамо да калибришемо мерну ћелију и ту вредност сачувамо на ЕЕПРОМ-у. За то идите на филе> екамплес> ХКС 711_АДЦ, а затим изаберите калибрациони код. Пре отпремања кода, ставите вагу на стабилну равну површину. Затим отпремите код на Ардуино и отворите серијски монитор. Затим промените брзину преноса на 572600. Сада монитор тражи да преузме тежину, за то треба да притиснемо т и уђемо.
Сада треба да ставимо познату тежину на вагу, у мом случају, то је 194гм. Након стављања познате тежине, откуцајте тежину на серијски монитор и притисните Ентер.
Сада вас серијски монитор пита желите ли да вредност сачувате у ЕЕПРОМ-у или не, па унесите И да одаберете да. Сада можемо видети тежину на серијском монитору.
Главни код овог пројекта који смо развили на примеру скице библиотеке ХКС711. Код овог пројекта можете преузети одоздо.
Прво смо у одељак за кодирање додали све три библиотеке. Библиотека ХКС711 служи за узимање вредности ћелије оптерећења. ЕЕПРОМ је уграђена библиотека Ардуино иде, која се користи за чување вредности у ЕЕПРОМ-у, а ЛикуидЦристал библиотека је за л2Ц ЛЦД модул.
#инцлуде
Затим се дефинишу цели бројеви за различите пинове и додељене вредности. ХКС711_АДЦ функција лоадцелл функције служи за подешавање игле и сата.
цонст инт ХКС711_доут = 4; цонст инт ХКС711_сцк = 5; инт тпин = 3; ХКС711_АДЦ ЛоадЦелл (ХКС711_доут, ХКС711_сцк); цонст инт цалВал_еепромАдресс = 0; лонг т; цонст инт Уп_буттонПин = 9; цонст инт Довн_буттонПин = 8; флоат буттонПусхЦоунтер = 0; флоат уп_буттонСтате = 0; плутају горе_ластБуттонСтате = 0; плутајуће довн_буттонСтате = 0; плутајуће довн_ластБуттонСтате = 0;
Прво смо у одељку за подешавање покренули серијски монитор, ово је само за отклањање грешака. Затим смо дефинисали режиме пинова, сви тастери су дефинисани као улаз. Уз помоћ функције Ардуино ПУЛЛ УП, нормално постављамо пинове на логички максимум. Дакле, за то не желимо да користимо никакве спољне отпорнике.
пинМоде (тпин, ИНПУТ_ПУЛЛУП); пинМоде (6, ИЗЛАЗ); пинМоде (12, ИЗЛАЗ); пинМоде (Уп_буттонПин, ИНПУТ_ПУЛЛУП); пинМоде (Довн_буттонПин, ИНПУТ_ПУЛЛУП);
Следећи редови кода су за подешавање И2Ц ЛЦД-а. Прво смо приказали текст добродошлице помоћу функције ЛЦД.принт () , након две секунде очистили смо екран помоћу лцд.цлеар () . Односно, на почетку се на екрану приказује АРДУИНО БАЛАНЦЕ као поздравни текст, а након две секунде ће се очистити и приказати мерне тежине.
лцд.инит (); лцд.бацклигхт (); лцд.сетЦурсор (0, 0); лцд.принт ("АРДУИНО БАЛАНЦЕ"); лцд.сетЦурсор (0, 1); лцд.принт ("хајде да меримо"); кашњење (2000); лцд.цлеар ();
Затим смо почели да читамо вредности из лоадцелл помоћу функције лоадЦелл.бегин () , након тога читамо ЕЕПРОМ за калибрисане вредности, то радимо помоћу функције ЕЕПРОМ.гет () . Односно, вредност смо већ ускладиштили помоћу калибрационе скице у ЕЕПРОМ адреси, ми само поново узимамо ту вредност.
ЛоадЦелл.бегин (); ЕЕПРОМ.гет (цалВал_еепромАдресс, цалибратионВалуе);
Прво у одељку петље проверавамо да ли су доступни подаци из мерне ћелије помоћу ЛоадЦелл.упдате (), ако су доступни, читамо и складиштимо те податке, за то користимо ЛоадЦелл.гетДата () . Даље, потребно је да сачувану вредност прикажемо на ЛЦД екрану. Да бисмо то урадили, користили смо функцију ЛЦД.принт () . такође, исписујемо задату тежину. Подешена тежина се подешава помоћу бројача тастера. То је објашњено у последњем одељку.
иф (ЛоадЦелл.упдате ()) невДатаРеади = труе; иф (невДатаРеади) { иф (миллис ()> т + сериалПринтИнтервал) { флоат и = ЛоадЦелл.гетДата (); лцд.сетЦурсор (0, 0); лцд.принт ("сет веи:"); лцд.сетЦурсор (9, 0); лцд.принт (буттонПусхЦоунтер); лцд.сетЦурсор (14, 0); лцд.принт ("ГМ"); лцд.сетЦурсор (0, 1); лцд.принт ("тежина:"); лцд.сетЦурсор (9, 1); лцд.принт (и); лцд.сетЦурсор (14, 1); лцд.принт ("ГМ");
Даље, постављамо вредност таре, за то, прво, читамо стање тастера таре помоћу функције дигиталРеад () , ако је стање ниско, та тежину тарамо на нулу. Функција таре ове скале тежине је да очитавања сведе на нулу. На пример, ако имамо посуду у коју су ствари натоварене, тада ће нето тежина бити тежина посуде + тежина ствари. Ако притиснемо дугме за тару са посудом на теретној ћелији пре утовара ствари, тежина корпе ће бити поништена и тежину ствари можемо мерити сами.
иф (дигиталРеад (тпин) == ЛОВ) { ЛоадЦелл.тареНоДелаи ();
Сада морамо поставити услове за различите индикације попут подешавања кашњења зујалице и статуса лед диоде. Урадили смо то користећи услове иф , имамо укупно три услова. Прво израчунавамо разлику између задате тежине и мерне тежине, а затим ту вредност чувамо у променљивој к.
флоат к = буттонПусхЦоунтер-и;
1. Ако је разлика између подешене тежине и мерне тежине већа или једнака 50гмс, зујало се оглашава са кашњењем од 200 милисекунди (полако).
иф (к> = 50) { дигиталВрите (6, ВИСОКО); кашњење (200); дигиталВрите (6, ЛОВ); кашњење (200); }
2. Ако је разлика између подешене тежине и мерне тежине мања од 50 и већа од 1 грама, зујало ће се огласити са закашњењем од 50 милисекунди (брже).
иф (к <50 && к> 1) { дигиталВрите (6, ХИГХ); кашњење (50); дигиталВрите (6, ЛОВ); кашњење (50); }
3. Када је мерна тежина једнака или већа од задате вредности, ово ће укључити зелени и искључити зујалицу и црвени.
иф (и> = буттонПусхЦоунтер) { дигиталВрите (6, ЛОВ); дигиталВрите (12, ВИСОКО); }
Имамо још две воид функције () за подешавање задате тежине (за бројање притиска тастера).
Функција повећава подешену вредност за 10 гмс за сваки притисак. То се постиже употребом функције дигиталРеад Ардуина ако је пин низак, што значи да је дугме притиснуто и то ће повећати вредност за 10гмс.
уп_буттонСтате = дигиталРеад (Уп_буттонПин); иф (уп_буттонСтате! = уп_ластБуттонСтате) { иф (уп_буттонСтате == ЛОВ) { бПресс = труе; буттонПусхЦоунтер = буттонПусхЦоунтер + 10; }
Слично томе, цхецкдовн служи за смањење задате вредности за 10гмс за сваки притисак.
довн_буттонСтате = дигиталРеад (Довн_буттонПин); иф (довн_буттонСтате! = довн_ластБуттонСтате) { иф (довн_буттонСтате == ЛОВ) { бПресс = труе; буттонПусхЦоунтер = буттонПусхЦоунтер - 10; }
Ово означава крај програмског дела.
Ова електронска вага заснована на Ардуину савршена је за мерење тежине до 10 кг (ово ограничење можемо повећати коришћењем веће називне ћелије). Ово је 99% тачно у односу на оригинална мерења.
Ако имате било каквих питања у вези са овим кругом машине за уравнотежење тежине засноване на Ардуину, објавите га у одељку за коментаре, хвала!