- АДЦ0804 и Распберри Пи:
- ЛМ35 Температурни сензор:
- Компоненте потребне:
- Објашњење кола и рада:
- Објашњење програмирања:
У нашој серији лекција о Распберри Пи углавном смо покрили све основне компоненте које повезују Распберри Пи. Све водиче смо покрили на једноставан и детаљан начин, тако да свако, било да је радио са Распберри Пи или не, може лако да научи из ове серије. А након што прођете кроз све водиче, моћи ћете да направите неке пројекте високог нивоа користећи Распберри Пи.
Дакле, овде дизајнирамо прву апликацију на основу претходних водича. Прва основна апликација је температура читаонице компаније Распберри Пи. А очитавања можете пратити на рачунару.
Као што је разматрано у претходним водичима, у Распберри Пи нема интерно обезбеђених АДЦ канала. Дакле, ако желимо да повежемо било који аналогни сензор, потребна нам је АДЦ јединица за претворбу. И у једном од наших водича повезали смо АДЦ0804 чип са Распберри Пи да бисмо прочитали аналогну вредност. Зато прођите кроз њега пре него што направите овај термометар за собну температуру.
АДЦ0804 и Распберри Пи:
АДЦ0804 је чип дизајниран за претварање аналогног сигнала у 8-битне дигиталне податке. Овај чип је једна од популарних серија АДЦ. То је 8-битна јединица за претворбу, тако да имамо вредности или 0 до 255 вредности. Резолуција овог чипа се мења на основу референтног напона који одаберемо, о томе ћемо више говорити касније. Испод је Пиноут АДЦ0804:
Сада је овде још једна важна ствар, АДЦ0804 ради на 5В и тако даје излаз у 5В логичком сигналу. У 8-пинском излазу (представља 8-битни), сваки пински пружа + 5В излаз који представља логику '1 '. Дакле, проблем је у томе што је ПИ логика од + 3,3 в, тако да не можете дати + 5 В логику на + 3,3 В ГПИО пину ПИ. Ако дате било који од 5 В на било који ГПИО пин ПИ, плоча се оштети.
Дакле, да бисмо спустили ниво логике са + 5В, користићемо коло делитеља напона. Раније смо разговарали о кругу за поделу напона, па смо га претходно размотрили ради даљег појашњења. Оно што ћемо урадити је да користимо два отпорника да поделимо + 5В логику на логику 2 * 2.5В. Дакле, након поделе даћемо ПИ + 2.5в логику. Дакле, кад год АДЦ0804 представи логику '1', видећемо + 2,5 В на ПИ ГПИО Пин-у, уместо + 5В.
ЛМ35 Температурни сензор:
Сада нам је потребан сензор за очитавање температуре у соби. Овде ћемо користити температурни сензор ЛМ35. Температура се обично мери у „Целзијусовим“ или „Фахренхеитовим“. Сензор „ЛМ35“ даје излаз у степени Целзијуса.
Као што је приказано на слици, ЛМ35 је трополни транзисторски уређај. Прибадаче су нумерисане као, ПИН1 = Вцц - Напајање (повезано на + 5В)
ПИН2 = сигнал или излаз (повезан на АДЦ чип)
ПИН3 = уземљење (повезано са земљом)
Овај сензор даје променљиви напон на излазу, заснован на температури. За сваки пораст температуре од +1 степени биће + 10мВ виши напон на излазном пину. Дакле, ако је температура 0◦Ц, излаз сензора ће бити 0В, ако је температура 10◦Ц, излаз сензора ће бити + 100мВ, ако је температура 25◦Ц, излаз сензора ће бити + 250мВ.
Компоненте потребне:
Овде користимо Распберри Пи 2 Модел Б са Распбиан Јессие ОС. Сви основни хардверски и софтверски захтеви су претходно разматрани, можете их потражити у Уводу о Распберри Пи, осим онога што нам је потребно:
- Прикључне игле
- Отпор 1КΩ (17 комада)
- Пот 10К
- 0.1µФ кондензатор
- Кондензатор од 100µФ
- Кондензатор од 1000µФ
- АДЦ0804 ИЦ
- ЛМ35 Сензор температуре
- Даска за хлеб
Објашњење кола и рада:
Везе које су изведене за повезивање Распберри-а са АДЦ0804 и ЛМ35, приказане су на доњем дијаграму кола.
Излаз ЛМ35 има пуно флуктуација напона; тако да се кондензатор 100уФ користи за изравнавање излаза, као што је приказано на слици.
АДЦ увек има пуно буке, ова бука може у великој мери утицати на перформансе, па зато користимо кондензатор од 0,1 уФ за филтрирање буке. Без овога ће бити пуно флуктуација на излазу.
Чип ради на РЦ (Ресистор-Цапацитор) осцилатор сату. Као што је приказано на дијаграму кола , Ц2 и Р20 чине сат. Овде је важно имати на уму да се кондензатор Ц2 може променити у нижу вредност за већу брзину АДЦ конверзије. Међутим, са већом брзином доћи ће до смањења тачности. Дакле, ако апликација захтева већу тачност, одаберите кондензатор веће вредности, а за већу брзину кондензатор мање вредности.
Као што је раније речено, ЛМ35 пружа + 10мВ за сваки степениште. Максимална температура која се може измерити помоћу ЛМ35 је 150 ° Ц. Тако ћемо имати максимално 1,5 В на излазном терминалу ЛМ35. Али подразумевани референтни напон АДЦ0804 је + 5В. Дакле, ако користимо ту референтну вредност, резолуција излаза ће бити ниска јер бисмо користили максимално (5 / 1,5) 34% опсега дигиталног излаза.
Срећом, АДЦ0804 има прилагодљиви Вреф пин (ПИН9) као што је приказано на његовом дијаграму пин-а горе. Тако ћемо поставити Вреф чипа на + 2В. Да бисмо подесили Вреф + 2В, морамо да обезбедимо напон од + 1В (ВРЕФ / 2) на ПИН9. Овде користимо 10К пот за подешавање напона на ПИН9 на + 1В. Користите волтметар да бисте добили тачан напон.
Раније смо користили температурни сензор ЛМ35 за очитавање собне температуре помоћу Ардуина и помоћу АВР микроконтролера. Такође проверите Мерење влажности и температуре помоћу Ардуина
Објашњење програмирања:
Једном када је све повезано према схеми кола, можемо УКЉУЧИТИ ПИ да напишемо програм у ПИХТОН-у.
Разговараћемо о неколико команди које ћемо користити у програму ПИХТОН, Увешћемо ГПИО датотеку из библиотеке, доња функција омогућава нам програмирање ГПИО пинова ПИ. Такође смо преименовали „ГПИО“ у „ИО“, па ћемо у програму кад год желимо да се упутимо на ГПИО пинове користити реч „ИО“.
увоз РПи.ГПИО као ИО
Понекад, када ГПИО пинови, које покушавамо да користимо, можда раде неке друге функције. У том случају добићемо упозорења током извршавања програма. Испод наредба говори ПИ-у да занемари упозорења и настави са програмом.
ИО.сетварнингс (Фалсе)
ГПИО пинове ПИ можемо упутити било бројем пина на плочи или бројем њихове функције. Као и „ПИН 29“ на плочи је „ГПИО5“. Дакле, овде кажемо или ћемо овде представљати пин са '29' или '5'.
ИО.сетмоде (ИО.БЦМ)
Постављамо 8 пинова као улазне пинове. Помоћу ових пинова открићемо 8-битне АДЦ податке.
ИО.сетуп (4, ИО.ИН) ИО.сетуп (17, ИО.ИН) ИО.сетуп (27, ИО.ИН) ИО.сетуп (22, ИО.ИН) ИО.сетуп (5, ИО.ИН) ИО.сетуп (6, ИО.ИН) ИО.сетуп (13, ИО.ИН) ИО.сетуп (19, ИО.ИН)
У случају да је стање у заградама тачно, изрази унутар петље извршавају се једном. Дакле, ако ГПИО пин 19 пређе високо, тада ће се изрази унутар ИФ петље извршити једном. Ако ГПИО пин 19 не иде високо, тада се изводи унутар ИФ петље неће извршити.
иф (ИО.инпут (19) == Труе):
Испод наредба се користи као форевер лооп, с овом наредбом ће се изрази унутар ове петље континуирано извршавати.
Док је 1:
Даље објашњење кода дато је у одељку кода испод.
Након писања програма време је да се изврши. Пре извршавања програма, омогућава разговоре о томе шта се дешава у колу као сажетак. Први ЛМ35 сензор детектује собну температуру и даје аналогни напон на свом излазу. Овај променљиви напон представља температуру линеарно са + 10мВ по ºЦ. Овај сигнал се доводи на чип АДЦ0804, овај чип претвара аналогну вредност у дигиталну вредност са 255/200 = 1,275 бројања на 10мв или 1,275броја за 1 степен. Ово бројање узима ПИ ГПИО. Програм претвара бројање у вредност температуре и приказује га на екрану. Типична температура коју очитава ПИ приказана је испод, Отуда смо и ми овај температурни монитор Распберри Пи.