ARDUINO - элементы комплекта KIT

  1. Светодиоды
  2. РЕЗИСТОРЫ
  3. Фоторезисторы
  4. LM35DZ – датчик температуры
  5. Инфракрасный датчик VS1838B
  6. Транзисторы S8550,  S8050
  7. Датчик пламени vt-17
  8. Регистр сдвига - 74HC595N
  9. Потенциометр
  10. ДЖОЙСТИК ИГРЫ
  11. Трехцветный светодиод (rgb led) 
  12. КНОПКА
  13. Пьезоэлемент
  14. Активный и пассивный Buzzer
  15. Матричная клавиатура для Arduino
  16. Датчик температуры и влажности DHT11
  17. Лазер Laser sensor module KY-008
  18. Датчик уровня воды
  19. Дисплей LCD 1602
  20. NE555 ТАЙМЕР
  21. Цифровые 7-сегментные индикаторы
  22. Матричный светодиодный индикатор 8х8 1588BS
  23. Инфракрасный пульт дистанционного управления HX1838

Светодиоды LED (Красный-5, Зеленый-5, Желтый-5)

Серия светодиодов L314 представляет линейку круглых светодиодов диаметром 3 мм со сферической линзой. На нижней части корпуса имеется выступ диаметром 3.9 мм, предназначенный для удобства монтажа светодиода. Для исключения ошибки подключения светодиода анод имеет более длинный вывод. Светодиоды серии L314 выпускаются двух типов - с углом рассеивания 60 градусов и углом рассеивания 30 градусов. Светоотдача этих светодиодов колеблется в очень широких пределах и отображена в таблице. Диапазон рабочих температур находится в пределах от -40 до +80 градусов. 

Характеристики: Длина волны,нм = 660;   Минимальная сила света Iv мин.,мКд - 500;     Максимальная сила света Iv макс.,мКд - 900;   при токе Iпр.,мА - 25;   Видимый телесный угол,град - 30;    Размер линзы,мм - 3;   Максимальное обратное напряжение ,В - 5;   Максимальный импульсный прямой ток,мА - 150.

Светодиоды с колбой диаметром 5мм выпускаются следующих видов: АЛ 307 *-М, КИПД 21 (яркие, цилиндрические), КИПД 18 (двухцветные), КИПД 45 (двухцветные, биполярные), КИПД 65. Светодиоды круглые 5 мм – полупроводниковые источники света с рабочим напряжением от 1,9В до 3,4В и силой тока в 20мА. Сила света при этом в зависимости от номинала варьируется от 30мкд до 30 000мкд. Широко распространены и другие названия светодиодов: индикаторные светодиоды, светоизлучающие индикаторы, DIP светодиоды (Dual In-line Package), DIL светодиоды (Dual In-Line – "в два ряда"), LED светодиоды (Light Emitting Diode). Светодиоды представлены несколькими вариантами цветового свечения: красный, зелёный, синий, оранжевый, жёлтый, холодный или тёплый белый. Некоторые серии светодиодов предоставляют возможность индикации несколькими цветами: двумя, тремя или четырьмя, например, красный, зелёный, синий или жёлтый. Изготавливаются в пластмассовом корпусе с оптически прозрачным или диффузно-рассеивающим окрашенным компаундом. Вывода однонаправленные радиальные, гибкие, проволочного типа. Анодный вывод немного длиннее.

РЕЗИСТОРЫ (220, 10 К, 1 К) - 30 шт.

РезисторРезисторы относятся к пассивным элементам, как и конденсаторыкатушки индуктивностидиоды и т.п. Одним словом все те радиоэлементы, которые имеют Кус в пределах 0…1!. Резисторы являются самыми простыми пассивными элементами. Основное их назначение ограничить ток в электрической цепи. При прохождении тока через резистор на нем выделяется тепловая мощность P = I2 * R. Здесь P, I, R соответственно мощность, ток и сопротивление. В настоящее время маркировка резисторов производится с помощью цветных полос. Самое интересное, что цветовая маркировка упоминалась в первом послевоенном журнале «Радио», вышедшем в январе 1946 года. Там же было сказано, что вот, это новая американская маркировка. Таблица, объясняющая принцип «полосатой» маркировки показана в таблице. 

LM35DZ – датчик температуры

е датчикСхема ТЭто прецизионный датчик температуры: Точность 0,5 °C (+ 25 °C); Работает от 4 до 30 В; Менее 60-мка обратный ток; Низкое самонагревание, 0,08 °C в воздухе;  Низкое сопротивление импеданса, 0,1 и для Омега; для 1 мА нагрузки. Это интегральный датчик температуры с широким диапазоном температур, высокой точностью измерения, калиброванным выходом  по напряжению. Именно эти качества определили популярность датчика. Низкое выходное сопротивление, линейное значение выходного напряжения и прецизионная калибровка делают датчик LM35 крайне удобным для подключения к измерительным цепям. Датчик может использоваться как с однополярным напряжением питания, так и с двух полярным. В связи с тем, что датчик потребляет ток только 60 мкА, у него очень низкий уровень собственного разогрева, менее 0.1 °C при неподвижном воздухе. Датчик LM35 допускает работу в диапазоне температур -55 … +150 °C, LM35C работает в диапазоне -40 … +110 °C (от -10 °C с улучшенной точностью). LM35 выпускается в корпусе TO-46, датчики LM35C, LM35CA и LM35D – в корпусе TO-92. Для LM35D возможны также исполнения в корпусах SO-8 и TO-220. 

Схема включения LM35 в качестве датчика температуры с полным диапазоном измерения -55 … +150 °C. Резистор R1 = -Vs / 50 мкА. Назначение выводов слева направо: +Vs; Vout; GND. 

Фоторезисторы - VT83N1 (3)

ФоторезисторCxema Photo.pngФоторезистор это датчик света — прибор, который позволяет умному устройству оценивать уровень освещенности. VT83N1 фоторезистор с диапазоном сопротивления 12-100кОм. Это значит, что в темноте сопротивления фоторезистора равно 12кОм, а при определенной тестовой засветке — 100кОм. Конкретно в случае этого светодиода, тестовая засветка имела параметры: освещенность -10 Люкс, и цветовая теплота — 2856К.

 В Ардуино Уно есть 6 аналоговых входов на ногах A0-A5, подключаем фоторезистор по следующей схеме (см. рис.). Эта схема с обычным делителем напряжения, верхнее плечо которого будет меняться в зависимости от уровня света, падающего на фоторезистор. Снимаемое с нижнего плеча напряжение, мы подаем на аналоговый вход, который преобразует его в число от 0 до 1024. 

Значение показаний меняется от 1024 при прямом попадании света, до некоторого значения близкого к нулю  в случае затенения (появление преграды на пути света). Зная такое поведение, можно численно определить порог срабатывания. Надо добавить в программу некое действие, которое будет совершаться если уровень освещенности станет ниже заданного порога. 

Инфракрасный датчик VS1838B

ИК датчикИК-приемник на Ардуино способен принимать и обрабатывать инфракрасный сигнал, в виде импульсов заданной длительности и частоты. Обычно ИК-приемник имеет три ножки и состоит из следующих элементов: PIN-фотодиод, усилитель, полосовой фильтр, амплитудный детектор, интегрирующий фильтр и выходной транзистор. Под действием инфракрасного излучения в фотодиоде, у которого между pи n областями создана дополнительная область из полупроводника (i-область), начинает течь ток. Сигнал поступает на усилитель и далее на полосовой фильтр, защищающий приемник от помех. Помехи могут создавать любые бытовые приборы. Полосовой фильтр настроен на фиксированную частоту: 30; 33; 36; 38; 40 и 56 килогерц. Чтобы сигнал от пульта ДУ принимался ИК приемником Ардуино, пульт должен быть с той же частотой, на которую настроен фильтр в IR приемнике. После фильтра сигнал поступает на амплитудный детектор, интегрирующий фильтр и выходной транзистор. Корпуса инфракрасных приемников содержат оптический фильтр для защиты прибора от внешних электромагнитных полей, изготавливаются они специальной формы для фокусировки принимаемого излучения на фотодиоде. Для подключения IR приемника к Arduino UNO используют три ножки, которые соединяют с портами — GND, 5V и A0. Можно использовать обычный пульт от телевизора, или миниатюрный специальный инфракрасный пульт. Именно такие пульты часто используются для управления роботами. Датчик VS1838B имеет три вывода (три ноги). Если посмотреть на датчик со стороны приёмника ИК сигнала, то слева будет — выход на контроллер, по центру — отрицательный контакт питания (земля), и справа — положительный контакт питания (2.7 — 5.5В). Принципиальная схема подключения представлена на рисунке. Для начала работы с ИК-приемник на Ардуино подключить IR приемник по схеме и светодиоды к 12 и 13 пину и загрузить скетч. Скачать готовый скетч zanyatie12_ir-test.ino Ногу, которая отвечает за передачу данных, надо подключать к пину 11 arduino.Принципиальная схема подключения представлена на рисунке. Для начала работы с ИК-приемник на Ардуино подключить IR приемник по схеме и светодиоды к 12 и 13 пину и загрузить скетч. Скачать готовый скетч zanyatie12_ir-test.ino Ногу, которая отвечает за передачу данных, надо подключать к пину 11 arduino. Инфракрасный датчик VS1838B    предназначен для приема сигнала от пульта дистанционного управления бытовой техники который передает команды посредством инфракрасного излучения. Воспринимающий элемент модуля – VS1838B. Сигнал модуля ориентирован на обработку микроконтроллером. 

ИК-прием.pngХарактеристики: Напряжение питания 2,7 – 5,5 В; Частота модуляции 38 кГц; Диапазон температуры эксплуатации -20 ...80 °C; GND – общий провод; VCC – питание; OUT – выход цифрового сигнала.
Для применения имеющегося ИК пульта дистанционного управления необходимо занести в память микроконтроллера нового прибора данные, параметры команд передаваемых по ИК каналу. Программа МК устанавливает соответствие между принятыми командами и выполняемыми микроконтроллером действиями. Пульты различных производителей используют различные протоколы шифрования команд передаваемых при нажатии кнопок. Единого протокола, мирового стандарта не существует, но между протоколами много общего, что позволяет применить специальное программное обеспечение, позволяющее раскрыть кодировки применяемые популярными брендами и раскрыть секреты пультов малоизвестных производителей и даже немаркированных пультов.

http://www.progdron.com/ru/arduino-shield/arduino-shield/405-ik-datchik-vs1838b   Подключив ИК-датчик надо написать программу. Для этого воспользуемся стандартной библиотекой IRremote, которая предназначена как раз для упрощения работы с приёмом и передачей ИК сигналов. С помощью этой библиотеки будем принимать команды с пульта, и для начала, просто выводить их в окно монитора последовательного порта. Эта программа нам пригодится для того, чтобы понять какой код дает каждая кнопка. (S1) Загружаем программу на Arduino Uno. После этого, будем получать команды с пульта. Открываем монитор последовательного порта (Ctrl+Shift+M), берём в руки пульт, и направляем его на датчик. Нажимая разные кнопочки, наблюдаем в окне монитора соответствующие этим кнопкам коды. Загружаем на Arduino, и тестируем. Жмем vol+ — светодиод зажигается. Жмем vol- — гаснет. Теперь, зная как это все работает, можно вместо светодиода управлять двигателями робота, или другими самодельными микроэлектронными устройствами!

Каждая кнопка ИК-пульта имеет уникальный код, который мы будем получать с помощью датчика VS1838B. В первую очередь запишем скетч, который выводит в консоль коды кнопок, после чего уже дополнить программу условиями на конкретные кнопки. Ниже приведет скетч для работы с ИК-приемником VS1838B и arduino

#include <IRremote.h> // подключаем библиотеку$ int ledPin = 13; // светодиод$ int reciverPin = 11; // пин, ИК-приемника; IRrecv irrecv(reciverPin);   decode_results results;

  void setup() {   Serial.begin(9600);   irrecv.enableIRIn(); pinMode(ledPin, OUTPUT); } // запуск приемника

void loop() {  if (irrecv.decode(&results)) {  Serial.println(results.value, HEX);   //считываем данные с приемника b выводим в консольку

if(results.value==0x926DC837) digitalWrite(13,HIGH); if(results.value==0x926D48B7) digitalWrite(13,LOW); // вкл/выкл светодиод; irrecv.resume(); } } // готовы принимать следующий сигнал

Транзисторы S8550,  S8050

8550-pnp.pngБиполярные транзисторы S8550 pnp типа и  S8050  являются комплементарными, маломощным, высокочастотными и s85050-npn.pngпредназначены для схем общнго назначения.

Характеристики: Структура - p-n-p для S8550 и n-p-n для S8050; Напряжение коллектор-эмиттер, не более: -25 В; Напряжение коллектор-база, не более: -40 В; Напряжение эмиттер-база, не более: -5 V; Ток коллектора, не более: -0.5 А; Рассеиваемая мощность коллектора, не более: 0.625 Вт; Коэффициент усиления транзистора по току (hfe): от 85 до 300; Граничная частота коэффициента передачи тока: 150 МГц; Корпус: TO-92.

Датчик пламени vt-17

Flame.pngТепловое излучение обладает дискретным спектром газового излучения и непрерывным спектром твердых излучений, YS-17  с использованием инфракрасного датчика очень чувствительное, использует специальную инфракрасную приемную трубку для обнаружения теплового излучения пламени, а также изменения яркости пламени в высокий и низкий уровень. Сигнал через компаратор сравнивается с пороговым уровнем напряжения. YS-17 датчик пламени применяется  для всех видов огня, пожаротушения. может обнаружить пламя или длину волны от 760 нм. Чем больше пламя, тем больше угол обнаружения расстояния около 60 градусов, особенно чувствительный к спектру пламени, Чувствительность модуля можно регулировать через потенциометр.

Используется в роботах-пожарных. Датчик пламени реагирует на инфракрасное излучение (открытый огонь) и наиболее чувствителен к длинам волн от 760 нм до 1100 нм. Этот детектор огня имеет два выхода — цифровой и аналоговый и легко подключается к платам «Arduino», или другим микроконтроллерам. Инфракрасный датчик огня реагирует не только на пламя, но и на солнце, и даже на комнатные лампы. Чтобы избежать паразитной засветки, фотодиод необходимо закрывать с боковых сторон непрозрачным материалом. Для лучшей фильтрации посторонних источников света, при детектировании пламени таким датчиком, применяют алгоритм детектирования низкой частоты. Это возможно благодаря тому, что пламя свечи меняет свою интенсивность с частотой 15-20 Гц.

У цифрового датчика пламени, который мы подключаем, есть всего три вывода: Vcc — питание +5В; Gnd — земля; Out — сигнал.

Vcc и Gnd датчика подключаем к соответствующим выводам Ардуино Уно, а Out бросаем на любую свободную ногу. В нашем случае, соединяем Out c цифровым входом №2.

 

Регистр сдвига - 74HC595N

 

74hc595.pngМикросхема 74HC595 содержит 8 битный регистр хранения и 8 битный сдвиговый регистр. Данные последовательно передаются в сдвиговый регистр, затем фиксируются в регистре хранения. К регистру хранения подключены 8 выходных линий. На картинке ниже показано расположение выводов микросхемы 74HC595. Вывод 14 (DS) это вывод данных. В некоторых описаниях он обозначается как «SER».

Когда уровень на выводе 11 (SH_CP, иногда обозначается как SRCLK) переходит из низкого в высокий, значение на выводе DS сохраняется в сдвиговом регистре, при этом данные сдвигаются на один разряд, чтобы предоставить место для нового бита.

Пока на выводе 12 (ST_CP, иногда обозначается как RCLK) низкий уровень, данные записываются в регистр сдвига. Когда уровень переходит в высокий, данные из сдвигового регистра фиксируются в регистре хранения, из которого поступают на выводы Q0…Q7. 

Выводы  сдвигового регистра 74hc595. OE - Вход переводящий выходы из высокоимпедансного состояние в рабочее состояние. При логической единице на этом входе выходы 74HC595 будут отключены от остальной части схемы. Это нужно например для того чтобы другая микросхема могла управлять этими сигналами.
Если нужно включить в рабочее состояние микросхему, то надо  подать логический ноль на этот вход. А если в принципе не нужно переводить выходы в высокоимпедансное состояние – можно заземлить этот вывод.

MR -сброс регистра. Переводить все выходы в состояние логического нуля. Чтобы сбросить регистр нужно подать логический ноль на этот вход и подать положительный импульс на вход STCP. Подключаем этот выход через резистор к питанию микросхемы и при необходимости замыкаем на землю.

DS - вход данных. Последовательно подаваемые сюда данные будут появляются на 8-ми выходах регистра в параллельной форме.

SHCP - вход тактовых импульсов. Когда на тактовом входе SHCP появляется логическая единица, бит находящийся на входе данных DS считывается и записывается в самый младший разряд сдвигового регистра. При поступлении на тактовый вход следующего импульса высокого уровня, в сдвиговый регистр записывается следующий бит со входа данных. Тот бит который был записан ранее сдвигается на один разряд (из Q0 в Q1) , а его место занимает вновь пришедший бит. И так далее по цепочке.

STCP - вход для "защелкивания" данных. Что бы данные появились на выходах Q0…Q7 нужно подать логическую единицу на вход STCP. Данные поступают в параллельный регистр который сохряняет их до следующего импульса STCP.

Выходы 74HC595. Q0…Q7 – выходы которыми будем управлять. Могут находится в трёх состояниях: логическая единица, логический ноль и высокоимпедансное состояние. Q7′ – выход предназначенный для последовательного соединения регистров.

Общий вывод и вывод питания объяснений не требуют.

Для последовательного подключения большого количества сдвиговых регистров используется 9 (Q7S) выход регистра — по нему данные продавливаются по мере поступления. Выходы 11 (SH_CP, задающий тактовые импульсы) и 10 (ST_CP, «защелка») подключаются параллельно и управляются синхронно. Для организации ШИМ можно использовать выход регистра OE (Output Enable input) — он отвечает за переключение из высокомного состояния в ноль. Выход OE — можно назвать логическим нулем для всех выходов. Таким образом, если мы подключим этот пин к ШИМ-выходу Arduino, то сможем таким образом смещать логический ноль, тем самым имитировать ШИМ. 

 

Потенциометр

Потенциометр — это переменный резистор с регулируемым сопротивлением. Потенциометры используются в робототехнике как регуляторы различных параметров — громкости звука, мощности, напряжения и т.п. Например, от поворота ручки потенциометра будет зависеть яркость светодиода (см. схему). В данном случае, допуск: сопротивления ±10%; Сопротивление: 10 К Ом; Размер: L * Dia/33 * 15мм/1,29*0,59''. 

Для работы этой модели подойдет следующая программа (программу вы можете просто скопировать в Arduino IDE):

#define led 9 // даём имена пинов со светодиодом  и потенциометром
#define pot A0
void setup()
{pinMode(led, OUTPUT);  // пин со светодиодом — выход
pinMode(pot, INPUT); } // пин с потенциометром - вход
void loop()
{ int x; // объявляем переменную x
// считываем напряжение с потенциометра: будет получено число от 0 до 1023
// делим его на 4, получится число в диапозоне 0-255 (дробная часть будет отброшена)
x = analogRead(pot) / 4;
analogWrite(led, x);} // выдаём результат на светодиод

ДЖОЙСТИК ИГРЫ

Джойстик.pngДжойстик модуль Arduino. На модуле 5 пинов: Vcc, Ground, X, Y, Key.  Джойстик аналоговый и обеспечивает более высокую точность, чем простые 'directional' джойстики, в которых используются кнопки и механические переключатели. Кроме того, на джойстик можно нажать После нажатия отработает кнопка 'press to select'. Для считывания данных с пинов X/Y надо использовать аналоговые выходы на Arduino. Пин Key замыкается землей при нажатии. В противоположном случае ни в какой цепи он не участвует. Для стабильного считывания данных с пинов Key/Select, они должны подключаться к источнику питания (Vcc) через подтягивающий резистор. Номинала встроенных на Arduino резисторов для этого будет вполне достаточно.

Положение джойстика рассчитывается в зависимости от значений двух потенциометров, которые в нем установлены. Джойстик перемещается в двух направлениях, которые обычно обозначают как X и Y. Для считывания данных с потенциометров используем функцию analogRead(), которая возвращает значение в диапазоне от 0 до 1023. Для этого надо в функцию передать номера пинов, к которым подключен джойстик. В данном примере мы подключаемся к аналоговому пину 0 для X и к аналоговому пину 1 для Y.

Serial.println(analogRead(0)); // отображает текущее положение X координаты

Serial.println(analogRead(1)); // отображает текущее положение Y координаты

Очень удобный подход - использование констант для значений, которые не будут меняться на протяжении работы программы. Так что в коде ниже объявим константы для аналоговых пинов, которые используем и отобразим текущее положение по Х и Y в серийном мониторе Arduino IDE: На основании значений положений X и Y мы можем определить, находится ли джойстик по центу или он смещен в одном из восьми направлений (вверх, вправо-вверх, вправо, вправо-вниз, вниз, влево-вниз, влево, влево-вверх). Так как значения в каждом из направлений будет в диапазоне от 0 до 1023, можно предположить, что центр будет находиться в диапазоне 511-512. Но это не совсем так. Настолько точно текущее значение мы не получим. И если мы определим неверное значение, можем получить информацию о движении джойстика, хотя он стоял по центру и не двигался. Для этого мы введем диапазон значений и будем считать, что любое значение в этом диапазоне будет считаться центром:

Перед тем как узнать, нажата ли кнопка на джойстик шилде, надо настроить Arduino на узнавание кнопок. Как это не удивительно, это реализуется в теле функции setup()! Сначала определяем константы для пинов Arduino, которые связаны с кнопками: 

Для определения напряжения при нажатой кнопке, надо использовать резистор. Для уменьшения количества деталей, джойстик шилд спроектирован таким образом, что резисторы не нужны. Вы можете спросить себя: «Если для кнопок нужны резисторы, почему шилд работает без них?». На Arduino есть встроенные резисторы. Можно просто их активировать и использовать с шилдом! Для задействования этих встроенных подтягивающих резисторов надо установить пин в режим INPUT, а после уже активировать

Трехцветный светодиод (rgb led) 

Это три светодиода разных цветов в одном корпусе. Они бывают как и с небольшой печатной платой, на которой расположены резисторы. Подключаем к RGB.pngArduino трехцветный свеPrintтодиод. Это одна из базовых схем, используемых в создании роботов на Arduino. При работе с трехцветным светодиодом без встроенных резисторов необходимо иметь ввиду, что назначение ножки светодиода можно определить по ее длине. Самая длинная — земля (GND), короче — зеленый (G), еще короче —  голубой (B), а самая короткая — красный (R). Здесь представлена схема подключения модели Arduino с трехцветным светодиодом со встроенными резисторами. Для управления этой моделью подойдет следующая программа (программу можно скопировать в Arduino IDE):

int r = 13; int g = 12; int b = 11; //объявляем переменные с номерами пинов
void setup() } //процедура setup
pinMode(r, OUTPUT); pinMode(g, OUTPUT); pinMode(b, OUTPUT); } //объявляем используемые порты
void loop() { //процедура loop
digitalWrite(r, HIGH); delay(500); //включаем красный ждем 500 Мс
digitalWrite(r, LOW); //выключаем красный
digitalWrite(g, HIGH); delay(500); //включаем зеленый ждем 500 Мс
digitalWrite(g, LOW); //выключаем зеленый
digitalWrite(b, HIGH); delay(500); //включаем синий, ждем 500 Мс
digitalWrite(b, LOW); } //выключаем синий

КНОПКА

 подключить на Arduino кнопку и светодиодПодключаем к ардуино кнопку и светодиод (при нажатой кнопке светодиод будет гореть, при отжатой — не гореть). Это одна из базовых схем, которая  может использоваться для управления роботом на Arduino. По нажатию кнопки могут происходить самые разные действия. Используем схему подключения модели Arduino сработы этой модели скнопкой и светодиодом: Также потребуется программа Arduino IDE, которую можно скачать с сайта Arduino. Для этого подойдет следующая программа (программу вы можете просто скопировать в Arduino IDE):
int button = 2; int led = 8; 
void setup() { pinMode(led, OUTPUT); pinMode(button, INPUT); }
void loop(){ if (digitalRead(button) == HIGH) { digitalWrite(led, HIGH); }

else { digitalWrite(led, LOW); }}

Пьезоэлемент 

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

Схема подключения моде6 схемали Arduino с пьезоэлементом: Для работы этой модели подойдет следующая программа (программу можно скопировать в Arduino IDE):

int p = 3; //объявляем переменную с номером пина пьезоэлемента
void setup() {

pinMode(p, OUTPUT); } //объявляем пин как выход
void loop() { tone (p, 500); //включаем на 500 Гц
delay(100); //ждем 100 Мс
tone(p, 1000); delay(100); } //включаем на 1000 Гц ждем 100 Мс

Модель с пьезоэлементом (динамиком), которые используются в робототехники для управления звуками, издаваемыми роботом

Активный и пассивный Buzzer (Зуммер)

BUZZER (пищВнешний вид схемы соединений к уроку №11. Arduino и Пищалкаалка или зуммер) RCK205540 активный управляемый предназначен для генерации звукового сигнала в роботах на платформе ARDUINO (Ардуино). У активного заклеена наклеечкой сама пищалка. Модуль звука, звукоизлучатель для Arduino используется в несложных проектах на микроконтроллерах для обеспечения звуковой сигнализации какой либо функции, процесса и т.п. “Активный” означает, что в буззере имеется свой встроенный звуковой генератор и он способен работать при подаче на него питающего напряжения. “Управляемый” означает, что питающее напряжение поступает на схему модуля после подачи сигнала “логическая единица” на управляющий вход In модуля c выхода порта Arduino. В основе модуля лежит пьезоизлучатель - пьезоэлектрический преобразователь электрических колебаний в звуковые. Зуммер производит монотонный звук, за что и прозван «пищалкой». Звуковой активный зуммер RCK205540 используется многими датчиками Arduino в качестве звуковой сигнализации. Для этого к нему следует подключить источник питания и соединить выводы Vcc и In.

- Напряжение питания: +3.3 В ~ +5.2 В; - Потребляемый ток: 30 мА; - Формат сигнала цифрового выхода: TTL(0/1); - Рабочая температура: от 0 ° C ~ + 70 ° C; - Размеры: 30 x 14 x 13 мм; - Вес модуля: 3 грамма; - Диаметр монтажного отверстия: 3 мм.
Контакты: Vcc - плюс питания; GND - минус питания; In - управляющий вход.  Подключение к  ARDUINO.

int buzzerPin = 10; void setup() { pinMode(Relay, OUTPUT);  tone (buzzerPin,400,30); } void loop() { }

Пассивный зуммер (buzzer) используется в проектах на микроконтроллерах для обеспечения звуковой сигнализации, какой-либо функции, процесса и т.п. Для использования зуммера необходимо подключить к нему питание и подключить внешний частотный генератор. Звук зуммера зависит от внешнего генератора. Зуммер является пассивным, т.к. для его работы нужен внешний частотный генератор.
Зуммер может управляться Arduino контроллером или другим управляющим микропроцессорным устройством с помощью специальных программ и библиотеки «TONE». Зуммер имеет два контакта, обозначенных на плате «+» и «-». Для правильного подключения зуммера нужно соблюдать полярность.
Питание модуля может осуществляться от Arduino контроллера или от внешнего источника питания. Напряжение питания 3 – 12 В постоянного тока.

Характеристики: тип зуммера: пассивный; издаваемый звук: зависит от внешнего генератора; напряжение питания: 3 – 12 В; размеры (диаметр х высота): 12 х 9,5 мм; вес: 1 г;

Матричная клавиатура для Arduino

Обычная кнопка это простейшее электромеханическое устройство. Чтобы подключить ее к плате, нужно использовать стягивающий резистор, а также задействовать по одному контакту пСхема подключения матричной клавиатуры к Arduinoитания и «земли». Нажатием такой кнопки можно выполнить определенное действие, например можно управлять светодиодом, различными приводами, механизмами и так далее. А  если необходимо подключить несколько кнопок, тогда придется задействовать больше контактов и большее число проводов, да и без макетной платы уже не обойтись, плюс еще резисторы придется использовать в большем количестве. 

Схема подключения матричной клавиатуры к Arduino. Подключать ее к плате следует 8 выводами, каждый из них считывает значения с определенных строк и столбцов. Подключать их следует к выводам на панели Digital. Я подключу, например, к выводам от 2 до 9 включительно. Нулевой и первый трогать не желательно, поскольку они предназначены для UART интерфейса (например, для подключения блютуз-модуля). Рациональнее оставить их свободными. Для более удобной работы с матричной клавиатурой была написана библиотека Кейпад. Готовый скетч позволяет считывать значение с клавиатуры при нажатии определенной клавиши и выводить их в порт. В данном случае это монитор порта на компьютере. 

#include <Keypad.h> // подключаем библиотеку
const byte ROWS = 4; //число строк у клавиатуры
const byte COLS = 4; //число столбцов у клавиатуры
char hexaKeys[ROWS][COLS] = {
{'1','4','7','*'}, // здесь располагаем названия наших клавиш, как на клавиатуре,для удобства пользования
{'2','5','8','0'},
{'3','6','9','#'},
{'A','B','C','D'} };
byte rowPins[ROWS] = {5, 4, 3, 2}; //к каким выводам подключаем управление строками
byte colPins[COLS] = {9, 8, 7, 6}; //к каким выводам подключаем управление столбцами
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); //initialize an instance of class NewKeypad
void setup(){ Serial.begin(9600); }
void loop(){ char customKey = customKeypad.getKey(); if (customKey){ Serial.println(customKey); } }

В первых строчках кода подключается библиотека, затем указывается сколько строк и столбцов у клавиатуры, а потом идут названия клавиш. Если это сделать неправильно, то,  при нажатии цифры, в порт выйдет другая цифра. Это можно проверить опытным путем и расположить символы, как они расположены на клавиатуре. Далее нужно указать к каким выводам на плате подключаем управление строками и столбцами. В функции void setup указывается скорость последовательного соединения с монитором порта 9600 бод. Функция нужна только для подачи питания на модули. В функции Void Loop прописывается условие. Переменная Char используется для хранения только одного символа, например, 1, А или 5, что подходит к ситуации. Если нажатие зафиксировано, то происходит вывод символа в монитор порта с помощью функции Serial Print. В скобках нужно указывать, какую переменную выводим в порт. Если все сделано верно, в мониторе порта получим символ, на который нажимали. В мониторе порта внизу справа указывается скорость передачи данных, как в скетче.

основная цель подключения матричной клавиатуры к Arduino - это выполнение заданного действия при нажатии определенной клавиши.  

Датчик температуры и влажности DHT11 

Датчик температуры и влажности — это составной цифровой датчик, состоящий из емкостного датчика влажности и термистора для измерения температуры. В данной моделе Arduino считывает показания датчика и осуществляется вывод показаний на экран компьютера. Датчики DHT11 и DHT22 не обладают высоким быстродействием и точностью, но зато просты, недороги. Они выполнены из двух частей — емкостного датчика влажности и термистора. Чип, находящийся внутри, выполняет аналого-цифровое преобразование и выдает цифровой сигнал, который можно считать с помощью любого микроконтроллера.

Датчик DHT11 определяет влажность в диапозоне 20-80%; определяет температуру от 0°C до +50°C; имеет частоту опроса 1 раз в секунду.

Датчики DHT имеют 4 вывода: питание. вывод данных, не используется, GND (земля). Между выводами питания и вывода данных нужно разместить резистор номиналом 10 кОм. Датчик DHT часто продается в виде готового модуля. В этом случае он имеет три вывода и подключается без резистора, т.к. резистор уже есть на плате.

Схема подключения датчика с резистором: 

Для программирования схемы Воспользуемся библиотекой DHT.h, созданной специально для датчиков DHT. Ее можно скачать здесь. Для использования нужно поместить скачанную папку в в папку /libraries. Пример программы для работы модели с датчиком DHT22 (можно просто скопировать в Arduino IDE):
#include "DHT.h"
#define DHTPIN 2 // номер пина, к которому подсоединен датчик
// Раскомментируйте в соответствии с используемым датчиком
// Инициируем датчик
DHT dht(DHTPIN, DHT22);
//DHT dht(DHTPIN, DHT11);
void setup() {
Serial.begin(9600);
dht.begin(); }
void loop() { delay(2000); // Задержка 2 секунды между измерениями
float h = dht.readHumidity(); //Считываем влажность
float t = dht.readTemperature(); // Считываем температуру
if (isnan(h) || isnan(t)) {Serial.println("Не удается считать показания"); // Проверка удачно прошло ли считывание.
return; }
Serial.print("Влажность: "+h+" %\t"+"Температура: "+t+" *C "); }

Лазер Laser sensor module KY-008 

Laser.png Содержит лазерный светодиод с цилиндрическим радиатором и пассивные компоненты, грубо обеспечивающие режим работы светодиода. Модуль лазера KY-008 создает небольшое световое пятно на противоположно расположенном объекте благодаря особым свойствам лазерного излучения. Луч виден в задымленном или пыльном помещении. лазера (красный) применяется как излучающий компонент в фотореле, в которых между источником света и фотоприемниках расстояние измеряется в метрах. Такая схема расположения фотоприборов используется при подсчете переместившихся крупных объектов между источником и приемником. В охранных системах это получило название световой барьер. Среди других применений – лазерная указка, установки световых эффектов, где световое пятно перемещается с помощью зеркала.

Характеристики KY-008 Питание, предельные параметры напряжение 5 В ток 30 мА Длина волны излучения 650 нм Оттенок света рубиновый Светоотдача 2-5 мВт Предельное расстояние до фотоприемника 14 м Размеры платы 24х15 мм

Назначение контактов KY-008:   signal – управляющий сигнал имеющий уровни в соответствии с нормами цифровой логики 5 В +5 V – питание KY-008 GND – подключение к общему проводу Особенности применения лазера: KY-008 боится статического электричества. Даже импульсное превышение питающего или управляющего напряжений приводит к порче светодиода. При работе происходит нагрев светодиода, который в незначительной мере снижает имеющийся на светодиоде радиатор. Основной параметр питания лазерного светодиода ток, а не напряжение. При нагреве снижается сопротивление светодиода, происходит увеличение потребляемого тока, в результате нагрев ускоряется и развивающийся процесс приводит к негативным последствиям. В большинстве случаев не требуется работа модуля лазера KY-008 на предельной мощности. Снижать потребляемый ток можно с помощью последовательной установки в цепи питания резистора сопротивлением в соответствии с таблицей.   Потребление максимального тока вызывает быстрый перегрев, работа в половинном режиме потребления замедляет процесс саморазогрева, но все же он будет происходить. Наиболее правильным способом обеспечения надежной работы является использование для питания  модуля лазера KY-008 стабилизатора или ограничителя тока. Для стабилизации определенного значения тока можно использовать известную микросхему LM317 или тривиальную схему на двух парах транзисторов и резисторов. Рекомендуемое напряжение питания 4,5 В. Рабочий ток до 40 мА. Длинна волны данного генератора квантов составляет 650 нм, а частота соответственно 461 ТГц, энергия же фотонов 0,305 Дж. Выходная мощность до 5 мВт. Использовать модуль лазера можно для корректировки стрельбы, в качестве указки, для передачи информации, когда приём осуществляется фоточувствительным элементом, для создания световых шоу, также с помощью лазера можно создать эффективное охранное устройство, когда при прерывании луча активируется громкая сирена. визуально это головка больше 2-3 мВт. не выдаёт.

Датчик уровня воды 

Датчик уровня воды.pngПредназначен для определения уровня воды в различных емкостях, где недоступен визуальный контроль, с целью предупреждения перенаполнения емкости водой через критическую отметку. Данный датчик воды – погруженный. Чем больше погружение датчика в воду, тем меньше сопротивление между двумя соседними проводами. Датчик имеет три контакта для подключения к контроллеру: + – питание датчика; - – земля; S - аналоговое значение. На вывод S подается аналоговое значение, которое можно передавать в контроллер для дальнейшей обработки, анализа и принятия решений. Датчик имеет красный светодиод, сигнализирующих о наличие поступающего на датчик питания. 

Характеристики: напряжение питания: 3.3-5 В; Ток потребления 20 мА; Выход: аналоговый; Зона обнаружения: 16×30 мм; Размеры: 62×20×8 мм; Рабочая температура: 10 – 30 °С. Рассмотрим подключение датчика уровня воды к Arduino. Должна бытьт звуковая сигнализация затопления помещения. При погружении датчика в воду, сигнализация издает три вида звуковых сигналов (небольшое затопление, средний уровень, критический уровень), соответствуюший трем уровням воды. Для воспроизведения звуковых можно к цифровому выводу подключить пьезоизлучатель -  электроакустическое устройства воспроизведения звука. Но при этом звук получается очень тихий. Чтобы получить громкость более приличного уровня, к цифровому выводу Arduino динамик, но не напрямую, а через транзистор. Для проекта понадобятся следующие детали: Плата Arduino Uno; Датчик уровня воды; Динамик 8 Ом; Резистор 500 Ом; Транзистор КТ503е; Соединительные провода.  Схема показана на рисунке. 
WaterLevelSensor-arduino.jpg

Запустим Arduino IDE. Создадим новый скетч и внесем в него следующие строчки

int aPin=A0; // контакт подключения аналогового выхода датчика
int soundPin=11; // контакт  подключения вывода реле
int freq[3]={587,466,293}; // частота звукового сигнала
int avalue=0; // переменная для сохранения значения датчика
int levels[3]={600,500,400}; // значение уровней
int level=0; // текущий уровень
void setup() {
Serial.begin(9600);// инициализация последовательного порта
pinMode(soundPin,OUTPUT); } // настройка выводов индикации светодиодов в режим OUTPUT
void loop() {
avalue=analogRead(aPin);// получение значения с аналогового вывода датчика
Serial.print("avalue=");Serial.println(avalue);// вывод значения в монитор последовательного порта Arduino
if(avalue>levels[0]) tone(soundPin,freq[0],2000); else if(avalue>levels[1]) tone(soundPin,freq[1],2000); else if(avalue>levels[2]) tone(soundPin,freq[2],2000);
else noTone(soundPin); // вывод звука различной частоты для разных уровней погруженияL 

Дисплей LCD 1602

LCD 1602 является широко распространенным и популярным дисплеем среди радиолюбителей, кроме этого, аналогичные дисплеи встраиваются в различные устройства сhttp://robocraft.ru/uploads/images/c/4/d/b/152/d4e3db5ac6.jpgерийного производства. Дисплей построен на базе контроллера HD44780 и его аналогах. Важно сопряжение сопряжение интерфейса I2C и LCD 1602, с помощью микросхемы расширителя портов PCF8574.Рассмотрим LCD-дисплеи на базе контроллера HD44780 на примере WH1602B-YYK-CTK. http://robocraft.ru/blog/arduino/503.htmlhttp://robocraft.ru/files/lcd/0_65ca7_a7ce2d4d_XL.jpg
Этот монохромный дисплей имеет опциональную подсветку и может отображать 2 строки по 16 символов. Разрешение символов — 5x8 точек. 
Библиотека для  платформы Arduino называется LiquidCrystal.  Схема подключения в официальном руководстве на сайте Arduino.
Дисплей имеет режим самотестирования, который можно включить, подсоединив выводы: 1 — Vss, земля ? GND; 2 — Vdd, питание ? +5 В; 3 — Vo, управление контрастностью напряжением ? выход потенциометра; 15 — A, питание для подсветки ? +5 В; 16 — K, земля для подсветки  GND
Верхний ряд символов должен полностью заполниться тёмными прямоугольниками. Вращением ручки потенциометра настроить контрастность дисплея. Если не видно верхнего ряда прямоугольников, то либо неправильно подключен дисплей, либо его сожгли.
Для полноценной работы дисплей подключается через 12 выводов: 1 — Vss, земля ? GND; 2 — Vdd, питание ? +5 В; 3 — Vo, управление контрастностью напряжением ? выход потенциометра; 4 — RS, выбор регистра ? пин 12 Arduino; 5 — R/W, чтение/запись ? земля (режим записи); 6 — E, он же Enable, cтроб по спаду ? пин 11 Arduino; 7-10 — DB0-DB3, младшие биты 8-битного интерфейса; не подключены; 11-14 — DB4-DB7, старшие биты интерфейса ? пины 5-2 Arduino; 15 — A, питание для подсветки ? +5 В; 16 — K, земля для подсветки  GND; Этот дисплей, как и прочие на контроллере HD44780, поддерживает два варианта параллельного интерфейса:; 8-битный, выводы DB0-DB7, за один такт передаётся 1 байт (8 бит); 4-битный, выводы DB4-DB7, за один такт передаётся половина байта (4 бита) Смысла использовать 8-битный вариант нет, потому что это требует больше ног, а выигрыша в скорости всё равно нет: частота обновления дисплея не больше 10 раз в секунду, так что всё равно не сможем увидеть часто обновляемые данные. Поэтому выводы DB0-DB3 оставляем неподключенными.
Более дешевый вариант дисплея LCD 1602 не содержит платы согласования с интерфейсом I2C. 
Подключение к Arduino для такого дисплея, показано в таблице.

Подключение_LCD1602

Если дисплей 1602 питается от Arduino чеArduino_1602_LCD_подключение -схемарез 5-ти вольтовой USB-кабель и соответствующий пин, для контакта контраста дисплея (3-й коннектор – Contrast) можно использовать номинал 2 кОм. Для Back LED+ контакта можно использовать резистор на 100 Ом. Можно использовать и переменный резистор – потенциометр для настройки контраста вручную.

На основании таблицы 1 и схемы, приведенной ниже, подключите ваш жидкокристаллический дисплей к Arduino. Для подключения вам понадобится набор проводников. Желательно использовать разноцветные проводники, чтобы не запутаться. Схема подключения LCD дисплея 1602 к Arduino: Подключение к Arduino для такого дисплея, показано в таблице.
В примере используются 0, 1, 2, 3, 4, и 5 пины Arduino для подключения соответствующих пинов 4, 6, 11, 12, 13 и 14 с дисплея 1602 (смотри табл. 1). После этого в коде для Arduino мы инициализируем lcd() следующим образом:
LiquidCrystal lcd(0, 1, 2, 3, 4, 5);
Этот кусок кода объясняет Arduino, как именно подключен LCD дисплей.

NE555 ТАЙМЕР

NE555-Timer.pngNE555 — интегральная схема, универсальный таймер — устройство для формирования (генерации) одиночных и повторяющихся импульсов со стабильными временными характеристиками. Впервые выпущен в 1971 году компанией Signetics под обозначением NE555. Функциональные аналоги оригинального NE555 выпускаются во множестве биполярных и КМОП-вариантов. Представляет собой асинхронный RS-триггер со специфическими порогами входов, точно заданными аналоговыми компараторами и встроенным делителем напряжения. Применяется для построения различных генераторов, модуляторов, реле времени, пороговых устройств и прочих узлов электронной аппаратуры. В качестве примеров применения микросхемы-таймера можно указать функции восстановления цифрового сигнала, искажённого в линиях связи, фильтры дребезга, двухпозиционные регуляторы в системах автоматического регулированияимпульсные преобразователи напряжения, устройства широтно-импульсного регулирования, таймеры и др.

Микросхема состоит из делителя напряжения с двумя опорными напряжениями для сравнения, двух прецизионных компараторов (низкого и высокого уровней), RS-триггера с дополнительным входом сброса, транзисторного ключа с открытым коллектором и выходного усилителя мощности для увеличения нагрузочной способности. Номинальное напряжение питания базовой версии микросхемы может находиться в пределах 4,5…16,5 В. Некоторые модификации работоспособны до 18 В. КМОП-версии отличаются возможностью работы при пониженном напряжении питания (от 2 В). Потребляемый микросхемой ток может достигать величины 6…15 мА в зависимости от напряжения питания (6 мА при VCC = 5 В и 15 мА при VCC = 15 В). Типовое потребление бывает меньше и обычно составляет 3…10 мА в состоянии низкого уровня и 2…9 мА — в состоянии высокого. Ток потребления КМОП-версий таймера не превышает сотен микроампер. Максимальный выходной ток для отечественной КР1006ВИ1 и КМОП-версий таймера составляет 100 мА. Большинство ныне выпускаемых зарубежных аналогов, выполненных по биполярной технологии, допускает выходной ток до 200 мА и более.

NE555 и её аналоги преимущественно выпускаются в восьмивыводном корпусе типа PDIP8, TSSOP или SOIC. Расположение выводов независимо от корпуса – стандартное. Условное графическое обозначение таймера представляет собой прямоугольник с надписью G1 (для генератора одиночных импульсов) и GN (для мультивибраторов). Общий (GND). Первый вывод относительно ключа. Подключается к минусу питания устройства. Запуск (TRIG). Подача импульса низкого уровня на вход второго компаратора приводит к запуску и появлению на выходе сигнала высокого уровня, длительность которого зависит от номинала внешних элементов R и С. О возможных вариациях входного сигнала написано в разделе «Одновибратор». Выход (OUT). Высокий уровень выходного сигнала равен (Uпит-1,5В), а низкий – около 0,25В. Переключение занимает около 0,1 мкс. Сброс (RESET). Данный вход имеет наивысший приоритет и способен управлять работой таймера независимо от напряжения на остальных выводах. Для разрешения запуска необходимо, чтобы на нём присутствовал потенциал более 0,7 вольт. По этой причине его через резистор соединяют с питанием схемы. Появление импульса менее 0,7 вольт запрещает работу NE555. Контроль (CTRL). Как видно из внутреннего устройства ИМС он напрямую соединен с делителем напряжения и в отсутствие внешнего воздействия выдаёт 2/3 Uпит. Подавая на CTRL управляющий сигнал, можно получить на выходе модулированный сигнал. В простых схемах он подключается к внешнему конденсатору. Останов (THR). Является входом первого компаратора, появление на котором напряжения более 2/3Uпит останавливает работу триггера и переводит выход таймера в низкий уровень. При этом на выводе 2 должен отсутствовать запускающий сигнал, так как TRIG имеет приоритет перед THR (кроме КР1006ВИ1). Разряд (DIS). Соединен напрямую с внутренним транзистором, который включен по схеме с общим коллектором. Обычно к переходу коллектор-эмиттер подключают времязадающий конденсатор, который разряжается, пока транзистор находится в открытом состоянии. Реже используется для наращивания нагрузочной способности таймера. Питание (VCC). Подключается к плюсу источника питания 4,5–16В. Источник: https://ledjournal.info/spravochnik/ne555-datasheet.html

Цифровые 7-сегментные индикаторы

4-7segment.png5Цифровые 7-сегментные индикаторы KEM – интегральные микросхемы из диодных полупроводниковых источников излучения (светодиодов), 1-7segment.pngпредназначены для отображения цифровой и буквенной информации. Источник: Индикатор 7-сегментный цифровой 1, 2, 3, 4 разрядный » АС Энергия. В комплект Arduino Kit входит 4-х разрядный индикатор 3641BH и 1-разрядный. Отличительными характеристиками семисегментных цифровых индикаторов KEM являются количество разрядов в одном корпусе (одноразрядные, двухразрядные, трехразрядные и четырехразрядные), цвет отображаемой информации (красный, зелёный) и высота отображаемого знака (от 7,62 мм до 45 мм). Кроме сегментов, синтезирующих цифры и буквы, разряд некоторых цифровых индикаторов может иметь одну или две децимальных точек, так называемый делитель дробных чисел. Изготавливаются цифровые индикаторы в пластмассовом корпусе, задняя часть которого залита эпоксидным компаундом. Цвет дисплея черный или серый. Некоторые индикаторы дополнительно маркируются на корпусе с указанием серии и основных характеристик изделия.

kod-7segment.pngМонтаж осуществляется по THT-технологии (выводы монтируются непосредственно в сквозные отверстия печатной платы) с помощью пайки. Повышенная рабочая температура среды составляет не более +85°С, пониженная рабочая температура – не ниже -35°С. Семисегментные цифровые индикаторы имеют схему включения с общим катодом или с общим анодом: на вывод общего анода необходимо подавать"плюс", а на вывод обСхема подключения LED к плате Ардуинощего катода – "минус" или заземление. Для управления цифровыми индикаторами необходимы специальные интегральные микросхемы, преобразовывающие двоичный или двоично-десятичный код в соответствующий код индикатора. Цифровые индикаторы применяются в качестве светоизлучающих источников в различной измерительной аппаратуре, устройствах автоматики и вычислительной техники, микрокалькуляторах, часах, приборах бытовой техники. Кроме десяти цифр, семисегментные индикаторы способны отображать буквы. Но лишь немногие из букв имеют интуитивно понятное семисегментное представление. Поэтому семисегментные индикаторы используют только для отображения простейших сообщений.
В латинице: заглавные A, B, C, E, F, G, H, I, J, L, N, O, P, S, U, Y, Z, строчные a, b, c, d, e, g, h, i, n, o, q, r, t, u.
В кириллице: А, Б, В, Г, г, Е, и, Н, О, о, П, п, Р, С, с, У, Ч, Ы (два разряда), Ь, Э/З.

Схема подключения 4-разрядного индикатора к плате Ардуино представлена на рисунке.

Матричный светодиодный индикатор 8х8 1588BS

sveto-matrix.pngРазрешение матричного индикатора — это количество точек по горизонтали и вертикали. Например, самые распространенные индикаторы имеют разрешение 8×8 точек. Нумерация выводов начинается с нижнего левого угла. При этом, нумерация ног 1-16 не связана никакой логикой с нумерациейПринципиальная схема светодиодная матрица Ардуино колонок и строк C и R.

Используем в схеме управления матричным индикатором 8-битные сдвиговые регистры. Один регистр подключим к выводам индикатора, отвечающим за колонки, а второй к выводам строк. Принципиальная схема

Необходимо, чтобы резисторы в этой схеме были на линиях, идущих от первого сдвигового регистра. Этот сдвиговый регистр отвечает за колонки. При таком подключении, каждый резистор будет задавать ток только для одного светодиода на каждом шаге динамического алгоритма. Следовательно, все светодиоды будут светиться равномерно.

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

Светодиодная матрица с разрешением 8×8 подойдет для отображения двух цифр или простого символа. Если требуется вывести на индикатор какое-то более или менее полезное изображение, необходимо объединить матрицы. Делается это с помощью добавления новых сдвиговых регистров как по вертикали, так и по горизонтали. Следует отметить, что быстродействия контроллера Ардуино Уно в связке со сдвиговыми регистрами хватит разве что на дисплей 16×16. Дальнейшее увеличение размеров светодиодного дисплея приведет к появлению заметного мерцания. Существуют более простые способы работы с матрицей.  Существуют специализированные микросхемы для работы с разными типами дисплеев, в том числе и для работы со светодиодной матрицей. Например, с помощью микросхемы MAX7219. Такой способ позволит легко объединять несколько матриц с один большой дисплей, без необходимости сильно усложнять электрическую схему.

Инфракрасный пульт дистанционного управления HX1838

Используется Сенсор HX1838 высокой чувствительности. Рабочее напряжение 5 В. Выходная Форма: цифровой выход. VCC: 3.3 В-5 В внешнее напряжение (можно напрямую подключить к микроконтроллеру 5 В и 3.3 В микроконтроллер ). GND: внешний GND.
В: внешний микроконтроллер I/O порта, порт ввода-вывода был разработан 10 К pull-up резистор.
Теория набора тестовое расстояние около 5-8 м, но практическое применение зависит от внешних факторов, которые вы используете, А также средний барьер (например, диафрагма, стекло, обструкция или другой материал блокировки), принимающая головка с HX1838 с инструкциями по работе питания, получает 38 К частоты любые удаленные данные кодирования. Инфракрасный пульт дистанционного управления — один из самых простых способов взаимодействия с электронными приборами. самое интересное применение инфракрасного пульта — дистанционное правление роботом.

для приема сигнала с пульта потребуется специальный ИК-датчик. Можно детектировать инфракрасное излучение обычным фотодиодом/фототранзистором, но в отличие от него, ИК-датчик воспринимает инфракрасный сигнал только на частоте 38 кГц (иногда 40кГц). Именно такое свойство позволяет датчику игнорировать много посторонних световых шумов от ламп освещения и солнца.

Для идентификации команд с пульта надо подключить к Arduino ИК датчик, напимер VS1838B (см. ранее). Предварительно установить в Arduino IDE программу (скетч см. ниже). Затем открываем монитор последовательного порта (Ctrl+Shift+M), берём в руки пульт, и направляем его на датчик. Нажимая разные кнопочки, наблюдаем в окне монитора соответствующие этим кнопкам коды.

#include "IRremote.h"
IRrecv irrecv(2); // указываем вывод, к которому подключен приемник
decode_results results;
void setup() {  Serial.begin(9600); // выставляем скорость COM порта
  irrecv.enableIRIn(); } // запускаем прием
void loop() {   if ( irrecv.decode( &results )) { // если данные пришли
    Serial.println( results.value, HEX ); // печатаем данные
    irrecv.resume();   }}// принимаем следующую команду