Материалы к набору «Я у мамы программист» 15 проектов

Поздравляем с покупкой набора, чтобы тебе проще было в нём разобраться мы подготовили примеры кода, а также все необходимые драйвера и утилиты для начала работы с Arduino.

А если вы только планируете приобрести данный набор, то его можно приобрести в жёлтом, синем, зелёном и бирюзовом цветах.

А чуть ниже представлена подробная информация о каждом датчике и модуле, входящем в набор, со схемой подключения.

Содержание

Плата Arduino-совместимая UNO R3

Arduino-совместимые платы линейки UNO R3 – одни из самых популярных плат для быстрого старта программирования на открытой платформе Arduino. В большинстве случаев именно на их основе создаются самые первые проекты устройств.

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

Классическая Arduino-совместимая плата на Uno R3 обладает следующими характеристиками:

ХарактеристикаЗначение
МикроконтроллерATMega328P
Напряжение питания, В7-12 В (рекомендуемое); 6-20 В (предельное)
Рабочее напряжение, В5
ОЗУ2 Кб
Флеш-память32 Кб из которых 0.5 Кб используются для загрузчика
EEPROM1 Кб
Входы/Выходы Цифровые Входы/Выходы 14 (6 из которых могут использоваться как выходы ШИМ); Аналоговые входы 6

На Arduino-совместимой плате UNO R3 расположены 14 цифровых входов/выходов, часть из которых могут использоваться как выходы ШИМ, а также 6 аналоговых выходов. Также возможно подключение устройств по шине I2C.

Контроллер может быть запитан как от USB порта компьютера, так и от других источников питания (аккумуляторы, батарейки, блоки питания) через DC-разъем. На выходы платы подается напряжение 5В или 3.3В.

Распиновка UNO

Отладочная плата NodeMCU ESP8266 V3 CH340G

Модуль Nodemcu Lua V3 CH340 Wi-Fi на Esp8266 используется при создании различных электронных устройств. Отличительной особенностью является компактный размер, а в макетную плату модуль можно вставить без паяльника, благодаря тому, что все выводы чипа разведены на гребенки. В микросхеме реализовано подключение к USB, имеется регулятор питания. Программирование и загрузка осуществляется по той же схеме, что и работа с Arduino. Стандартная прошивка обеспечивает программирование на языке Lua, но благодаря чипсету на Esp8266 можно написать собственную прошивку на языке С или С++.

Модуль имеет встроенные TR переключатель и PLL, усилители мощности, стек TCP/IP. Рекомендуем купить Nodemcu Lua V3 CH340 Wi-Fi на Esp8266 для проектирования роботов или систем для «Умного дома», других устройств, управляемых на расстоянии. Плата версии V3 отличается от предшественников усовершенствованным USB портом и увеличенными размерами. Цена Nodemcu Lua V3 CH340 Wi-Fi на Esp8266 доступна каждому, кто увлекается робототехникой и программированием.

Отладочная плата NodeMCU ESP8266 V3 CH340G обладает следующими техническими характеристиками:

ХарактеристикаОписвание
Wi-Fi протокол802.11 b/g/n
Режимы Wi-Fiточка доступа, клиент
Входное напряжение3.7В – 20 В
Рабочее напряжение3В-3.6В
Максимальный ток220мА
Встроенный стекTCP/IP
Диапазон рабочих температур-40С до 125С
Процессор80 МГц, 32-битный
Время пробуждения и отправки пакетов22мс
Встроенные TR переключатель и PLLесть
Наличие усилителей мощности, регуляторов, систем управления питаниеместь

Перед использованием платы нужно скачать драйвер CP2102 и установить его на компьютер.

Драйвер CP2102 — выбери подходящую для вашего устройства версию:

  1. CP210x-driver-windows7-10
  2. CP210x-driver-MacOS
  3. CP210x-driver-Linux-2-2-x

Затем, чтобы плата работала в Arduino IDE нужно добавить ее в менеджере плат. По пути Файл/Настройки перейди в окно настроек и копируй в строку Дополнительные ссылки для Менеджера плат следующую ссылку:

http://arduino.esp8266.com/stable/package_esp8266com_index.json .

По этой ссылке содержится пак плат с чипами ESP8266 различных конфигураций. Для сохранения ссылки нажми на значок папки рядом с полем для вставки и кнопку ОК внизу диалогового окна.

 

Далее нужно перейти в сам Менеджер плат по пути Инструменты/Плата/Менежер плат.

В открывшемся окне Менеджера плат нужно найти строку поиска и вписать в нее ESP8266, затем выбрать из списка пак под названием esp8266 by ESP8266 Community и установить инструменты данных плат.

После этого с модулем NodeMCU можно будет работать так же, как и с классическими платами, совместимыми с Arduino IDE.

Распиновка отладочной платы NodeMCU ESP8266 V3 CH340G

На изображении ниже представлена распиновка отладочной платы.

Распиновка NodeMCU

Знакогенерирующий дисплей LCD 1602A IIC/I2C

Знаконегерирующий ЖК дисплей с разрешением 16х2, синей подсветкой и встроенным адаптером IIC/I2C.

Этот дисплей наиболее часто используется в проектах Arduino, так как адаптер IIC/I2C позволяет использовать только 4 пина платы контроллера и значительно упрощает как процесс подключения дисплея, так и управление им.

На обратной стороне дисплея установлен расширитель портов, который упрощает подключение модуля.

Дисплей

UNO

GND GND
VCC 5V
SDA А4
SCL А5

Для того, чтобы регулировать яркость дисплея, используй подстроечный резистор на плате расширителя.

Код для подключения знакогенерирующего дисплея LCD 1602A IIC/I2C

В примере ниже показано, как подключить дисплей к контроллеру и вывести на нем надпись «Hello, world!». Для корректной работы кода нужно загрузить библиотеки Wire.h и LiquidCrystal_I2C.h.

Библиотека LiquidCrystal_I2C.h: Библиотека LCD дисплея


#include <Wire.h> // подключение библиотеки
#include <LiquidCrystal_I2C.h> // подключение библиотеки

// назначьте адрес для дисплея по шине i2c - 0x3f
LiquidCrystal_I2C lcd(0x3f, 16, 2);

void setup()
{
lcd.begin(); // инициализация дисплея
lcd.backlight(); // включение подсветки
lcd.print("Hello, world!"); // вывод надписи
}

void loop()
{
}

ВНИМАНИЕ! В зависимости от установленной версии Arduino IDE могут работать или не работать некоторые библиотеки. Адрес шины дисплея может быть 0х27, 0х20 или 0х3F.

Скачать файл с кодом, формат .INO: Дисплей

Зуммер 5В 12 * 9мм, 2500 Гц

Пьезоэлектрический излучатель звука, или зуммер, предназначается для воспроизведения звука определенной частоты, в рамках которой работает излучатель. Данный зуммер — активного типа, то есть он будет излучать звук, как только на него подадут питание; длинная ножка — анод (+).

ВНИМАНИЕ! Соблюдайте осторожность при подключении устройств подобного типа, т.к. они могут издавать достаточно громкий звук.

Данная модель способна издавать звуки уровнем ~85 дБ, поэтому не стоит подносить ее близко к ушам.

Частота звучания регулируется изменением частоты издаваемого звука в Герцах. Таким образом, можно также регулировать тональность звучания.

Схема подключения зуммера 5В 12 * 9мм, 2500 Гц

На схеме ниже представлен один из вариантов подключения зуммера к плате управления.

Код для подключения зуммера 5В 12 * 9мм, 2500 Гц

В примере ниже показано, как подключить зуммер к плате и запрограммировать его на включение и выключение звукового сигнала.

#define BUZZER_PIN 9; // подключение зуммера на пин 9  
  
void setup() {  
  pinMode(BUZZER_PIN, OUTPUT); // определяем пин как выход  
}  
void loop() {  
  
  tone(BUZZER_PIN, 500); // включение на 500 Гц  
  delay(1000); // задержка 1 секунда  
  tone(BUZZER_PIN, 1000); // включение на 1000 Гц  
  delay(1000); // задержка 1 секунда  
} 

Скачать файл с кодом, формат .INO: Зуммер

Клавиатура мембранная 4*4

Мембранная клавиатура на 16 кнопок с цифрами от 0 до 9, буквами A, B, C, D и знаками «*» и «#».

Клавиатура герметичная, обладает высокой гибкостью и износостойкостью. На обратной стороне клавиатуры расположен клеящий слой, что позволяет без труда закрепить ее на практически любой поверхности. Подключается через шлейф на 8 контактов. Ресурс клавиатуры – 1 млн нажатий.

Мембранная клавиатура здесь – это матричная клавиатура, так как ее кнопки расположены на пересечении рядов и столбцов из проводников.

Основные характеристики:

  1. рабочее напряжение: до 12 В;
  2. допустимая влажность: 90-95 % на протяжении 240 часов.

Такая клавиатура может быть использована в проектах кодовых замков, калькуляторов, систем доступа.

Схема подключения мембранной клавиатуры 4*4

На изображении представлен один из вариантов подключения мембранной клавиатуры. Ее выводы подключаются к цифровым пинам контроллера.

Код для подключения мембранной клавиатуры 4*4

В примере ниже показано, как подключить мембранную клавиатуру к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).

 

#include <Keypad.h> // подключение библиотеки
  
const byte ROWS = 4; // четыре ряда  
const byte COLS = 4; // четыре колонки  
// определение значений каждой кнопки  
char keys[ROWS][COLS] = {  
  {'1','2','3','A'},  
  {'4','5','6','B'},  
  {'7','8','9','C'},  
  {'*','0','#','D'}  
};  
byte rowPins[ROWS] = {11, 10, 9, 8}; // подключение рядов   
byte colPins[COLS] = {7, 6, 5, 4}; // подключение колонок  
// определение клавиатуры как матрицы 4х4  
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );  
  
void setup(){  
  Serial.begin(9600); // выведение данных в монитор порта  
}  
    
void loop(){  
  // выведение значения, которое привязано к кнопке, при    нажатии в монитор порта  
  char key = keypad.getKey();  
  if (key){  
    Serial.println(key);  
  }  
}  

 Скачать файл с кодом, формат .INO: Клавиатура мембранная

 

 

Кнопка тактовая 6 * 6 * 5 мм

Кнопки часто используются в макетировании на Arduino, т.к. позволяют привнести в проект новый и полезный функционал.

Слово «тактовая» в названии кнопки означает, что при её использовании чувствуется тактильный отклик, что она была нажата. Тактовые кнопки бывают с фиксацией и без нее — кнопка без фиксации после нажатия возвращается в исходное положение.

Схема подключения кнопки тактовой 6 * 6 * 5 мм

На схеме показано подключение тактовой кнопки к контроллеру через подтягивающий резистор.

 

Код для подключения кнопки тактовой 6 * 6 * 5 мм

Ниже представлен код, с помощью которого можно вывести информацию о нажатии кнопки в монитор порта среды Arduino IDE.

const int PIN_BUTTON = 2;

void setup() {
  Serial.begin(9600);
  pinMode(PIN_LED, OUTPUT);
}

void loop() {
  // Получаем состояние кнопки и выводим в мониторе порта
  int buttonState = digitalRead(PIN_BUTTON);
  Serial.println(buttonState);
  delay(50);
}

Скачать файл с кодом, формат .INO: Тактовая кнопка

Модуль RFID RC-522 13,56 МГц

RFID (от англ. Radio Frequency IDentification, радиочастотная идентификация) – это метод идентификации, который подразумевает запись и считывание радиосигналов, которые хранятся на RFID-метках. Устройство RFID всегда двухчастное – сама RFID-метка и считывающее устройство.

Схема подключения модуля RFID RC-522 13,56 МГц

На изображении ниже представлена схема подключения модуля RFID RC-522 13,56 МГц.

Код для подключения модуля RFID RC-522 13,56 МГц

В примере ниже показано, как подключить модуль RFID к контроллеру.

// Подключение библиотек
#include <SPI.h>
#include <MFRC522.h>
// константы подключения контактов SS и RST
#define RST_PIN 9
#define SS_PIN 10
// Инициализация MFRC522
MFRC522 mfrc522(SS_PIN, RST_PIN); 
void setup()
{
  Serial.begin(9600); // инициализация последовательного порта
  SPI.begin(); // инициализация SPI
  mfrc522.PCD_Init(); // инициализация MFRC522
}
void loop()
{
  if ( ! mfrc522.PICC_IsNewCardPresent())
    return;
  // чтение карты
  if ( ! mfrc522.PICC_ReadCardSerial())
    return;
  // показать результат чтения UID и тип метки
  Serial.print(F("Card UID:"));
  dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size);
  Serial.println();
  Serial.print(F("PICC type: "));
  byte piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);
  Serial.println(mfrc522.PICC_GetTypeName(piccType));
  delay(2000);
}
// Вывод результата чтения данных в HEX-виде
void dump_byte_array(byte *buffer, byte bufferSize)
{
  for (byte i = 0; i < bufferSize; i++)
  {
    Serial.print(buffer[i] < 0x10 ? " 0" : " ");
    Serial.print(buffer[i], HEX);
  }
}


Скачать файл с кодом, формат .INO: RFID

Модуль часов реального времени DS1302

Контроллеры Arduino и их совместимые не имеют встроенных часов, поэтому модули часов реального времени пользуются большой популярностью в проектах.

Микросхема DS1302, расположенная на модуле, отличается низким энергопотреблением и позволяет отсчитывать время с точностью до секунд. Подключение ds1302 осуществляется с помощью пяти контактов. Выводы VCC и Gnd отвечают за питание модуля. Контакты CLK,DAT и RESX подключают к цифровым пинам микроконтроллера.

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

 

Схема подключения модуля часов реального времени DS1302

На схеме представлено подключение часов реального времени к контроллеру.

Код для подключения модуля часов реального времени DS1302

Далее представлен код для программирования модуля часов реального времени. Для корректной работы с кодом нужно дополнительно скачать библиотеку DS1302 и добавить ее в среду Arduino IDE.

#include <DS1302.h>

DS1302 rtc(45, 46, 47);


void setup()
{
    Serial.begin(9600);
}

void loop()
{
    Time t = rtc.time();
    Serial.println(t.yr);
    Serial.println(t.hr);
    Serial.println(t.min);
    Serial.println(t.sec);
    Serial.println(t.mon);
    Serial.println(t.date);
    Serial.println(t.day);

    delay(1000);
}

 

Скачать файл с кодом, формат .INO: Модуль часов реального времениds1302

Скачать библиотеку для DS1302, формат .ZIP: arduino-ds1302-master
 

Провода DuPont мама-мама 20 см

Провода вида «мама-мама» (также могут называться проводами F-F (female-female) с гнездами на концах используются для подключения датчиков и плат, ответной частью которых являются штырьки.

Гнездо на разъеме провода плотно соединяется со штырьком, тем самым обеспечивая хороший контакт.

Провода DuPont папа-папа 10 см

Чаще всего для подключения модулей и датчиков используются провода вида «папа-папа» (также могут называться проводами М-М (male-male)) со штырьками на концах. Такая форма контактов популярна из-за того, что на макетных платах и на платах контроллеров размещены гнезда, в которые и должны быть вставлены контактные штырьки.

 

Разъем для батарейки Крона 9V с проводами

Для того, чтобы схема работала, для устройства нужно обеспечить стабильное питание. В проектах Arduino часто используются автономные источники питания, в том числе батарейки и аккумуляторы. Одним из часто используемых решений является батарея типа Крона 9В. От нее можно запитывать сам контроллер, а также устройства, предполагающие дополнительное питание, например, моторы.

Для подключения Кроны к схеме используются специальные переходники и разъемы, например такой, как в нашем наборе.

Крона подсоединяется к контактам разъема, зеркально повторяющим ее контакты. Провод красного цвета — это провод питания, черный — заземления.

Резисторы

Резисторы предназначаются для работы в цепях постоянного, переменного и импульсного тока с целью линейного преобразования силы тока в напряжение и напряжения в силу тока, ограничения тока, поглощения электрической энергии и пр. Резисторы, так же как и конденсаторы — это основные пассивные элементы электрических схем.

Выводные резисторы имеют универсальную цветовую маркировку, которая позволяет отличить их друг от друга.

В наших наборах представлены резисторы мощностью 0.25Вт — они чаще всего используются в проектах Arduino. В зависимости от комплектации выбранного Вами набора, в нем могут присутствовать следующие номиналы.

Название в набореСопротивлениеМощностьРабочее напряжение, max
Резистор 150 Ом150 Ом0.25 Вт250 В
Резистор 220 Ом220 Ом0.25 Вт250 В
Резистор 1 кОм1 кОм0.25 Вт250 В
Резистор 4.7 кОм4.7 кОм0.25 Вт250 В
Резистор 10 кОм10 кОм0.25 Вт250 В

 

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

Резисторы в схемах подключения не являются самостоятельной деталью, т.к. они — пассивный компонент. Это значит, что их работу в устройстве можно наблюдать только в связке с компонентом, к которому они подключены, например, к светодиоду.

Светодиод RGB 5мм

Светодиоды RGB немного сложнее в подключении по сравнению с одноцветными светодиодами.

В RGB светодиодах содержатся три кристалла разных цветов в одном корпусе. Такие светодиоды имеют не два контакта, а четыре — один общий (анод или катод имеет самый длинный вывод) и три цветовых вывода. Каждая

RGB светодиоды объединяют три кристалла разных цветов в одном корпусе. RGB LED имеет 4 вывода — один общий (анод или катод имеет самый длинный вывод) и три цветовых вывода. К каждому цветовому выходу следует подключать резистор.

Схема подключения RGB светодиода

Ниже представлена схема подключения RGB светодиода с общим катодом, таким образом, ножка катода подключается к GND контроллера.

 

Код для подключения светодиода RGB

Ниже представлен простейший скетч для управления миганием RGB светодиода разными цветами.

 

#define RED 11  // присваиваем имя RED для пина 11
#define GRN 12 // присваиваем имя GRN для пина 12
#define BLU 13  // присваиваем имя BLU для пина 13
 
void setup() {
   pinMode(RED, OUTPUT);  // используем Pin11 для вывода
   pinMode(GRN, OUTPUT); // используем Pin12 для вывода
   pinMode(BLU, OUTPUT);  // используем Pin13 для вывода
}
 
void loop() {
 
   digitalWrite(RED, HIGH); // включаем красный свет
   digitalWrite(GRN, LOW);
   digitalWrite(BLU, LOW);
 
   delay(1000); // устанавливаем паузу для эффекта
 
   digitalWrite(RED, LOW);
   digitalWrite(GRN, HIGH); // включаем зеленый свет
   digitalWrite(BLU, LOW);
 
   delay(1000); // устанавливаем паузу для эффекта
 
   digitalWrite(RED, LOW);
   digitalWrite(GRN, LOW);
   digitalWrite(BLU, HIGH); // включаем синий свет
 
  delay(1000); // устанавливаем паузу для эффекта
}

Скачать файл с кодом, формат .INO: Светодиод RGB

Светодиоды

Самыми простыми проектами для Arduino являются проекты подключения светодиодов.

Светодиоды бывают различных видов:

  • Индикаторные с выводными контактами
  • Яркие светодиоды для выводного монтажа
  • Индикаторные и осветительные светодиоды для поверхностного монтажа (SMD)
  • Светодиоды «Пиранья»
  • Осветительные светодиоды COB
  • Светодиоды filament (в форме нити накала) и др.

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

Одноцветные светодиоды имеют две ножки, длинная – это анод «+», к ней подключается питание. Светодиоды всегда подключаются через резистор.

Для каждого типа и цвета светодиодов можно рассчитать оптимальный номинал резистора, при котором светодиод будет работать наиболее эффективно, на основе тока и напряжения светодиода.

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

На схеме ниже представлена простейшая схема подключения нескольких светодиодов. Подключение каждого светодиода на ней идентично.

Код для подключения светодиодов

Ниже представлен код для демонстрации работы одного светодиода.

void setup() {               
  pinMode(13, OUTPUT); // светодиод подключен на пин 13 и определен как выход
}
void loop() {
  digitalWrite(13, HIGH); // подача высокого сигнала на пин, светодиод зажигается
  delay(1000);  // задержка 1 секунда
}

Скачать файл с кодом, формат .INO: Подключение светодиода

Светодиодная матрица 8×8, общий анод

Светодиодная матрица — еще одно устройство, которое может выполнять функцию индикации, а в некоторых случаях и функцию дисплея.

Светодиодная матрица может отображать информацию как в статичном режиме, так и в режиме каскадного переливания. Главная особенность такого матричного дисплея – возможность объединения с такими же дисплеями с целью сборки большого табло.

Управление всеми сегментами производится через последовательный SPI интерфейс с любых микроконтроллеров Arduino. Для подключения светодиодной матрицы требуется либо специальный драйвер, либо сдвиговый регистр.

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

Схема подключения светодиодной матрицы 8×8, общий анод

Ниже представлена схема подключения светдиодной матрицы к контроллеру через сдвиговые регистры.

Код для подключения светодиодной матрицы 8×8, общий анод

С помощью кода, представленного ниже, можно подключить светодиодную матрицу к контроллеру.

#define data_pin 2     //data_pin 1-го регистра
#define st_pin 3      //latch_pin общий
#define sh_pin 4     //clock_pin 1-го регистра
#define data_pin2 5 //data_pin 2-го регистра
#define sh_pin2 6  //clock_pin 2-го регистра

byte pic0[8] {
  0b01111111,
  0b10111111,
  0b11011111,
  0b11101111,
  0b11110111,
  0b11111011,
  0b11111101,
  0b11111110
};
//массив pic0 не трогаем, по нему отключаются логические единицы на сроках

byte pic[8] {
  0b10111011,
  0b11101110,
  0b00000000,
  0b10111011,
  0b11101110,
  0b00000000,
  0b10111011,
  0b11101110
};
//в этом массиве создаем картинку построчно, единицы обозначают зажженные светодиоды, нули - погашенные

byte cifra[10][8] {
  { B00001110,
    B00011011,
    B00011011,
    B00011011,
    B00011011,
    B00011011,
    B00001110,
    B00000000
  },
  { B00000010,
    B00000110,
    B00001110,
    B00000110,
    B00000110,
    B00000110,
    B00000110,
    B00000000
  },
  {
    B00001110,
    B00011011,
    B00000011,
    B00000110,
    B00001100,
    B00011000,
    B00011111,
    B00000000
  },
  {
    B00001110,
    B00011011,
    B00000011,
    B00001110,
    B00000011,
    B00011011,
    B00001110,
    B00000000
  },
  {
    B00000011,
    B00000111,
    B00001111,
    B00011011,
    B00011111,
    B00000011,
    B00000011,
    B00000000
  },
  {
    B00011111,
    B00011000,
    B00011110,
    B00000011,
    B00000011,
    B00011011,
    B00001110,
    B00000000
  },
  {
    B00001110,
    B00011011,
    B00011000,
    B00011110,
    B00011011,
    B00011011,
    B00001110,
    B00000000
  },
  {
    B00011111,
    B00000011,
    B00000110,
    B00001100,
    B00001100,
    B00001100,
    B00001100,
    B00000000
  },
  {
    B00001110,
    B00011011,
    B00011011,
    B00001110,
    B00011011,
    B00011011,
    B00001110,
    B00000000
  },
  {
    B00001110,
    B00011011,
    B00011011,
    B00001111,
    B00000011,
    B00011011,
    B00001110,
    B00000000
  },
};
//в этом массиве хранятся изображния цифр

void setup() {
  //включаем передачу данных по последовательному порту
  Serial.begin(9600);
  //задаем режим OUTPUT ( выход )
  for ( int i = 2; i < 7; i++) {
    pinMode(i, OUTPUT);
  }
}

void loop() {
  //output(массив с изображением);
  if (Serial.available() > 0) {     //ожидание доступных данных в com порте
    int cif = Serial.read() - '0'; //считывние данных из com порта 
      output(cifra[cif]);         //вывод цифры
  }
  obnulenie();
}

void obnulenie() {
  //в этом блоке гаснет вся матрица, при необходимости - использовать
  digitalWrite(st_pin, 0);
  shiftOut(data_pin, sh_pin, MSBFIRST, 0b11111111);
  shiftOut(data_pin2, sh_pin2, MSBFIRST, 0b00000000);
  digitalWrite(st_pin, 1);
}

void output(byte picture[8]) {
  //в этом блоке осуществляется вывод изображения на экран длительностью в 1 секунду (125*8мс)
  for (int kadr = 0; kadr < 125; kadr++) {
    for (int i = 7; i > -1; i--) {
      //в этом цикле осуществляется вывод изображения, хранящегося в массиве ( выводится в обратном порядке чтобы изображение было в нормальной ориентации, при необходимости поменять на for (int i=0; i<8; i++))
      digitalWrite(st_pin, 0);
      shiftOut(data_pin, sh_pin, MSBFIRST, pic0[i]);
      shiftOut(data_pin2, sh_pin2, MSBFIRST, picture[i]);
      digitalWrite(st_pin, 1);
      delay(1);
    }
  }
}

Скачать файл с кодом, формат .INO: Матрица 8×8

Сдвиговый регистр SN74HC595N

Регистр это устройство, выполненное на триггерах для выполнения ряда действий с двоичными числами. Сдвиговый регистр 74hc595 обычно используется для управления семисегментными индикаторами и светодиодами.

Чтобы понять принцип работы микросхемы 74hc595, следует рассмотреть распиновку сдвигового регистра.

  • Контакты DS, ST_CP и SH_CP — служат для управления и подключаются к любым выходам платы Arduino.
  • Контакты Q0Q7 — это выходы (разряды) сдвигового регистра. С помощью отправки байта с контроллера можно менять состояние разряда (HIGH или LOW).
  • Контакты VCC и GND — это питание регистра
  • Контакт MR — сброс (не активен)
  • Контакт OE подключается к GND
  • Контакт Q7` предназначен для последовательного соединения регистров.

Схема подключения сдвигового регистра SN74HC595N

На изображении ниже представлена схема подключения сдвигового регистра со светодиодами.

Код для подключения сдвигового регистра SN74HC595N

Ниже представлен код подключения сдвигового регистра SN74HC595N.

#define clock 13
#define data 12
#define latch 10

boolean states[8];

void setup() {
  pinMode(clock, OUTPUT);
  pinMode(data, OUTPUT);
  pinMode(latch, OUTPUT);
  digitalWrite(latch, HIGH);
  cleanreg();

}

void loop() {
  sendbyte(1);
}


void sendbyte(byte value){
  digitalWrite(latch, LOW);
  shiftOut(data, clock, LSBFIRST, value);
  digitalWrite(latch, HIGH);
}

void sendpin(int pin, boolean state){
  pin--;
  states[pin]=state;
  
  byte value = 0;
  byte add = 1;
  for(int i=0; i<8; i++){
    if(states[i]==HIGH) value+=add;
    add*=2;
  }
  digitalWrite(latch, LOW);
  shiftOut(data, clock, LSBFIRST, value);
  digitalWrite(latch, HIGH);
}

void cleanreg(){
  for(int i=0; i<8; i++) states[i]=LOW;
  digitalWrite(latch, LOW);
  shiftOut(data, clock, LSBFIRST, 0);
  digitalWrite(latch, HIGH);
}

Скачать файл с кодом, формат .INO: Сдвиговый регистр

Серводвигатель SG90 (180 град)

Серводвигатель или сервомотор может поворачиваться на определенный угол относительно 0°. Некоторые серво могут совершать полный оборот в 360°. Серво в наборе рассчитаны на поворот максимум 180°.

Основные характеристики:

  1. напряжение питания: 5 В;
  2. крутящий момент: 1.6 кг/см;
  3. время поворота на 60°: 0.1 сек.

В комплекте к серводвигателю идут три качалки и три винта для их крепежа. На качалках предусмотрены специальные отверстия для крепления приводимых в движение деталей.

 

Схема подключения серводвигателя SG90 (180 градусов)

На схеме ниже представлен пример подключения серводвигателя SG90.

Цвета проводов серводвигателя: GND – коричневый, сигнал – оранжевый, питание 5В – красный.

Код для подключения серводвигателя SG90 (180 градусов)

В примере ниже показано, как подключить серводвигатель SG90, а также продемонстрировать движение крыльчаток.

Для того, чтобы подключить встроенную библиотеку Servo через ARDUINO IDE, нужно использовать путь Скетч/Подключить библиотеку/Servo.

#include <Servo.h> // подключена библиотека серво
  
Servo servo; // даем название серво 
void setup() {  
  servo.attach(3); // серво на пине 3  
  servo.write(0);  // начальное положение в градусах   
}  
  
void loop() {  
  servo.write(90); // поворот на 90 градусов  
  delay(1000); // задержка 1 секунда  
  servo.write(180); // поворот на 180 градусов  
  delay(1000);  
  servo.write(90);  
  delay(1000);  
  servo.write(0);  
  delay(1000);          
} 

 

Скачать файл с кодом, формат .INO: Серводвигатель SG90

Беспаячные макетные платы

Беспаячные макетные платы постоянно используются при макетировании на Arduino, особенно, когда в проекте предполагается большое количество радиодеталей и модулей.

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

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

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

В зависимости от комплектации, в наших наборах присутствуют беспаячные макетные платы на 400 или на 830 контактов. Макетная плата на 400 контактов или, как их еще называют, точек может использоваться для небольших проектов, которые предполагают подключение, например, нескольких светодиодов или пары-тройки модулей.

 

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

Беспаячные платы рекомендуются к использованию именно в макетах схем, так как обеспечивают высокую скорость подключения и простоту смены коммутируемых устройств. Для финальных устройств лучше использовать пайку.

Ультразвуковой дальномер HC-SR04

Ультразвуковой дальномер (датчик расстояния) HC-SR04. Генерирует звуковые импульсы на частоте 40 кГц, и по отраженному сигналу определяет расстояние до объекта. Программно сравнивая показания датчика, можем определить, перемещается ли объект, скорость и направление движения.

В отличие от инфракрасных датчиков расстояния не зависит от освещенности и цвета объекта. Однако и у него есть недостатки — плохо реагирует на слишком тонкие объекты, волосы, пух.

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

Угол измерения 30°, наиболее эффективный — 15°. Прозрачность объекта не имеет значения.

Дальномер

UNO

Trig

Цифровой вход 3

Echo

Цифровой вход 2

GND

GND

VCC

5 V

Схема подключения ультразвукового дальномера HC-SR04

На изображении ниже представлена схема подключения дальномера.

Код для подключения ультразвукового дальномера HC-SR04

В примере ниже показано, как подключить вывод ультразвукового дальномера HC-SR04 к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).

 int echoPin = 2; // назначение цифрового вывода для Echo
int trigPin = 3; // назначение цифрового вывода для Trig

void setup() {
Serial.begin (9600); // подключение монитора порта для выведения данных
pinMode(trigPin, OUTPUT); // генерируется импульс для измерения расстояния
pinMode(echoPin, INPUT); // завершение импульса, считывание дистанции
}

void loop() {
int duration, cm; // назначение меры длины в см
digitalWrite(trigPin, LOW); // подача низкого сигнала на пин trigPin
delayMicroseconds(2); // пауза 2 микросекунды
digitalWrite(trigPin, HIGH); // подача высокого сигнала на пин trigPin
delayMicroseconds(10); // пауза 10 микросекунд
digitalWrite(trigPin, LOW); // подача низкого сигнала на пин trigPin

duration = pulseIn(echoPin, HIGH); // pulseIn - длина положительного импульса на пине echoPin в микросекундах
cm = duration / 58; // формула для выведения корректных данных в см
Serial.print(cm); // выведение данных в монитор порта в см
Serial.println(" cm"); // условия выведения надписи в монитор порта, добавление к значению меры длины
delay(1000); // пауза между измерениями 1 секунда
} 

Скачать файл с кодом, формат .INO: Ультразвуковой дальномер

Датчик вибрации пороговый

Пороговый датчик вибрации представляет собой датчик SW-18010P, установленный на плате с компаратором. На плате предусмотрены цифровой и аналоговый выводы для упрощения подключения.

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

На плате датчика есть два индикаторных светодиода: красный – питание; зеленый – обнаружение вибрации. Напряжение питания: 5 В.

Схема подключения датчика вибрации порогового

Ниже на изображении представлена схема подключения датчика вибрации.

Код для подключения датчика вибрации порогового

В примере ниже показано, как подключить вывод датчика вибрации порогового к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).

 #define VIBRATION_SENSOR A0 // датчик на пине А0

void setup() {
Serial.begin(9600); // включение монитора порта
}

void loop() {
int sensorValue = analogRead(VIBRATION_SENSOR);
Serial.print("Analog value:");
Serial.println(sensorValue); // данные в мониторе порта
delay(500); // задержка 0.5 секунд
}

Скачать файл с кодом, формат .INO: Датчик вибрации

Датчик влажности почвы

Датчик влажности почвы в комплекте с платой для настройки. Принцип работы датчика основан на изменении сопротивления на щупах, которые погружаются в почву. Датчик имеет аналоговый и цифровой выводы, что расширяет возможности подключения. Небольшие габариты и возможность настройки чувствительности датчика делают его очень удобным в применении для систем автоматического полива. Напряжение питания датчика 3.3 – 5 В.

Датчик влажности почвы

Модуль датчика состоит из двух частей:  контактного щупа и датчика, в комплекте идут провода для подключения.. Между двумя электродами щупа создаётся небольшое напряжение. Если почва сухая, сопротивление велико и ток будет меньше. Если земля влажная — сопротивление меньше, ток — чуть больше. По итоговому аналоговому сигналу можно судить о степени влажности. Щуп соединен с датчиком по двум проводам. Кроме контактов соединения с щупом,  датчик имеет четыре контакта для подключения к контроллеру.

  • Vcc – питание датчика;
  • GND – земля;
  • A0 — аналоговое значение;
  • D0 – цифровое значение уровня влажности.

Датчик построен на основе компаратора, который выдает напряжение на выход D0 по принципу: влажная почва – низкий логический уровень, сухая почва – высокий логический уровень. Уровень определяется пороговым значением, которое можно регулировать с помощью потенциометра. На вывод A0 подается аналоговое значение, которое можно передавать в контроллер для дальнейшей обработки, анализа и принятия решений. Датчик YL-38 имеет два светодиода, сигнализирующих о наличие поступающего на датчик питания и уровня цифрового сигналы на выходе D0. Наличие цифрового вывода D0 и светодиода уровня D0 позволяет использовать модуль автономно, без подключения к контроллеру.

Схема подключения датчика влажности почвы

Схема подключения датчика влажности почвы

Код для подключения датчика влажности почвы

В данном примере показано, как считать код с датчика влажности почвы через Arduino и вывести информацию в последовательный порт (вывод будет виден в мониторе порта Arduino IDE).

#define SOILMOISTURE_SENSOR A0 // подключение к пину А0
void setup() { 
    Serial.begin(9600); // вывод данных в монитор порта
}

void loop() {
    int sensorValue = analogRead(SOILMOISTURE_SENSOR); // считывание данных с аналогового порта А0
    Serial.print("Analog value: "); // фраза, выводимая перед показаниями датчика
    Serial.println(sensorValue); // данные в монитор порта
    delay(1000); // задержка 1 секунда
}

Скачать файл с кодом, формат .INO: Датчик влажности почвы

Датчик движения HC-SR501

Датчик используется в охранных системах, сигнализациях и прочих проектах, предполагающих обнаружение инфракрасного сигнала.

Работает на расстоянии до 7 метров, угол обнаружения – до 120°. Для эффективной работы датчик должен располагаться вдали от прямых источников света и ветра.

Схема подключения датчика движения HC-SR501

Ниже на изображении представлена схема подключения датчика движения.

Для того, чтобы соотнести пины на датчике и на плате, аккуратно снимите пластиковый колпачок с платы сенсора, поддев его плоской отверткой.

Код для подключения датчика движения HC-SR501

В примере ниже показано, как подключить вывод датчика движения HC-SR501 к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).


#define PIR 3 // датчик на пин 3

void setup() {
pinMode(PIR, INPUT); // определяем пин как вход
Serial.begin(9600); // подключение монитора порта
}

void loop() {
int pirValue = digitalRead(PIR); // считываение цифровых данных
Serial.println(pirValue); // данные в мониторе порта
delay(100); // задержка 0.1 секунда
}

Скачать файл с кодом, формат .INO: Датчик движения HC-SR501

Датчик дождя

Датчик дождя с компаратором и соединительными проводами в комплекте. Плата датчика представляет собой большой резистор, который изменяет свое сопротивление по мере попадания на него воды. На плате с компаратором предусмотрены аналоговый и цифровой выводы. Напряжение питания датчика 3.3 – 5 В.

Когда капля попадает на чувствительную к влаге пластину, информация об этом подается на плату датчика, а далее фиксируется на Arduino.

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

Схема подключения датчика дождя

На изображении ниже представлена схема подключения датчика дождя к плате Arduino Uno.Схема подключения датчика дождя

Код для подключения датчика дождя

В примере ниже показано, как подключить вывод датчика дождя к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).

#define ANALOG_RAINSENSOR A0 // датчик на аналоговом пине A0
#define DIGITAL_RAINSENSOR 3 // датчик на цифровом пине 3

void setup() {
    Serial.begin(9600); // подключение монитора порта
}

void loop() {
 // аналоговый пин А0 - выведение данных
 int analogValue = analogRead(ANALOG_RAINSENSOR); // считываем аналоговые данные датчика
 Serial.print("Analog value:"); // фраза перед значением данных
 Serial.println(analogValue); // выведение данных в монитор порта
 delay(1000); // задержка 1 секунда

 // цифровой пин 3 - выведение данных
 int digitalValue = digitalRead(DIGITAL_RAINSENSOR); // данные считываются с цифрового порта
 Serial.print("Digital value:"); // фраза перед значением данных
 Serial.println(digitalValue); // данные в мониторе порта
 delay(1000); // задержка 1 секунда
}

Скачать файл с кодом, формат .INO: Датчик дождя

Датчик пламени пороговый

Инфракрасный датчик огня (пламени) используется в проектах пожарной сигнализации. Датчик представляет собой плату с компаратором и инфракрасным диодом, который реагирует на длину волны в диапазоне 760-1100 нм.

Основные характеристики:

  1. расстояние срабатывания: до 1 м;
  2. угол обнаружения: до 60°;
  3. напряжение питания: 3.3 – 5 В.

Схема подключения датчика пламени порогового

Ниже на изображении представлена схема подключения датчика пламени.

Код для подключения датчика пламени порогового

В примере ниже показано, как подключить вывод датчика пламени порогового к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).

#define DIGITAL_FIRE_SENSOR 2 // цифровой пин 2  
#define ANALOG_FIRE_SENSOR A0 // аналоговый пин на А0  
  
void setup() {  
 pinMode(DIGITAL_FIRE_SENSOR, INPUT); // определяем пины как входы 
 pinMode(ANALOG_FIRE_SENSOR, INPUT);  
 Serial.begin(9600); // подключение монитора порта 
}  
  
void loop() {  
  int digitalValue = digitalRead(DIGITAL_FIRE_SENSOR); // получение данных 
  Serial.println(digitalValue); // данные в монитор порта 
  delay(100); // задержка 0.1 секунда   
  
  int analogValue = analogRead(ANALOG_FIRE_SENSOR);  
  Serial.println(analogValue);  
  delay(100);  
}  

Скачать файл с кодом, формат .INO: Датчик огня

Датчик препятствия пороговый

Датчик препятствия чаще всего устанавливается на двигающихся роботов, также может быть использован в проектах сигнализации. На плате размещены ИК-диод и приемник, светодиоды питания и срабатывания, а также компаратор для регулировки порогового значения обнаружения.

Основные характеристики:
1. дистанция обнаружения: 2-30 см;
2. угол обнаружения: 35°;
3. напряжение питания: 3.3 – 5 В.

Схема подключения датчика препятствий порогового

Ниже на изображении представлена схема подключения датчика препятствий.

Код для подключения датчика препятствий порогового

В примере ниже показано, как подключить вывод датчика препятствий порогового к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).

 #define LINE 2 // датчик на пине 2

void setup() {
Serial.begin(9600); // подключение монитора порта
pinMode(LINE, INPUT); // пин LINE - вход
}

void loop() {
int barrier = digitalRead(LINE); // получение данных
Serial.println(barrier); // данные в монитор порта
delay(100); // задержка 0.1 секунда
}

Скачать файл с кодом, формат .INO: Датчик препятствия

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

Датчик уровня воды может быть использован в проектах, где важно следить за колебанием уровня воды около конкретной отметки. Сигнал датчика обрабатывается через аналоговый вывод S. Датчик работает по принципу изменения сопротивления в зависимости от того, насколько глубоко он опущен в воду. Напряжение питания датчика 3.3 – 5 В.

С помощью представленного ниже кода можно вывести в монитор порта показания датчика. Данные снимаются в реальном времени, диапазон от 0 до 1023, где 0 – сухой датчик. Чем выше значение показания датчика, тем выше уровень воды.

Датчик устанавливается вертикально к поверхности воды, контакты должны быть хорошо защищены от воздействия влаги для корректной и долгой работы устройства.

Схема подключения датчика уровня воды

На изображении ниже представлена схема подключения датчика уровня воды.

Код для подключения датчика уровня воды

В примере ниже показано, как подключить вывод датчика уровня воды к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE)

 #define ANALOG_WATERSENSOR A0 // датчик на аналоговом пине А0

void setup() {
Serial.begin(9600); // подключение монитора порта
}

void loop() {
int sensorValue = analogRead(ANALOG_WATERSENSOR); // данные считываются с аналогового порта А0
Serial.print("Analog value: "); // фраза, выводимая перед показаниями датчика
Serial.println(sensorValue); // данные в мониторе порта
delay(1000); // задержка 1 секунда
} 

Скачать файл с кодом, формат .INO: Датчик уровня воды

Джойстик 5 каналов

Двухкоординатный джойстик – это удобный модуль манипулятор, позволяющий управлять различными устройствами (шасси, роботами). С его помощью можно управлять движением в двух осях Х и Y.

Модуль двухосевого джойстика состоит из двух потенциометров на 10 кОм, определяющие положение осей X и Y изменение сопротивления осуществляется рычагом. Средняя нога каждого потенциометра выведена на разъем (контакты VRX и VRY), а вторая и третья нога подключена к питанию и массе. Дополнительно установлена тактовая кнопка, показания снимаются с контакта SW, так же предусмотрено посадочное место для подтягивающего резистора (R5).

Схема подключения джойстика 5 каналов

На изображении ниже представлена схема подключения джойстика.

Код для подключения джойстика 5 каналов

В примере ниже показано, как подключить вывод джойстика 5 каналов к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).

 
const int Y_PIN = 2; // подключение оси Y джойстика к аналоговому пину 2
const int X_PIN = 1; // подключение оси X джойстика к аналоговому пину 1
const int BUTTON_PIN = 8; // подключение кнопки к цифровому пину 8
float stepSize = 180 / 1024; // вычисление шага: деление градусов на градацию
// Угол поворота джойстика равен 180 градусов, АЦП (аналого цифровой преобразователь)выдает значения от 0 до 1023, всего 1024 градации

void setup()
{
  Serial.begin(9600); // инициализация монитора порта
}

void loop()
{
  int yVal = analogRead(Y_PIN); // введение переменной yVal для считывания показаний аналогового значения по оси Y
  int xVal = analogRead(X_PIN); // введение переменной xVal для считывания показаний аналогового значения по оси Х
  float yAngle = yVal * stepSize; // конвертирование выходных данных yVal в угол наклона джойстика (от 0 до 180 градусов)
  float xAngle = xVal * stepSize; // конвертирование выходных данных yVal в угол наклона джойстика (от 0 до 180 градусов)
  boolean isNotClicked = digitalRead(BUTTON_PIN); // считывание информации о клике на джойстик
  Serial.print("Горизонтальный угол = "); // вывод текста
  Serial.println(xAngle); // значение угла по оси X
  Serial.print("Вертикальный угол = ");
  Serial.println(yAngle); // значение угла по оси Y
  if (!isNotClicked)  // если происходит нажатие на джойстик, то выводить текст в монитор порта
  {
    Serial.println("Нажатие джойстика");
  }
  delay(1000); // задержка 1 секунда
}

Скачать файл с кодом, формат .INO: Джойстик

Кронштейн вращающийся

Поворотный кронштейн обеспечивает двухосевое вращение закрепленной на нем камеры или другого оборудования. Обычно такой кронштейн используется с небольшими сервоприводами SG90, MG90, T1211.

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

В наборе для сборки кронштейна также находится комплект крепежа.

Кронштейн в сборе на примере сервоприводов SG90.

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

Лазерный передатчик KY-008

Модуль с лазерным диодом может использоваться в проектах сигнализации, охранных систем и барьеров. Есть возможность изменения яркости свечения лазера. Не допускается питание модуля свыше 5В – это приведет к постепенному выходу лазера из строя.

ВНИМАНИЕ!

Нельзя направлять прямой или отраженный лазерный луч в глаза во избежание получения травм!

Схема подключения лазерного передатчика KY-008

На изображении ниже представлена схема подключения лазерного передатчика.

Код для подключения лазерного передатчика KY-008

В примере ниже показано, как подключить вывод датчика движения HC-SR501 к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).

 #define LASER_MODULE_MODULE 3 // лазер на пин 3

void setup() {
pinMode(LASER_MODULE, OUTPUT); // пин 3 - выход
}

void loop() {
// цикл - мигание 5 раз подряд
for (int i=1; i<=5; i++)
{
digitalWrite(LASER_MODULE, HIGH);
delay(500);
digitalWrite(LASER_MODULE, LOW);
delay(500);
}
delay(3000); // задержка 3 секунды
} 

Скачать файл с кодом, формат .INO: Лазерный передатчик

Плата датчика температуры пороговый

Цифровой датчик температуры с регулируемым порогом полезен для проектов устройств, где важно учитывать отсутствие перегрева или переохлаждения.

В отличие от аналогового датчика, который показывает данные в реальном времени, цифровой выводит в качестве результата 0 или 1, где 1 – это температура ниже пороговой.

Как только установленный порог превышен, на плате датчика загорается индикаторный светодиод.

Схема подключения платы датчика температуры пороговый

На изображении ниже представлена схема подключения платы датчика температуры пороговый.

Код для подключения платы датчика температуры пороговый

В примере ниже показано, как подключить вывод платы датчика температуры пороговый к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).


#define TEMP 3 // датчик на пин 3

void setup() {
pinMode(TEMP, INPUT); // TEMP пин - вход
Serial.begin(9600); // подключение монитора порта
}

void loop() {
int tempValue = digitalRead(TEMP); // считывание цифровых данных
Serial.println(tempValue); // данные в монитор порта
delay(100); // задержка 0.1 секунда
}

Скачать файл с кодом, формат .INO: Цифровой датчик температуры

Фоторезистор

Фоторезистор 5516 может использоваться в проектах, где регистрируется уровень освещения. Позволяет осуществлять проекты по контролю яркости ламп при определенном уровне освещенности. Максимальное напряжение питания фоторезистора 5516 – 150 В (DC), сопротивление 5-10 кОм.

Фоторезистор и резистор можно подключать к питанию любой ножкой, главное – соблюдать последовательность подключения.

Интерпретация показаний датчика в мониторе порта:

  1. 0-200 – сильное освещение;
  2. 200-500 – приглушенное освещение;
  3. 500-800 – сумерки;
  4. 800-1023 – темнота.

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

Фоторезистор прост в подключении, ниже представлен рисунок со схемой подсоединения к контроллеру, в схеме должен присутствовать резистор.

Код подключения для фоторезистора

В примере ниже показано, как подключить вывод фоторезистора к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).


#define PIN_PHOTORESISTOR A0 // определяем пин подключения фоторезистора

void setup() {
Serial.begin(9600); // выведение данных в монитор порта
}

void loop() {
int value = analogRead(PIN_PHOTORESISTOR); // введение переменной с названием value (значение), которое равно значению, получаемому при чтении показаний фоторезистора на пине А0. Нужно, чтобы не использовать выражение с дополнительными скобками в уже существующих скобках.
Serial.println(value); // отображение показаний в мониторе порта
delay(1000); // задержка 1 секунда
}

Скачать файл с кодом, формат .INO: Фоторезистор 5516

Дисплей OLED I2C 128х64, 0.96″

Дисплей OLED – компонент, который часто используется в проектах Arduino. Дисплей достаточно мал, его диагональ составляет всего 0,96 дюйма. Однако, такой дисплей является одним из самых удобных и функциональных среди других дисплеев.

Яркий, экономичный и контрастный OLED дисплей достойно украсит любой проект, особенно когда важны размеры и внешний вид. Контрастность дисплея позволяет уверенно считывать с него информацию даже при очень ярком свете.

Дисплей подключается всего через 4 пина и используется I2C интерфейс. Это значит, что на одну плату контроллера можно подключить сразу несколько таких устройств.

Адрес шины можно выбрать перепайкой перемычки, по умолчанию выбран адрес 0x3c.

Схема подключения дисплея OLED I2C 128х64, 0.96″

На схеме представлено стандартное подключение OLED дисплея к пинам SCL (A5) и SDA (A4) контроллера форм-фактора UNO.

Код для подключения дисплея OLED I2C 128х64, 0.96″

В примере ниже показано, как можно вывести информацию на OLED дисплей. Перед загрузкой кода требуется скачивание библиотеки OLED_I2C.h.

#include "OLED_I2C.h"      // подключение библиотеки
OLED myOLED(SDA, SCL, 8);  // создание объекта myOLED

// подключение шрифтов текста и цифр
extern uint8_t TinyFont[];
extern uint8_t SmallFont[];
extern uint8_t MediumNumbers[];
extern uint8_t BigNumbers[];

void setup() {
  myOLED.begin();  // инициализация экрана
}

void loop() {
  // вывод текста по левому краю
  myOLED.setFont(TinyFont);
  myOLED.print("ABCDEFGHIJKLMNOPQRSTUVWXYZ", LEFT, 10);
  myOLED.update();
  delay(1000);

  // вывод текста по центру
  myOLED.setFont(SmallFont);
  myOLED.print("ABCDEFG", CENTER, 25);
  myOLED.update();
  delay(2000);

  myOLED.clrScr(); // очистка экрана
  myOLED.update();
  myOLED.invert(true); // включение инверсии экрана
  delay(1000);

  // вывод цифр по правому краю
  myOLED.setFont(MediumNumbers);
  myOLED.print("123456789", RIGHT, 5);
  myOLED.update();
  delay(1000);

  // вывод цифр, начиная с 5 пикселя строки
  myOLED.setFont(BigNumbers);
  myOLED.print("123456789", 5, 30);
  myOLED.update();
  delay(2000);

  myOLED.clrScr(); // очистка экрана
  myOLED.update();
  myOLED.invert(false); // отключение инверсии экрана
  delay(1000);
}

Скачать файл с кодом, формат .INO: OLED

Скачать библиотеку для OLED, формат .ZIP: OLED_I2C-master

Шаговый двигатель 28byj-48 с драйвером ULN2003

Униполярный шаговый двигатель 28BYJ-48 со встроенным редуктором и драйвером на микросхеме ULN2003 — это популярный в бытовой технике механизм, его использует в кондиционерах, тепловентиляторах, увлажнителях и в других бытовых устройствах, для обеспечения точного позиционирования выдвижных механизмов. 28BYJ-48 комплектуется платой драйвера, собранной на микросхеме ULN2003. На плате драйвера есть 4 светодиода отображающие на какой из обмоток есть напряжение. Так же на плате можно задействовать неиспользуемые четыре канала по 500 мА для подключения маломощных нагрузок к Arduino. Двигатель легко программируется в среде Ардуино, так же есть способы программно увеличить его мощность.

Схема подключения шагового двигателя 28byj-48 с драйвером ULN2003

На изображении ниже представлена схема подключения шагового двигателя.

Код для подключения шагового двигателя 28byj-48 с драйвером ULN2003

В примере ниже показано, как подключить вывод шагового двигателя 28byj-48 с драйвером ULN2003 к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).


// порты для подключения модуля ULN2003 к Arduino
#define in1 8
#define in2 9
#define in3 10
#define in4 11

int dl = 5; // время задержки между импульсами

void setup() {
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
}

void loop() {
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH);
  delay(dl);

  digitalWrite(in1, HIGH);
  digitalWrite(in2, HIGH);
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
  delay(dl);

  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  delay(dl);

  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, HIGH);
  delay(dl);
}

Скачать файл с кодом, формат .INO: Шаговый двигатель 28byj-48

Датчик звука пороговый с аналоговым выходом KY-037

Модуль датчика звука KY-037, с аналоговым и цифровым выходами. Чем выше уровень шума, тем выше уровень показаний датчика на аналоговым выходе, цифровой выход — выдает 0 или 1 в зависимости от уровня шума. Уровень звука, при котором на цифровом выходе будет высокий сигнал, задается переменным резистором на плате. Благодаря возможности регулировки частоты, можно настроить его работу под любые задачи.

  • A0 — аналоговый выход
  • D0 — цифровой выход
  • VCC — питание модуля (5В)
  • GND — земля

Схема подключения датчика звука порогового с аналоговым выходом KY-037

Ниже на изображении представлена схема подключения датчика звука.

Код для подключения датчика звука порогового с аналоговым выходом KY-037

В примере ниже показано, как подключить вывод датчика звука порогового с аналоговым выходом KY-037 к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).

const int digital = 2; // Цифровой вход пин 2
const int analog = A0; // Аналоговый вход пин A0
 
 
void setup()
{
  pinMode(digital, INPUT);
  Serial.begin(9600);
}
 
void loop()
{
  Serial.print("Digital: ");
  Serial.print(digitalRead(digital)); // Цифровой сигнал с датчика
  Serial.print(", Analog: ");
  Serial.println(analogRead(analog)); // Аналоговый сигнал с датчика
  delay(50);
}

Скачать файл с кодом, формат .INO: Датчик звука ky-037

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

Цифровой датчик температуры и влажности является составным датчиком, который содержит калиброванный цифровой выходной сигнал с показаниями температуры и влажности.

Модуль цифрового датчика DHT-11 — хороший и недорогой вариант для различных робототехнических проектов, где необходимо измерять температуру и/или влажность.

Датчик имеет высокую надежность и превосходную долговременную стабильность работы.

Сенсор включает в себя резистивный компонент измерения влажности и компонент измерения температуры с отрицательным температурным коэффициентом (NTC), которые подключены к высокопроизводительному 8-битному микроконтроллеру.

Подключается посредством трех стандартных проводов. Данные о температуре и влажности передаются по одному сигнальному проводу.

Схема подключения датчика температуры/влажности DHT11

На изображении ниже представлена схема подключения датчика температуры и влажности.

Код для подключения датчика температуры/влажности DHT11

В примере ниже показано, как подключить вывод датчика температуры/влажности DHT11 к монитору последовательного порта платы (вывод можно посмотреть в мониторе порта Arduino IDE).

#include <DHT.h>;      // подключаем библиотеку для датчика
DHT dht(2, DHT11);  // сообщаем на каком порту будет датчик

void setup() {
   dht.begin();                // запускаем датчик DHT11
   Serial.begin(9600);   // подключаем монитор порта
}

void loop() {
   // считываем температуру (t) и влажность (h)
   float h = dht.readHumidity();
   float t = dht.readTemperature();

   // выводим температуру (t) и влажность (h) на монитор порта
   Serial.print("Humidity: ");
   Serial.println(h);
   Serial.print("Temperature: ");
   Serial.println(t);
}

Скачать файл с кодом, формат .INO: Датчик температуры/влажности DHT11

Конденсаторы

Конденсаторы — это пассивные электронные компоненты, назначение которых — сосредоточение, накопление и передача заряда электрического тока.

Конденсаторы бывают разных видов в зависимости от материала из которого они произведены, а также от других характеристик конденсаторов.

В нашем наборе предложены керамические и электролитические конденсаторы различных номиналов.

ХарактеристикаКерамический конденсатор 0.047мкФЭлектролитический конденсатор 22 мкФ, 25ВЭлектролитический конденсатор 4.7 мкФ, 25В
Вид диэлектрикаКерамическая пластинаОксидная пленкаОксидная пленка
Емкость0.047мкФ22 мкФ4.7 мкФ
Рабочее напряжение50 В25 В25 В

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

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

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

Микросхема 555

Микросхема NE555 представляет собой популярный таймер, который используется не только в проектах Arduino, но и повсеместно в электронике. Она предназначена для генерации одиночных и повторяющихся импульсов в генераторах, модуляторах, реле времени, пороговых устройствах и других устройств.

Микросхема имеет 8 выводов, их назначение указано в таблице ниже.

Пин NE555Название пинаНазначение пина
1GNDОбщий пин. Минус питания
2TRIGЗапуск. Когда напряжение на этом выводе становится ниже 1/3 от VCC, на выходе появляется напряжение высокого уровня, начинается отсчёт времени.
3OUTВыход. На этом выводе формируется одно из двух напряжений, примерно соответствующих GND и VCC — 1,5 В, в зависимости от состояния таймера
4RESETСброс (разрешение запуска). При подаче на этот вход напряжения менее 0.7В выход микросхемы принудительно переходит в состояние низкого уровня (переключается на GND). Другими словами, высокий уровень напряжения на данном входе (более 0,7 В) разрешает запуск таймера, в противном случае запуск запрещён
5CTRLУправление (контроль делителя). Подключен напрямую к внутреннему делителю напряжения. При отсутствии внешнего сигнала имеет напряжение 2/3 от VCC. Определяет пороги останова (преднамеренного прерывания работы устройства) и запуска.
6THRОстанов. Когда напряжение на этом выводе превышает напряжение на выводе CTRL, на выходе устанавливается напряжение низкого уровня, интервал заканчивается. Останов возможен, если на вход TRIG не поступает сигнал запуска, так как вход TRIG имеет приоритет над THR
7DISРазряд. Выход типа «открытый коллектор», обычно используется для разрядки времязадающего конденсатора между интервалами. Состояния этого выхода повторяют состояния основного выхода OUT, поэтому возможно их параллельное соединение для увеличения нагрузочной способности таймера по втекающему току.
8VCCПитание. Питание от 4.5 до 18В

Микросхема 4017

Микросхема CD4017 – это счетчик импульсов с встроенным декодером. Микросхема имеет 10 выходов (от 0 до 9); декодер обеспечивает логическую единицу только на одном выходе в любой момент времени. При подаче импульсов на вход, единица последовательно перемещается с одного выхода на другой, а после выхода 9 единица переходит на выход 0.

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

Помимо выходов 0-9 на схеме счетчика присутствуют также следующие пины:

Пин счетчика 4017Назначение
От Q0 до Q9Выходы
VCC, GNDПины питания
CLKСчет
EСброс
MRВыход асинхронного сброса
COВыход переноса. Используется для последовательного подключения счетчиков

Микросхема 74HC08

Микросхема 74HC08 – это одна из микросхем логики, в которой находятся четыре логических элемента И (AND) в одном корпусе. Микросхемы логики используются повсеместно в электронике.

Работу любой логической микросхемы принято описывать с помощью таблицы истинности, в которой указываются все возможные значения входных и переменных и состояния на его выходе. В зависимости от типа логического элемента и его функции значения будут отличаться. Сами по себе логические переменные могут принимать только два значения – логический ноль или логическая единица, которые принято обозначать также «ЛОЖЬ» или «ИСТИНА» соответственно.

Ниже представлена таблица истинности для одного элемента И (AND).

Вход AВход BВыход Y
000
010
100
111

Коробка пластиковая (цветная, съёмные перегородки)

Бокс для хранения модулей и компонентов — это полезная и удобная составляющая нашего набора.

Модули и радиодетали могут быть удобно размещены в коробочке. Бокс плотно закрывается, поэтому детали будет сложно потерять. Коробка состоит из прозрачной крышки, позволяющей видеть содержимое, с замком и основания, которое разделено съемными перегородками на семь больших ячеек для хранения принадлежностей.

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

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

Яркий цвет коробочки привлекает внимание, а в комплекте с компонентами весь набор станет отличным подарком.

Габариты бокса: 280х185х50 мм