====== Mega Sensor Tail Shield ======
===== Описание =====
Контроллеры Arduino Mega имеют большое преимущество перед меньшими аналогами контроллеров в части количества выводов. При использовании большого количества датчиков и модулей встает вопрос о том как просто и быстро подключить их, не прибегая к сооружению общих шин питания и земли. На помощь приходит Mega Sensor Tail Shield. Пины контроллера выведены на шилде в виде трехконтактных выводов (S, V, G), что позволяет быстро подключать различные устройства посредством трехпроводных шлейфов.

Основным преимуществом Mega Sensor Tail Shield перед классическими Mega Sensor Shield является возможность параллельно использовать два шилда с различным функционалом. Установите на контроллер Motor Shield и Mega Sensor Tail Shield и управляйте роботом с большим количеством модулей и датчиков. Или используйте Relay Shield совместно с Mega Sensor Tail Shield и управляйте умным домом с одного контроллера, подключив одновременно силовую нагрузку и датчики контроля. Комбинируйте различные шилды и получите необходимый для ваших проектов функционал.

Mega Sensor Tail Shield позволяет подключить до 9 аналоговых и до 48 цифровых трехконтакных устройств.

==== Технические характеристики ====
  * Количество цифровых выводов: 48 (с 14 по 53)
  * Количество аналоговых выводов: 9 (с A7 по A15)

==== Физические размеры ====
  * Размеры Д х Ш х В: 54 х 41 х 18 мм

===== Пример подключения и использования =====
==== Шаг 0. Описание задачи ====

Сделаем шумомер на основе датчика звука и модуля адресных светодиодов. Чем громче звук, тем больше загорается светодиодов (от 1 до 4), причем цвета светодиодов будут меняться: первый - зелёный, второй - жёлто-зелёный, третий - жёлтый, четвертый - красный.

Для этого нам потребуется следующее:
^ Что нужно                                                                                     ^ Кол-во, шт  ^
| [[https://smartelements.ru/collection/kontrollery/product/kontroller-smart-mega|Контроллер Smart Mega]]              | 1           |
| [[https://smartelements.ru/collection/shildy/product/mega-sensor-tail-shield|Mega Sensor Tail Shield]]  | 1           |
| [[https://smartelements.ru/collection/moduli/product/modul-adresnyh-svetodiodov-h4|Модуль адресных светодиодов (х4)]]| 1           |
| [[https://smartelements.ru/collection/datchiki-i-sensory/product/modul-datchika-zvuka|Датчик звука]]| 1           |
| [[https://smartelements.ru/collection/provoda-i-kabeli/product/shleyf-mama-mama-h3-20-sm|Шлейф x3]]| 2           |

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

==== Шаг 2. Загрузите на контроллер код ====
Не забывайте выбирать в Arduino IDE контроллер Mega.

<file Arduino>
#include <Adafruit_NeoPixel.h> //библиотека для работы со светодиодами

#define SOUND_PIN A10 //вывод, к которому подключен датчик звука 
#define PIN 30 //вывод, к которому подключен модуль адресных светодиодов
 
//объявление переменной 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>

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