Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Sensor shield v5.0 ====== ===== Описание ===== Sensor shield предназначен для удобного подключения к контроллеру плат, модулей и другой различной электроники. Шилд позволяет обойтись без пайки и/или использования макетной платы. Шилд удобен тем, что подключается к контроллеру напрямую, образуя "бутерброд". Будет полезен для проектов создания роботов, умного дома, и прочих проектов, где требуется подключать несколько устройств одновременно. ==== Физические размеры ==== * Шилд (Д х Ш х В): 57 х 57 х 19 мм ==== Плюсы использования ==== * Удобное подключение устройств * Имеет отдельные вывода для подключения по интерфейсам I²C и COM * Разъём для внешнего питания ===== Пример подключения и использования ===== **Пример:** В примере демонстрируется работа с шилдом. Для начала шилд необходимо подключить к контроллеру: шилд помещается сверху на выводы контроллера. Далее к шилду подключается сервопривод и ультразвуковой дальномер. Дальномер определяет расстояние до объекта, и в зависимости от этого контроллер принимает решение о повороте сервопривода. Такой пример можно использовать в проектах охранной сигнализации, например, для поворота камеры наблюдения. Для этого нам понадобится: ^ Что нужно: ^ Кол-во, шт ^ | [[https://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер Smart UNO]] | 1 | | [[https://smartelements.ru/collection/shildy/product/sensor-shield-v50|Sensor Shield v5.0]] | 1 | | [[https://smartelements.ru/collection/motory-dravery-shassi/product/servoprivod-towerpro-sg90|Сервопривод TowerPro SG90]] | 1 | | [[https://smartelements.ru/collection/datchiki-i-sensory/product/ultrazvukovoy-dalnomer-hc-sr04|Ультразвуковой дальномер HC-SR04]] | 1 | | [[https://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-mama-mama|Набор проводов 20 шт, 20см, "мама - мама"]] | 4 | **Схема подключения:** {{ :главная:шилды:sensor_shield.fzz_-_fritzing_-_макетная_плата_.jpg?nolink |}} **Скетч для загрузки:** <file Arduino> //подключение библиотеки для работы с сервоприводом #include <Servo.h> //определение переменных #define coef 5 //коэффициент #define min_zone 6 // минимальная длина #define max_zone 44 // максимальная длина #define Trig 5 // пин подключения контакта Trig дальномера #define Echo 6 // пин подключения контакта Echo дальномера #define servoPin 11 // пин подключения сервопривода Servo myservo; // создание объекта сервопривода void setup() { pinMode (Trig, OUTPUT); //инициализация порта как выход pinMode (Echo, INPUT); //инициализация порта как вход myservo.attach (servoPin); //инициализация сервопривода myservo.write (0); //поворот сервопривода на исходное положение } unsigned int impulseTime=0; //переменная для хранения длины импульса unsigned int distance_cm=0; //переменная для хранения длины дистанции в см void loop() { digitalWrite (Trig, HIGH); // подача импульса на вход trig дальномера delayMicroseconds (10); // равная 10 микросекундам digitalWrite (Trig, LOW); // отключение подачи импульса impulseTime = pulseIn(Echo, HIGH); // замер длины импульса distance_cm = impulseTime/58; // пересчет в сантиметры //если произошло зависание, попытаться сбросить пин подключения Echo if(distance_cm == 0) { pinMode(Echo, OUTPUT); digitalWrite(Echo, LOW); pinMode(Echo, INPUT); return; } if (distance_cm >= min_zone && distance_cm <= max_zone) //если замеряемая длинна больше 6 см и меньше 22 см { myservo.write (coef * (distance_cm - min_zone)); // поворот сервопривода на значение: 5*(замеряемая длина - 6см ) } else if (distance_cm < min_zone) //иначе, если дистанция менее 6 см, сервопривод в положении ноль градусов { myservo.write(0); } else //иначе { myservo.write(180); //сервопривод в положении 180 градусов } delay (100); // задержка на 0.1 секунды } </file>