- Компоненте потребне:
- Кружни дијаграм:
- Ардуино Уно:
- ЛЦД 16к2:
- Концепт отпорности у боји:
- Израчунавање отпора помоћу Ардуино Охм метра:
- Објашњење кода:
Тешко читамо кодове боја на отпорницима како бисмо пронашли његов отпор. Да бисмо превазишли потешкоће у проналажењу вредности отпора, направићемо једноставан мерач ома користећи Ардуино. Основни принцип који стоји иза овог пројекта је мрежа делитеља напона. Вредност непознатог отпора приказује се на ЛЦД дисплеју 16 * 2. Овај пројекат такође служи као повезивање ЛЦД екрана 16 * 2 са Ардуином.
Компоненте потребне:
- Ардуино Уно
- ЛЦД екран од 16 * 2
- Потенциометар (1 кило Охм)
- Отпорници
- Бреадбоард
- Жице краткоспојника
Кружни дијаграм:
Ардуино Уно:
Ардуино Уно је плоча микроконтролера отвореног кода заснована на микроконтролеру АТмега328п. Има 14 дигиталних пинова (од којих се 6 пинова могу користити као ПВМ излази), 6 аналогних улаза, уграђених регулатора напона итд. Ардуино Уно има 32 КБ флеш меморије, 2 КБ СРАМ-а и 1 КБ ЕЕПРОМ-а. Ради на тактној фреквенцији од 16МХз. Ардуино Уно подржава серијску, И2Ц, СПИ комуникацију за комуникацију са другим уређајима. Табела испод приказује техничке спецификације Ардуино Уно-а.
Микроконтролер | АТмега328п |
Радни напон | 5В |
Улазни напон | 7-12В (препоручено) |
Дигитални И / О пинови | 14 |
Аналогне пинове | 6 |
Флеш меморија | 32КБ |
СРАМ | 2КБ |
ЕЕПРОМ | 1КБ |
Такт |
16МХз |
ЛЦД 16к2:
ЛЦД 16 * 2 је широко коришћен екран за уграђене апликације. Ево кратког објашњења о пиновима и раду ЛЦД екрана 16 * 2. Унутар ЛЦД-а налазе се два веома важна регистра. То су регистар података и регистар наредби. Регистар наредби користи се за слање наредби као што су јасан приказ, курсор код куће итд., Регистар података користи се за слање података који ће се приказати на ЛЦД-у 16 * 2. Испод табеле приказан је пин опис 16 * 2 лцд.
Пин |
Симбол |
И / О |
Опис |
1 |
Всс |
- |
Приземље |
2 |
Вдд |
- |
+ 5В напајање |
3 |
Вее |
- |
Напајање за контролу контраста |
4 |
РС |
Ја |
РС = 0 за регистар наредби, РС = 1 за регистар података |
5 |
РВ |
Ја |
Р / В = 0 за писање, Р / В = 1 за читање |
6 |
Е. |
И / О |
Омогући |
7 |
Д0 |
И / О |
8-битна магистрала података (ЛСБ) |
8 |
Д1 |
И / О |
8-битна магистрала података |
9 |
Д2 |
И / О |
8-битна магистрала података |
10 |
Д3 |
И / О |
8-битна магистрала података |
11 |
Д4 |
И / О |
8-битна магистрала података |
12 |
Д5 |
И / О |
8-битна магистрала података |
13 |
Д6 |
И / О |
8-битна магистрала података |
14 |
Д7 |
И / О |
8-битна магистрала података (МСБ) |
15 |
А. |
- |
+ 5В за позадинско осветљење |
16 |
К. |
- |
Приземље |
Концепт отпорности у боји:
Да бисмо идентификовали вредност отпора можемо користити доњу формулу.
Р = {(АБ * 10 ц) Ω ± Т%}
Где
А = Вредност боје у првом опсегу.
Б = Вредност боје у другом опсегу.
Ц = Вредност боје у трећем опсегу.
Т = Вредност боје у четвртом опсегу.
Табела испод приказује код боја отпорника.
Боја |
Нумеричка вредност боје |
Фактор множења (10 ц) |
Вредност толеранције (Т) |
Црн |
0 |
10 0 |
- |
Браон |
1 |
10 1 |
± 1% |
Црвена |
2 |
10 2 |
± 2% |
Наранџаста |
3 |
10 3 |
- |
Жута |
4 |
10 4 |
- |
Зелена |
5 |
10 5 |
- |
Плави |
6 |
10 6 |
- |
Виолет |
7 |
10 7 |
- |
Греи |
8 |
10 8 |
- |
бео |
9 |
10 9 |
- |
Злато |
- |
10 -1 |
± 5% |
Сребро |
- |
10 -2 |
± 10% |
Нема бенда |
- |
- |
± 20% |
На пример, ако су кодови боја Смеђа - Зелена - Црвена - Сребрна, вредност отпора израчунава се као, Смеђа = 1 зелена = 5 црвена = 2 сребрна = ± 10%
Из прва три опсега, Р = АБ * 10 ц
Р = 15 * 10 +2 Р = 1500 Ω
Четврти опсег указује на толеранцију од ± 10%
10% од 1500 = 150 За + 10 процената, вредност је 1500 + 150 = 1650Ω За - 10 процената, вредност је 1500 -150 = 1350Ω
Стога стварна вредност отпора може бити између 1350Ω и 1650Ω.
Да би било практичније овде је калкулатор кодова отпора у којем требате само унијети боју прстенова на отпорнику и добит ћете вриједност отпора.
Израчунавање отпора помоћу Ардуино Охм метра:
Рад овог мерача отпора је врло једноставан и може се објаснити употребом једноставне мреже делитеља напона приказане доле.
Из мреже делитеља напона отпорника Р1 и Р2, Воут = Вин * Р2 / (Р1 + Р2)
Из горње једначине можемо извести вредност Р2 као
Р2 = Воут * Р1 / (Вин - Воут)
Где је Р1 = познати отпор
Р2 = Непознати отпор
Вин = напон произведен на 5В пину Ардуина
Воут = напон на Р2 у односу на масу.
Напомена: изабрана вредност познатог отпора (Р1) је 3,3 КΩ, али корисници би требало да је замене вредношћу отпора отпорника који су изабрали.
Дакле, ако добијемо вредност напона на непознатом отпору (Воут), можемо лако израчунати непознати отпор Р2. Овде смо прочитали вредност напона Воут помоћу аналогног пина А0 (погледајте шему кола) и претворили те дигиталне вредности (0 -1023) у напон како је објашњено у доњем коду.
Ако је вредност познатог отпора далеко већа или мања од непознатог отпора, грешка ће бити већа. Стога се саветује да се позната вредност отпора држи ближе непознатом отпору.
Објашњење кода:
Комплетан Ардуино програм и демо видео за овај пројекат је дат на крају овог пројекта. Код је подељен на мале смислене делове и објашњен у наставку.
У овом делу кода дефинисаћемо игле на којима је ЛЦД дисплеј 16 * 2 повезан са Ардуином. РС пин од 16 * 2 лцд је повезан са дигиталним пином 2 од ардуино. Омогућавајући пин од 16 * 2 лцд је повезан са дигиталним пином 3 Ардуина. Пинови за податке (Д4-Д7) од 16 * 2 лцд повезани су на дигиталне пинове 4,5,6,7 Ардуино-а.
ЛикуидЦристал ЛЦД (2,3,4,5,6,7); // рс, е, д4, д5, д6, д7
У овом делу кода дефинишемо неке променљиве које се користе у програму. Вин је напон који даје 5В пин ардуино-а. Воут је напон на отпорнику Р2 у односу на масу.
Р1 је вредност познатог отпора. Р2 је вредност непознатог отпора.
инт Вин = 5; // напон на пину од 5В ардуино флоат Воут = 0; // напон на А0 пину ардуино пловка Р1 = 3300; // вредност познатог отпора флоат Р2 = 0; // вредност непознатог отпора
У овом делу кода покренућемо ЛЦД екран од 16 * 2. Команде су дате на ЛЦД екрану од 16 * 2 за различита подешавања као што су прозирни екран, приказ на трептају курсора итд.
лцд.бегин (16,2);
У овом делу кода аналогни напон на отпорнику Р2 (А0 пин) претвара се у дигиталну вредност (0 до 1023) и чува у променљивој.
а2д_дата = аналогРеад (А0);
У овом делу кода дигитална вредност (0 до 1023) се претвара у напон за даље прорачуне.
бафер = а2д_дата * Вин; Воут = (бафер) / 1024,0;
Ардуино Уно АДЦ, је 10-битном резолуцијом (толико вредности број од 0 - 2 ^ 10 = 1024 вредности). То значи да ће мапирати улазни напон између 0 и 5 волти у целобројне вредности између 0 и 1023. Дакле, ако помножимо улазни анлогВалуе са (5/1024), тада добијамо дигиталну вредност улазног напона. Овде научите како да користите АДЦ улаз у Ардуину.
У овом делу кода, стварна вредност непознатог отпора израчунава се помоћу горе описаног поступка.
бафер = Воут / (Вин-Воут); Р2 = Р1 * бафер;
У овом делу кода вредност непознатог отпора је одштампана на екрану од 16 * 2 лцд.
лцд.сетЦурсор (4,0); лцд.принт ("охм метар"); лцд.сетЦурсор (0,1); лцд.принт ("Р (охм) ="); лцд.принт (Р2);
Ово је што можемо лако израчунати отпор непознатог отпорника користећи Ардуино. Такође проверите:
- Мерач фреквенције Ардуино
- Ардуино мерач капацитивности