категории: Микроконтролер вериги
Брой преглеждания: 32016
Коментари към статията: 0
Най-популярните сензори за Arduino
Сензорите се използват в голямо разнообразие от схеми и проекти. Без автоматизация не може без тях. Интересуваме се от тях, защото е създаден проект за опростяване на дизайна и популяризирането на електрониката Arduino, Това е завършена дъска с микроконтролер и всичко необходимо за работа с нея и програмиране. В тази статия ще разгледаме сензори за Arduino, но те могат да се използват и с други микроконтролери.
Какви са сензорите?
Сензорите са очите, ушите и други сетива микроконтролер или друго устройство за управление. Те се отличават по естеството на сигнала и по предназначение.
По характера на сигнала се разделя на:
-
аналогов;
-
Digital.
И за целта сензорите са за измерване:
-
температура;
-
налягане;
-
влажност;
-
киселинност;
-
осветление;
-
Ниво на водата или други вещества;
-
вибрации;
-
И други специализирани компоненти.
Ако говорим за Arduino, тогава, когато получаваме информация от сензори, обработваме цифров сигнал или измерваме напрежението от аналоговия изход на модула. Както вече споменахме, сензорите са цифрови и аналогови, Някои модули за Arduino имат както цифрови, така и аналогови изходи, което ги унифицира.
По устройство те са
-
съпротивителни;
-
индуктивен;
-
капацитивен;
-
пиезоелектричен;
-
Фотоклетки и други видове.
Сензор за светлина или светлина
Най-лесният начин да определите яркостта на нещо - използвайте фоторезистор, фотодиод или фототранзистор, Можете да свържете една от изброените опции към Arduino или да купите специална дъска - сензор за светлина.
Какви са предимствата на решение "до ключ"? Първо, за да откриете промени в осветеността на единична фотоклетка не е достатъчно, имате нужда и от обикновен или настройващ резистор, може би сравнителен, за стъпка да / не операция. Второ, фабрично произведената печатна платка ще бъде по-надеждна от шарнирен монтаж или партидна платка или други начини, които аматьорите използват.
В aliexpress или в други онлайн магазини може да се намери при поискване "PHOTOSENSITIVE-SENSOR" или просто "сензор за светлина".
Този модул има три изхода:
-
хранене;
-
земята;
-
Цифров изход от сравнителя.
Или четири-пинов вариант:
-
хранене;
-
земята;
-
Цифров изход от сравнителя;
-
Аналогов.
Така че на таблото поставен тунинг резистор за регулиране на времето на сравнителя може да произведе цифров сигнал.
Примери за употреба:
-
Светлинен сензор за фотореле;
-
Аларма (сдвоена с излъчвателя);
-
Брояч на предмети, които пресичат светлинния лъч и т.н.
Трудно е да се постигнат точни стойности, тъй като за правилното регулиране чрез осветление ще е необходим правилен светломер. Фоторезисторите са по-подходящи за определяне на абстрактни стойности като „тъмно или светло“.
В допълнение към такава дъска в продажба можете да намерите доста интересни GY-302 модул, Това е светлинен сензор, базиран на интегралната схема BH-1750. Характеристиката му е, че е цифров модул, има капацитет 16 бита, комуникира с микроконтролери чрез i2c шината. 16 бита ви позволяват да измервате осветеността от 1 до 65356 Lux (Lx).
По-долу е представена диаграма на връзката му. Може да забележите, че SDA и SCL свързани към аналоговите щифтове на микроконтролера.
Това се дължи на факта, че шината I2C е реализирана върху тези ардуино щифтове, което може да се види, като погледнете следната картина. Затова не се заблуждавайте от този факт, сензорът е цифров.
Предимството на цифровите сензори е, че не е необходимо да проверявате стойностите на всеки екземпляр, да съставяте таблици, за да превеждате измерените стойности в реални мащаби и т.н.В повечето случаи за цифрови сензори е достатъчно просто да свържете готова библиотека и да прочетете стойностите, преобразувани в реални единици.
Примерна скица за GY-302 (BH-1750):
Как работи скица?
В началото казваме на програмата, че трябва да свържем библиотеката Wire.h, която е отговорна за комуникацията през I2C линията и BH1750. Останалите действия са добре описани в коментарите и в резултат на всеки 100 мс четем стойността от сензора в Lux.
Характеристики на GY-302 BH1750:
-
I2C комуникация с микроконтролер
-
Спектрална реакция, подобна на чувствителност на очите
-
Грешките поради инфрачервено лъчение са сведени до минимум
-
Диапазон на измерване 0-65535 Lux
-
Захранващо напрежение: 3-5 V
-
Ниска консумация на ток и функция сън
-
50/60 Hz филтриране на лек шум
-
Максималният брой сензори на 1 шина I2C е 2 броя.
-
Не се изисква калибриране
-
Консумация на ток - 120 μA
-
В режим на сън - 0,01 μA
-
Измерена дължина на вълната - 560 nm
-
В режим с висока разделителна способност - 1 Lux
-
В режим с ниска разделителна способност - 4 Lux
-
ADC - 16 бита
Време за измерване:
-
В режим с висока разделителна способност - 120 ms
-
В режим с ниска разделителна способност - 16 ms
Сензор за препятствия
Избрах този сензор като следващия, който трябва да разгледа, тъй като една от неговите опции работи въз основа на фотодиод или фототранзистор, които по принцип са подобни на фоторезистора, обсъден в предишния раздел.
Името му е „оптичен сензор за препятствия“. Основният функционален елемент е фотодиодът и светодиодите, излъчващи и приемащи в инфрачервения спектър (следователно, не видими за човешкото око, както и сглобена прага, сглобена, например, на компаратор с регулатор на чувствителността. Използвайки него, разстоянието, на което се задейства сензорът, се регулира по начина, по който е цифров.
Пример за схема на свързване:
Пример за програма за обработка на сигнал от сензор.
Тук, ако изходът от сензора е „1“, което означава „има пречка“, светодиодът на платката Arduino или свързан към 13-ия пин (същото нещо) ще светне. Най-често се използва в роботиката и алармите.
Датчик за разстояние
Предишното копие се състои от приемник, - фотодиод и излъчвател, - LED. Ултразвуковият сензор за разстояние също се състои от приемник и излъчвател на ултразвукови вълни. Името му е HC SR04.
Характеристики HC SR04:
-
5V захранващо напрежение
-
Работен параметър на силата t oka - 15 mA
-
Пасивен ток <2 mA
-
Ъгъл на видимост - 15 °
-
Резолюция на допир - 0,3 cm
-
Измервателен ъгъл - 30 °
-
Ширина на пулса - 10-6 s
-
Диапазон на измерване: 2-400 cm.
Грешката се появява поради:
-
температура и влажност - могат да бъдат намалени чрез измерване на температурата например с DHT-11 или DHT-22 и въвеждане на коефициенти за коригиране на измерванията.
-
разстояние до обекта;
-
местоположението на обекта спрямо сензора (според диаграмата на излъчване) може да бъде компенсирано чрез инсталиране на HC SR04 на сервото за промяна на посоката и извършване на точни настройки.
-
качество на изпълнение на елементите на сензорния модул.
Модел на излъчване:
Платката има четири изхода:
-
VCC - мощност;
-
Trig - входен сигнал;
-
Ехо - изходен сигнал;
-
GND е обичайна жица.
Как да обработвате показанията?
1. Изпращаме импулс с продължителност 10 µs към входа TRIG;
2. Вътре в модула импулсът се преобразува в пакет от 8 импулса, които следват един друг с честота 40 kHz и се изпращат през излъчвателя;
3. Импулсите, отразени от препятствието, пристигат до приемника и се извеждат в ECHO;
4. Продължителността на получения импулс от изхода ECHO трябва да бъде разделена на 58,2, за да получите разстоянието в сантиметри и 148, ако трябва да преобразувате в инчове.
Примерен код:
Измервайте температура
Най-лесният начин за измерване на температурата с помощта на микроконтролер е използвайте термодвойка или термистор, Термодвойките се използват за измерване на високи температури, за измерване на вътрешни и външни - това, за което ще говоря малко по-долу, ще направи, но засега нека да разгледаме термодвойката.
Всеки тип термодвойка има собствен подход за работа с микроконтролер. Например, има термодвойка от тип К или както се нарича още - хромел-алумель с диапазон на измерените температури от -200 до +1400 градуса по Целзий с чувствителност 41 mV / градус по Целзий. А за нея има специален преобразувател на базата на IC6 max6675, той има функция за компенсиране на температурата на студения възел и т.н.
Можете да работите с този модул, използвайки едноименната библиотека за Arduino. На фигурата по-долу виждате пример за програмен код за този случай.
След това на монитора на серийния порт се показва следното.
Но има и цифров сензор за температура DS12B20, може да се нарече класически, тъй като се използва от много години в любителски проекти, и много преди появата на Arduino.
Тази цифрова интегрална схема на вътрешното й устройство е показана на фигурата по-долу:
Схема за свързване на платката:
Основни характеристики и информация DS18B20:
-
Грешката е по-малка от 0,5 ° C (в температурния диапазон от -10 ° C до + 85 ° C).
-
Не се изисква калибриране
-
Диапазон на измерване - от -55 С до + 125С
-
VCC, захранващо напрежение 3.3-5V.
-
разделителна способност до 0,0625С, зададена от софтуер;
-
Резолюция - 12 бита
-
На всеки екземпляр е присвоен уникален сериен код. Това е необходимо, за да можете лесно да използвате няколко парчета в един проект
-
Комуникационен интерфейс - 1-проводник
-
Не се изисква пристягане
-
Максималният брой сензори на една линия е 127 броя.
-
Режим на фалшиво захранване - в този случай сензорът се захранва директно от комуникационната линия. В същото време не се гарантира измерване на температура над 100 C
По-долу виждате диаграмата за преобразуване на двоичния код от DS18b20 до температура в градуси по Целзий.
Примерна програма за отчитане на стойностите на температурата.
Атмосферни сензори за налягане
Електронните барометри се сглобяват на базата на сензори за атмосферно налягане. Следните опции бяха широко използвани:
-
BMP180;
-
BMP280;
-
BME280.
Ако двете предишни инстанции бяха подобни една на друга, тогава BME280 сензор - Това е миниатюрна метеорологична станция. В него са вградени 3 сензора:
-
температура;
-
налягане;
-
Влажност.
Техническите му характеристики:
-
Размери 2,5 х 2,5 х 0,93 мм;
-
Метален корпус LGA, оборудван с 8 изхода;
-
Захранващо напрежение 1,7 - 3,6 V;
-
Наличие на I2C и SPI интерфейси;
-
Консумация на ток в режим на готовност 0,1 µA.
Тези примери са MEMS барометри. MEMS означава микроелектромеханичен. Това е механична микроструктура, която използва капацитивни явления и други принципи за своята работа. По-долу виждате пример за такъв сензор в контекста.
Пример за схема на свързване:
И пример за програмния код:
Логиката на програмата е проста:
1. Обадете се на подпрограма (функция) отчитане от сензора.
2. Искане за отчитане на температурния сензор, интегриран в барометъра.
3. Чакаме време да оценим температурния сензор;
4. Прочетете резултата от измерванията на температурата;
5. Поискайте стойности на налягането;
6. Чакаме времето за измерване на налягането;
7. Прочетете стойността на налягането;
8. Върнете стойността на налягането от функцията.
Интересен факт е, че има четири варианта за четене на стойности, те са посочени като аргумент във функцията startPressure, вторият знак е от 0 до 3, където 0 е груба оценка, а 3 е точна оценка.
Сензор за движение
Най-често срещаният сензор за движение за Arduino е HC SR501 IR сензорен модул, Характерна особеност на този модул е, че той има настройка на разстоянието на отговор и времето на закъснение на изходния сигнал след работа.
Характеристики на модула:
1. Захранващо напрежение 4,5 - 20 V.
2. Quiescent ток ≈ 50 μA;
3. Напрежение на изходния сигнал (логическо ниво): 3.3 V;
4. Работен температурен диапазон - от -15 ° C до 70 ° C;
5. Размери: 32 * 24 мм;
6. зрително поле - 110 °;
7. Максимално работно разстояние - от 3 до 7 м (регулируемо); Над 30 ° C това разстояние може да намалее.
Схема на свързване:
Как да работим с него разгледахме в статия, публикувана по-рано: Схеми на сензори за движение, принципа на тяхната работа и схеми на свързване
Сензор за ниво на водата
Проектиран е да показва нивото на течността.
Удобства:
1. Захранващо напрежение 3-5V
2. Консумационен ток> 20 mA
3. Аналогов
4. Размери на измервателната зона 40х16 мм
5. Допустима влажност 10% - 90%
Примерен код:
Изходните стойности са от 0 (в сухо състояние) до 685 (могат да варират в действителност, това зависи от проводимостта на водата). Не забравяйте за електролизата, когато измервате нивото на сол или твърда вода, тя ще корозира.
Сензор за теч
Модулът се състои от две части - самият сензор и компараторът, могат да бъдат вградени в LM393, LM293 или LM193.
Благодарение на сравнителя аналоговият сигнал се преобразува в цифров.
Схема на свързване:
Изрязване на борда:
-
VCC - мощност, трябва да съответства на мощността на платката Apduino, в повечето случаи е 5V;
-
GND - обща жица;
-
AO - аналогов сигнал;
-
DO е цифров сигнал.
На таблото за сравнение има настройващ резистор, той задава чувствителността на сензора. Той може да действа като сигнал за дъжд или изтичане на нещо и при сдвояване с такъв кран може да работи като защита срещу течове на тръбопроводи в апартамента:
Видеото показва как работи:
Сензор за влажност
Често използван в проекти за автоматично поливане, за определяне на влажността на почвата, както и предишната се състои от електроди и платка с компаратор.
Може да работи както в аналогов, така и в цифров режим. Пример за схема на свързване на автоматична напоителна система с кран на базата на двигател:
И пример на програмен код за обработка на цифров сигнал от сензор за влажност:
заключение
Разгледахме популярни сензори, но има и много други. Това са различни сензори за вибрации, жироскопи, акселерометри, сензори за радиация и други.
Целта на статията беше да събере на едно място различни елементи, които могат да бъдат полезни за начинаещ инженер по електроника за изпълнението на техните проекти. Ако се интересувате от конкретен сензор - пишете в коментарите и ние ще го разгледаме по-подробно.
За ваше удобство сме съставили за вас таблица с прогнозна цена и списък с популярни сензори за Arduino, в реда, в който са разгледани в статията:Сензори за Arduino
Цените се вземат от онлайн магазини в Русия или Украйна. В Китай те струват 2 или повече пъти по-евтино.
Вижте също на e.imadeself.com
: