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), причем цвета светодиодов будут меняться: первый - зелёный, второй - жёлто-зелёный, третий - жёлтый, четвертый - красный.

Для этого нам потребуется следующее:

Шаг 1. Соберите комплектующие по схеме

Схема сборки:

Шаг 2. Загрузите на контроллер код

Не забывайте выбирать в Arduino IDE контроллер Nano.

#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();  //отобразить "пустое" состояние светодиодов - они выключены */
}

Шаг 3. Результат

Производите звук (хлопайте в ладоши, шумите) и наблюдайте как изменяется шкала интенсивности звука в виде зажигания адресных светодиодов.

Подсчёт количества хлопков

Шаг 0. Описание задачи

Реализуем устройство, которое подсчитывает количество хлопков в ладоши. После подсчёта количество хлопков выводится на дисплей. Каждый последующий хлопок нужно сделать не позже чем через секунду от предыдущего (это время можно изменить если нужно).

Для этого нам потребуется следующее:

Шаг 1. Соберите комплектующие по схеме

Схема сборки:

Шаг 2. Загрузите на контроллер код

Не забывайте выбирать в Arduino IDE контроллер Nano.

#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(); //помигать, обозначив что это новое значение
  }
}

Шаг 3. Результат

Производите хлопки (хлопайте в ладоши) и наблюдайте как подсчитанное количество хлопков выводится на дисплей.