Все проекты

Arduino KIT

Стартовый комплект UNO и 37 модулей: перевод, назначение, подключения, 15 скетчей и ИК-передатчик.

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

15 скетчей и инструкции — ZIP
Arduino KIT
UNO R3: справочное фото типовой платы Joy-IT. Внешний вид вашей платы может отличаться.

О проекте

Материалы из ветки «Перевод и использование Arduino»: перевод состава двух наборов, назначение компонентов, подключения к UNO и ИК-передатчик на транзисторе. Количества взяты с фотографий комплектации, а не из предположений о любом наборе.

Это учебные эксперименты с отдельными модулями. Одни и те же пины повторяются в разных примерах: схемы не нужно соединять одновременно. Модель и распиновку конкретного модуля проверяют перед подачей питания.

Стартовый комплект UNO

Справочные фотографии типовых компонентов. Модель, корпус и распиновка вашей партии могут отличаться; подключение проверяйте по маркировке, не по фотографии.

Название на фотоКоличествоДля чего
UNO R3 CH3401Плата для загрузки скетчей и управления входами/выходами.
Sound sensor1Датчик звука: хлопки и относительный уровень сигнала, не шумомер.
DHT111Температура и влажность воздуха.
Soil moisture1Резистивный датчик влажности почвы; нужна калибровка.
Water level1Проводящие дорожки определяют наличие/уровень воды.
7-segment display1Одноразрядный индикатор цифр; проверить общий анод/катод.
74HC5951Сдвиговый регистр: восемь выходов с тремя управляющими линиями.
Active buzzer1Активный зуммер с собственным генератором.
Passive buzzer1Пассивный зуммер для мелодий и tone().
Potentiometer2Регулируемый делитель напряжения для A0.
Breadboard 8301Макетная плата без пайки; проверить разрывы шин питания.
Dupont M/F20Провода «папа–мама» для соединения модулей.
Dupont M/M20Провода «папа–папа» для макетной платы.
USB cable1Питание и загрузка программы; кабель должен передавать данные.
Push button5Кнопки ввода; удобно использовать INPUT_PULLUP.
Tilt switch1Механический датчик наклона.
Photoresistor2Фоторезистор для измерения относительной освещённости.
Thermistor2Терморезистор; для °C нужны характеристики конкретного NTC.
RGB LED1Три цвета в одном корпусе; три отдельных резистора.
LED25Обычные светодиоды; каждый с ограничением тока.
Resistors100Ограничение тока и делители; номинал проверить перед сборкой.

37 модулей: назначение и пины

Справочные фотографии типовых компонентов. Модель, корпус и распиновка вашей партии могут отличаться; подключение проверяйте по маркировке, не по фотографии.

Для модулей, рассчитанных на 5 В: VCC/+ → 5V UNO, GND/− → GND UNO. Таблица указывает сигнальные соединения. Не угадывайте порядок трёх выводов по внешнему виду: он различается. AO — аналоговый выход, DO/OUT — цифровой выход, S — сигнал, IN — управляющий вход.

№ / имя на фотоНазначениеСигнал UNOОсобенностьСкетч
1. JoystickДжойстик: две оси и кнопкаVRx → A0; VRy → A1; SW → D2Кнопка INPUT_PULLUP.joystick
2. FlameДатчик ИК-излучения пламениAO → A0 / DO → D2Не противопожарная сигнализация.analog_input / digital_input
3. RGB LEDСмешение трёх цветовR → D9; G → D10; B → D11По 330 Ом на канал; общий анод требует инверсии.rgb
4. HeartbeatОптический эксперимент с пульсомS → A0Не медицинский прибор; сырой сигнал не равен BPM.analog_input
5. Light CupНаклон и светодиодS → D2; L → D9, если естьПроверить отдельные выводы датчика и LED.digital_input
6. Hall magneticОбнаружение магнитаS/DO → D2Цифровой выход, полярность зависит от платы.digital_input
7. RelayКоммутация низковольтной нагрузкиIN → D7Только готовый модуль с драйвером; без 230 В.relay_safe
8. Linear HallАналоговый магнитный сигналAO/S → A0Без магнита часто около середины шкалы.analog_input
9. SMD RGBRGB на платеR → D9; G → D10; B → D11Проверить резисторы и общий вывод.rgb
10. 7 color flashАвтоматическая смена цветовПо маркировке питанияНе считать вход S логическим; проверить ток и резистор.—
11. Tilt switchНаклонS → D2Контактный датчик может дребезжать.digital_input
12. TEMP18B20Температура DS18B20DATA → D2Подтяжка 4,7 кОм к 5 В, если её нет на модуле.ds18b20
13. Big soundМикрофон и порог хлопкаAO → A0 / DO → D2Это не калиброванные децибелы.analog_input / digital_input
14. TouchДатчик касанияS → D2Уровень покоя зависит от модели.digital_input
15. Two-color LEDДвухцветный светодиодR → D9; G → D10Отдельный резистор каждого канала.rgb, только R/G
16. Laser emitЛазерный излучательПитание через транзисторный ключНе подключать силовой вход к GPIO; не направлять в глаза.—
17. Ball switchШариковый датчик положенияS → D2Проверить контакт и дребезг.digital_input
18. Analog tempNTC с аналоговым выходомAO/S → A0Для °C нужны параметры и схема делителя.analog_input
19. Small soundКомпактный датчик звукаAO → A0 или DO → D2Не соединять AO и DO вместе.analog_input / digital_input
20. Digital tempПорог температуры на компаратореDO → D2Выход 0/1, не цифровое значение °C.digital_input
21. Small two-colorМалый двухцветный LEDR → D9; G → D10Проверить общий анод/катод и резисторы.rgb, только R/G
22. ButtonКнопка на модулеS → D2Для голой кнопки: D2–кнопка–GND, INPUT_PULLUP.button
23. PhotoresistorОсвещённостьAO/S → A0Сырой уровень, не люксы.analog_input
24. IR emissionИК-передатчикУправление → D3Для голого ИК-LED нужен резистор и транзисторный ключ.ir_send_nec
25. TrackingЛиния и отражениеOUT → D2Настроить порог на своей поверхности.digital_input
26. Active buzzerФиксированный звуковой сигналS → D8, для логического входаМощный/голый зуммер — через драйвер, не прямо GPIO.active_buzzer
27. Reed switchГеркон, датчик магнитаS → D2Контактам нужна подтяжка; на модуле может быть.digital_input
28. ShockВибрацияS → D2Короткие импульсы могут пропускаться при опросе.digital_input
29. Temp & humidityDHT11: температура и влажностьDATA → D2Опрос раз в 2 секунды; подтяжка DATA при необходимости.dht11
30. IR receiveПриём команд пультаOUT → D2Проверить напряжение и порядок выводов приёмника.ir_receive
31. AvoidИК-датчик препятствияOUT → D2Отражение зависит от цвета, света и расстояния.digital_input
32. Passive buzzerТоны разной частотыS → D8Проверить допустимый ток; tone() может конфликтовать с IR/PWM.passive_buzzer
33. Mini reedМалый герконS → D2Состояние зависит от магнита.digital_input
34. Rotary encoderПоворот и нажатиеCLK → D2; DT → D3; SW → D4Для устойчивого счёта нужен декодер с подавлением дребезга.encoder_signals
35. Analog HallАналоговый датчик ХоллаAO/S → A0Тип и чувствительность уточнить по маркировке.analog_input
36. TapУдар/стукS → D2Отличать импульс от постоянного уровня.digital_input
37. Light blockingОптопрерывательOUT/S → D2Флажок перекрывает щель датчика.digital_input

Первый запуск UNO

  1. Начните с USB-питания, без внешнего блока и нагрузок. Подключите плату кабелем с передачей данных.
  2. В Arduino IDE выберите Arduino Uno и порт вашей платы. CH340 — USB–последовательный преобразователь; если порт не появился, проверьте кабель и драйвер производителя.
  3. Загрузите встроенный Blink, затем led_blink из архива. Для внешнего LED: D8 → 330 Ом → анод, катод → GND.
  4. Для примеров с Serial откройте монитор порта на 9600 бод. Вход A0 обычно даёт 0–1023; это ещё не градусы, проценты, люксы или BPM.
  5. Меняйте проводку при отключённом питании. Сначала проверьте один модуль, затем собирайте комбинацию с новым распределением пинов.

На входы и линию 5V нельзя подавать 12 В. Этот проект описывает UNO R3 на ATmega328P, не UNO R4 и не ESP32.

Базовые подключения

КомпонентПодключениеПример
ПотенциометрКрайние выводы → 5V и GND; средний движок → A0.analog_input
Кнопка без модуляD2 → кнопка → GND; режим INPUT_PULLUP. Нажатие даёт LOW.button
Фоторезистор5V → LDR → узел A0 → 10 кОм → GND.analog_input
Терморезистор NTC5V → NTC → узел A0 → 10 кОм → GND; °C только после определения R25/B.analog_input
RGB, общий катодКатод → GND; R/G/B через отдельные 330 Ом → D9/D10/D11.rgb
RGB, общий анодАнод → 5V; каналы через отдельные 330 Ом → D9/D10/D11; COMMON_ANODE=true.rgb
Влажность почвы / водаВыход аналогового модуля → A0, питание по маркировке; калибровать сухое/влажное состояние.analog_input
7-сегментный индикаторОпределить общий анод/катод и выводы a–g; отдельный резистор каждого сегмента.Нет универсальной распиновки

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

74HC595 и индикаторы

Вывод 74HC595UNO
16 VCC5V
8 GNDGND
14 SER / DSD11
11 SRCLK / SH_CPD12
12 RCLK / ST_CPD8
10 SRCLR / MR5V
13 OEGND

Между VCC и GND рядом с микросхемой поставьте 100 нФ. Для начального теста используйте один светодиод за раз: QA/QB/… → 1 кОм → анод LED, катод → GND. Скетч shift_register перемещает единственный включённый бит.

74HC595 не силовой драйвер. Соблюдайте ток каждого выхода и суммарный ток по паспорту микросхемы. Для яркого многосегментного дисплея нужен подходящий драйвер, а не уменьшение резисторов наугад. Распиновка 7-сегментного индикатора определяется по его маркировке.

Датчики и библиотеки

Установите через менеджер библиотек Arduino IDE: DHT sensor library by Adafruit и её зависимость Adafruit Unified Sensor; DallasTemperature и OneWire; IRremote для примеров ИК. Остальные примеры используют стандартное ядро Arduino.

  • DHT11: VCC → 5V, GND → GND, DATA → D2. На голом датчике нужна подтяжка DATA согласно его документации; на модуле она часто уже есть. dht11 проверяет ошибку чтения и ждёт 2 секунды.
  • DS18B20: VDD → 5V, GND → GND, DATA → D2, подтяжка DATA 4,7 кОм к 5V при её отсутствии. Не угадывайте выводы TO-92 или цвета проводов.
  • Цифровой датчик температуры с компаратором не DS18B20: он выдаёт только состояние порога.
  • Примеры tone(), PWM и IR запускаются отдельно. Перед объединением проверьте конфликты таймеров для UNO и установленной версии IRremote.

ИК-передатчик и кондиционер

ИК-приёмник: питание по паспорту, GND общий, OUT → D2. Скетч ir_receive показывает распознанные команды обычного пульта. Передатчик ir_send_nec выдаёт учебные данные NEC с D3; это не универсальная команда кондиционера.

Транзисторный ключ для отдельного ИК-светодиода

ОткудаКуда
D3 UNOЧерез 1 кОм → B (база) BC337
B BC337Через 10 кОм → E (эмиттер)
E BC337GND UNO и минус питания
C BC337Катод ИК-светодиода
+5VЧерез рассчитанный резистор R → анод ИК-светодиода

BC337 и дополнительные резисторы не подтверждены в составе набора: их может понадобиться приобрести отдельно. Проверьте выводы B/C/E по паспорту именно своего транзистора. Не определяйте их только по плоской стороне корпуса.

R = (5 В − Vf светодиода − VCE транзистора) / выбранный ток. Например, при Vf=1,2 В, VCE≈0,2 В и токе 20 мА расчёт даёт 180 Ом. Это пример расчёта, не характеристика неизвестного LED: ток, импульсы и номинал обязательно сверяют с его паспортом. Резистор не убирать; для двух LED нужны отдельные ветви с резисторами. Дальность зависит от излучателя, направления, приёмника и тока и здесь не проверена.

Почему нельзя просто послать NEC на кондиционер

Многие кондиционеры передают полное состояние — температуру, режим, скорость и другие поля. Нужны точные марка/модель, поддерживаемый протокол либо корректно записанный сигнал, подходящая несущая и достаточная память. IRremoteESP8266 предназначена для ESP8266/ESP32, не для UNO. Для реального кондиционера сначала проверяют поддержку модели в библиотеке; готовой прошивки для неизвестной модели здесь нет. ИК-управление не требует вскрывать сетевую часть кондиционера.

15 примеров скетчей

В архиве 15 независимых скетчей. Открывайте файл .ino из одноимённой папки, выбирайте UNO. Не загружайте все примеры как вкладки одного скетча.

led_blink

Внешний LED с 330 Ом, D8.

const byte LED_PIN = 8;
void setup() { pinMode(LED_PIN, OUTPUT); }
void loop() {
  digitalWrite(LED_PIN, HIGH); delay(500);
  digitalWrite(LED_PIN, LOW); delay(500);
}
analog_input

A0: потенциометр, аналоговый выход или делитель.

void setup() { Serial.begin(9600); }
void loop() {
  Serial.println(analogRead(A0));
  delay(100);
}
digital_input

D2: цифровой выход готового модуля. Для сухого контакта нужна подтяжка.

void setup() {
  Serial.begin(9600);
  pinMode(2, INPUT); // Powered module output, not a floating contact.
}
void loop() {
  Serial.println(digitalRead(2));
  delay(50);
}
button

Кнопка D2–GND, внутренняя подтяжка.

void setup() { Serial.begin(9600); pinMode(2, INPUT_PULLUP); }
void loop() {
  Serial.println(digitalRead(2) == LOW ? "PRESSED" : "RELEASED");
  delay(50);
}
joystick

Оси A0/A1, кнопка D2.

void setup() { Serial.begin(9600); pinMode(2, INPUT_PULLUP); }
void loop() {
  Serial.print(analogRead(A0)); Serial.print('	');
  Serial.print(analogRead(A1)); Serial.print('	');
  Serial.println(digitalRead(2)); delay(100);
}
rgb

Три отдельных резистора; вариант общего анода выбирается константой.

const bool COMMON_ANODE = false;
void channel(byte pin, byte value) {
  analogWrite(pin, COMMON_ANODE ? 255 - value : value);
}
void setup() { pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); }
void loop() {
  channel(9,255); channel(10,0); channel(11,0); delay(800);
  channel(9,0); channel(10,255); channel(11,0); delay(800);
  channel(9,0); channel(10,0); channel(11,255); delay(800);
}
active_buzzer

Только логический вход модуля с драйвером.

// For a module with a logic input and a driver only.
const byte BUZZER = 8;
const bool ACTIVE_LOW = false;
void setup() {
  digitalWrite(BUZZER, ACTIVE_LOW ? HIGH : LOW);
  pinMode(BUZZER, OUTPUT);
}
void loop() {
  digitalWrite(BUZZER, ACTIVE_LOW ? LOW : HIGH); delay(100);
  digitalWrite(BUZZER, ACTIVE_LOW ? HIGH : LOW); delay(1900);
}
passive_buzzer

Пассивный зуммер допустимого тока на D8.

void setup() { pinMode(8, OUTPUT); }
void loop() {
  tone(8, 1000); delay(200);
  noTone(8); delay(1800);
}
relay_safe

Модуль реле на D7 без нагрузки; пример оставляет его выключенным.

// No load connected. Confirm module polarity before power-up.
const byte RELAY_PIN = 7;
const bool ACTIVE_LOW = true;
void setup() {
  digitalWrite(RELAY_PIN, ACTIVE_LOW ? HIGH : LOW);
  pinMode(RELAY_PIN, OUTPUT);
}
void loop() {} // This example leaves the relay OFF, it does not switch a load.
encoder_signals

Сырые CLK/DT/SW, не готовый счётчик оборотов.

// Raw signals only, not a debounced rotation counter.
void setup() {
  Serial.begin(9600);
  pinMode(2, INPUT_PULLUP); pinMode(3, INPUT_PULLUP); pinMode(4, INPUT_PULLUP);
}
void loop() {
  Serial.print(digitalRead(2)); Serial.print('	');
  Serial.print(digitalRead(3)); Serial.print('	');
  Serial.println(digitalRead(4)); delay(20);
}
shift_register

74HC595: только один LED за раз, по 1 кОм.

const byte DATA_PIN = 11, CLOCK_PIN = 12, LATCH_PIN = 8;
void setup() {
  pinMode(DATA_PIN, OUTPUT); pinMode(CLOCK_PIN, OUTPUT); pinMode(LATCH_PIN, OUTPUT);
}
void loop() {
  for (byte bit = 0; bit < 8; bit++) {
    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, byte(1U << bit));
    digitalWrite(LATCH_PIN, HIGH); delay(300);
  }
}
dht11

DHT11 и Adafruit DHT/Unified Sensor.

#include <DHT.h>
DHT dht(2, DHT11);
void setup() { Serial.begin(9600); dht.begin(); }
void loop() {
  delay(2000);
  float humidity = dht.readHumidity(), temperature = dht.readTemperature();
  if (isnan(humidity) || isnan(temperature)) { Serial.println("DHT read failed"); return; }
  Serial.print(temperature); Serial.print(" C; ");
  Serial.print(humidity); Serial.println(" %");
}
ds18b20

DS18B20 и OneWire/DallasTemperature.

#include <OneWire.h>
#include <DallasTemperature.h>
OneWire bus(2);
DallasTemperature sensors(&bus);
void setup() { Serial.begin(9600); sensors.begin(); }
void loop() {
  sensors.requestTemperatures();
  float value = sensors.getTempCByIndex(0);
  if (value == DEVICE_DISCONNECTED_C) Serial.println("Sensor disconnected");
  else { Serial.print(value); Serial.println(" C"); }
  delay(1000);
}
ir_receive

IRremote, OUT приёмника D2.

#include <IRremote.hpp>
void setup() { Serial.begin(9600); IrReceiver.begin(2, DISABLE_LED_FEEDBACK); }
void loop() {
  if (IrReceiver.decode()) {
    IrReceiver.printIRResultShort(&Serial);
    IrReceiver.resume();
  }
}
ir_send_nec

IRremote, D3 через ключ; только учебная команда NEC.

#define IR_SEND_PIN 3
#include <IRremote.hpp>
void setup() { IrSender.begin(); }
void loop() {
  IrSender.sendNEC(0x00, 0x45, 0); // Test data, NOT an arbitrary AC command.
  delay(3000);
}

Ограничения и проверка

  • Реле: только низковольтные учебные нагрузки. Не подключайте сеть 230 В к макетной плате. Голая катушка не подключается напрямую к пину.
  • GPIO — сигнал управления, не источник питания двигателя, лазера или мощного зуммера. Для нагрузки нужен подходящий драйвер и общий GND.
  • Лазер нельзя направлять в глаза, людей и зеркальные поверхности. Не включайте неизвестный модуль без проверки питания и тока.
  • Flame и Heartbeat не заменяют сертифицированный пожарный/медицинский прибор.
  • Датчики Холла могут считать импульсы, но вычисление RPM требует числа магнитов и периода измерения. Не закрепляйте незакреплённые/несбалансированные магниты на быстром вентиляторе.
  • На фотографиях нет точной распиновки каждой платы. Пины, активный уровень, напряжение, номиналы и библиотеки проверяют для своей комплектации.

Материалы подготовлены по ветке; физическая проверка всех 37 модулей и управления кондиционером не заявляется. Подтверждение работы предыдущего стробоскопа к Arduino KIT не относится.

Источники

Основа: ветка «Перевод и использование Arduino» и две фотографии комплектации. Совместимость плат и библиотек сверена с документацией разработчиков 10 октября 2026 года.

Скачать материалы

15 скетчей и инструкции — ZIPb5788446883746bc8d759213b5225802-arduino-kit-v1.zip
Скачать