Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Nano Sensor Shield ====== ===== Описание ===== Контроллеры Arduinо Nano и их аналоги имеют компактные размеры и нашли широкое применение в проектах, где важны размеры. Однако, подключение периферии к таким контроллерам всегда затруднительно. На помощь приходит Nano Sensor Shield. Nano Sensor Shield имеет функционал, аналогичный классическим Sensor Shield для контроллеров Arduino Uno и Arduino Mega и позволяет подключать большое количество датчиков и модулей с помощью трехпроводных шлейфов (S, +, -). С помощью платы можно одновременно подключить до 8 аналоговых и до 12 цифровых устройств. Также дополнительные выводы на плате позволяют подключать устройства, работающие по интерфейсам I2C, UART и SPI. Nano Sensor Shield полностью совместим с контроллерами Arduino Nano и Smart Nano. Также шилд можно ограниченно использовать с контроллерами Arduino Pro Mini (только 5 В, 16 мГц), при этом данной плате будут соответствовать только цифровые выводы D2-D9 включительно и вывод шины UART. Также Arduino Pro Mini использует выводы D10-D13 и A0-A3. Для крепления Nano Sensor Shield по углам платы предусмотрены 4 отверстия под винт М3. ==== Технические характеристики ==== * Количество цифровых выводов: 12 (D2 - D13) * Количество аналоговых выводов: 8 (A0 - A7) * Интерфейсные выводы "папа": SPI, I2C * Интерфейсные выводы "мама": UART * Выводы входного питания: 1 (клеммная колодка, питание от 7 до 12 В) ==== Физические размеры ==== * Габаритные размеры Д х Ш х В: 60 х 46 х 12 (мм) ===== Примеры подключения и использования ===== ==== Шумомер ==== === Шаг 0. Описание задачи === Сделаем шумомер на основе датчика звука и модуля адресных светодиодов. Чем громче звук, тем больше загорается светодиодов (от 1 до 4), причем цвета светодиодов будут меняться: первый - зелёный, второй - жёлто-зелёный, третий - жёлтый, четвертый - красный. Для этого нам потребуется следующее: ^ Что нужно ^ Кол-во, шт ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-nano-ft232rl|Контроллер Smart Nano]] | 1 | | [[httpss://smartelements.ru/collection/shildy/product/nano-sensor-shield|Nano Sensor Shield]] | 1 | | [[httpss://smartelements.ru/collection/moduli/product/modul-adresnyh-svetodiodov-h4|Модуль адресных светодиодов (х4)]]| 1 | | [[httpss://smartelements.ru/collection/datchiki-i-sensory/product/modul-datchika-zvuka|Датчик звука]]| 1 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h3-20-sm|Шлейф x3]]| 2 | === Шаг 1. Соберите комплектующие по схеме === Схема сборки: {{ :main:shields:nano_sensor_shield.png?nolink |}} === Шаг 2. Загрузите на контроллер код === Не забывайте выбирать в Arduino IDE контроллер Nano. <file Arduino> #include <Adafruit_NeoPixel.h> //библиотека для работы со светодиодами #define SOUND_PIN A3 //вывод, к которому подключен датчик звука #define PIN 6 //вывод, к которому подключен модуль адресных светодиодов //объявление переменной pixels типа Adafruit_NeoPixel для //работы с модулем и светодиодами Adafruit_NeoPixel pixels(4, PIN); //цвета светодиодов int pix_colors[4][3] = { {0, 255, 0}, //зелёный {50, 200, 0}, //жёлто-зелёный {150, 150, 0}, //жёлтый {255, 0, 0} //красный }; int data = 0; //переменная для хранения значения громкости void setup() { pixels.begin(); //инициализация светодиодов } void loop() { int leds = 0; //переменная для хранения количества светодиодов data = analogRead(SOUND_PIN); //получение значения громкости if (data > 0) { //определение количества зажигаемых светодиодов if (data > 100) { leds = 4; } else if (data > 50) { leds = 3; } else if (data > 25) { leds = 2; } else { leds = 1; } } //нумерация светодиодов начинается с 0 for(int i=0; i<leds; i++) { pixels.setPixelColor(i, pixels.Color(pix_colors[i][0], pix_colors[i][1], pix_colors[i][2])); //установка цвета свечения для очередного светодиода pixels.show(); //показать цвет светодиода } pixels.clear(); //выключение всех цветов светодиодов pixels.show(); //отобразить "пустое" состояние светодиодов - они выключены */ } </file> === Шаг 3. Результат === Производите звук (хлопайте в ладоши, шумите) и наблюдайте как изменяется шкала интенсивности звука в виде зажигания адресных светодиодов. ==== Подсчёт количества хлопков ==== === Шаг 0. Описание задачи === Реализуем устройство, которое подсчитывает количество хлопков в ладоши. После подсчёта количество хлопков выводится на дисплей. Каждый последующий хлопок нужно сделать не позже чем через секунду от предыдущего (это время можно изменить если нужно). Для этого нам потребуется следующее: ^ Что нужно ^ Кол-во, шт ^ | [[httpss://smartelements.ru/collection/kontrollery/product/kontroller-smart-nano-ft232rl|Контроллер Smart Nano]] | 1 | | [[httpss://smartelements.ru/collection/shildy/product/nano-sensor-shield|Nano Sensor Shield]] | 1 | | [[httpss://smartelements.ru/collection/displei-i-indikatory/product/modul-4-razryadnogo-indikatora-krasnyy|Модуль 4-разрядного индикатора]]| 1 | | [[httpss://smartelements.ru/collection/datchiki-i-sensory/product/modul-datchika-zvuka|Датчик звука]]| 1 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h3-20-sm|Шлейф x3]]| 2 | | [[httpss://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-mama-mama|Провод мама-мама]]| 1 | === Шаг 1. Соберите комплектующие по схеме === Схема сборки: {{ :main:shields:nano_sensor_shield_4d.png?nolink |}} === Шаг 2. Загрузите на контроллер код === Не забывайте выбирать в Arduino IDE контроллер Nano. <file Arduino> #include <SevenSegmentTM1637.h> //Подключение библиотеки для работы с дисплеем. const int PIN_SOUND = A3; //Вывод для подключения датчика температуры int clap_q = 0; //Переменная для хранения количества хлопков unsigned long time_long = 1000; //Время, в течении которого будет слушаться звук SevenSegmentTM1637 display(12, 13); //Создание объекта дисплея. (CLK, DIO) //Вычисление количества хлопков void claps_quantity() { if (analogRead(PIN_SOUND) > 100) //если значение шума больше 100 { delay(150); //подождать пока пройдёт звуковая волна clap_q += 1; //увеличить количество хлопков unsigned long new_time = millis() + time_long; //увеличить время ожидания очередного хлопка while (millis() < new_time) //слушать 1 секунду { claps_quantity(); //учесть хлопки, если они есть } } } void setup() { display.begin(); //Инициализация дисплея. display.setBacklight(100); //Установка яркости 100%. display.print("INIT"); //Вывод надписи INIT на дисплей. delay(1000); //Задержка величиной 1 с. display.clear(); //Очистка дисплея. } void loop() { clap_q = 0; //сбросить количество хлопков claps_quantity(); //посчитать количество хлопков if (clap_q > 0) //если хлопков больше 0 { display.clear(); //очистить дисплей display.print(clap_q); //вывести количество хлопков на дисплей display.blink(); //помигать, обозначив что это новое значение } } </file> === Шаг 3. Результат === Производите хлопки (хлопайте в ладоши) и наблюдайте как подсчитанное количество хлопков выводится на дисплей.