Материалы к набору стартовому Arduino малому с платой Arduino-совместимой Uno R3 CH340G

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

Содержание

Описание языка программирования C версия для Arduino

Для новичков в проектировании на контроллерах Arduino мы предлагаем использовать книгу Брайана У. Эванса «Arduino блокнот программиста» в переводе Гололобова В.И (под ред. команды сайта robocraft.ru).

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

Скачать книгу Брайана У. Эванса «Arduino блокнот программиста» в переводе Гололобова В.И (под ред. команды сайта robocraft.ru) по ссылке: https://kb.prog.life/wp-content/uploads/2021/08/arduino_notebook_rus_v1.pdf

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

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

Arduino-совместимая плата на Uno R3 CH340G отличается от классической UNO R3 только другим чипом, контроллирующим USB-мост. При загрузке Arduino-совместимой UNO R3 CH340G может потребоваться ручная установка драйвера, но обычно драйвер устанавливается автоматически на операционные системы Windows 8 и старше.

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

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

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

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

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

Распиновка UNO R3 CH340G

Установка и настройка среды Arduino IDE

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

Или прямо с нашего сайта:

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

При запуске программы откроется следующее окно:

Подключи свою Arduino-совместимую плату с помощью кабеля, нажми в верхней панели кнопку Инструменты и выбери Плата: Arduino/Genuino Uno (для плат Arduino-совместимых UNO R3 и UNO R3 CH340G) или Плата: Arduino/Genuino Mega or Mega 2560 (для плат Arduino-совместимых Mega 2560 или Mega 2560 CH340G). Таким образом выбирается нужная конфигурация для программирования определенного контроллера. Далее следует выбрать порт, к которому будет привязана плата.

По пути Инструменты/Порт выбери COM порт, на котором определилась плата. Например, COM1.

Если плата не выбирается, то скачай и установи драйвер для микросхемы CH340G  – после этого плата будет опознаваться компьютером (драйвер может потребоваться для плат Arduino-совместимых UNO R3 CH340G или MEGA 2560 CH340G).

Драйвер для плат на базе CH340G

driver_ch340_341_arduino

Простейший код Blink

Для того, чтобы первично проверить работоспособность твоей Arduino-совместимой UNO или MEGA, тебе потребуется только подключенная к компьютеру плата и открытая программа ARDUINO IDE.

Через путь Файл/Примеры/01.Basics/Blink ты сможешь перейти в окно кода для проверки работы светодиода на плате.

Данный светодиод есть практически на всех платах Arduino и совместимых версиях, он контролируется константой LED_BUILTIN.

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

// функция setup исполняется один раз при включении платы
void setup() {
  // инициализация цифрового пина LED_BUILTIN в качестве выхода (output).
  pinMode(LED_BUILTIN, OUTPUT);
}

// фнукция loop исполняется в бесконечном цикле
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // включение светодиода (HIGH - это уровнь напряжения на пине)
  delay(1000);                       // ожидание 1 секунда
  digitalWrite(LED_BUILTIN, LOW);    // выключение светодиода
  delay(1000);                       // ожидание 1 секунда
}

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

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

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

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

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

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

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

 

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

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

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

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

 

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

Потенциометр — это регулируемый резистор или переменный резистор (переменное сопротивление). Может использоваться в качестве реостата, но конструктивно имеет в своем составе 3 контакта, что позволяет использовать его в качестве делителя напряжения. Изменение сопротивления происходит при повороте ручки.

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

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

 

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

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

Подключение потенциометра
Подключение потенциометра

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

Код демонстрирует работу светодиода и потенциометра в общей схеме.

 

// даем имена пинов со светодиодом
// и потенциометром

#define led 9
#define pot A0

void setup()

{
// пин со светодиодом - выход
pinMode(led, OUTPUT);

// пин с потенциометром - вход
pinMode(pot, INPUT);
}

void loop()
{
// объявляем переменную x

int x;

// считываем напряжение с потенциометра
// будет получено число от 0 до 1023
// делим его на 4, получится число в диапозоне
// 0-255 (дробная часть будет отброшена)

x = analogRead(pot) / 4;

// выдаем результат на светодиод
analogWrite(led, x);
}

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

Резисторы

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

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

В наших наборах представлены резисторы мощностью 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 В

 

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

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

Подключение светодиода через резистор
Подключение светодиода через резистор

Светодиоды

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

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

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

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

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

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

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

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

Подключение трех светодиодов через резисторы
Подключение трех светодиодов через резисторы

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

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

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

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

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

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

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

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

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

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

Подключение RGB светодиода
Подключение RGB светодиода

Код для подключения светодиода 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

Датчик вибрации SW-18010P

Датчик предназначен для обнаружения колебаний и вибраций, активируется за счет наклона или тряски — достаточно очень незначительного усилия.  По-умолчанию датчик всегда находится в выключенном состоянии (OFF). Обычно такие датчики используются в различных охранных системах, игрушках и др.

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

ХарактеристикаЗначение
МодельSW-18010P
Герметичностьда
Напряжение питания12 В
Рабочее напряжение5 В
Ток0.2 мА
Скорость срабатывания0.2 мс

 

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

Датчик SW-18010P может быть представлен в модульном исполнении, а также в виде отдельного сенсора. В наборе представлен именно сенсор без дополнительной обвязки, поэтому для его подключения в схему требуется резистор 10 кОм.

 

Код для подключения датчика вибрации SW-18010P

В примере ниже показано, как подключить датчик вибрации SW-18010P к плате, срабатывание датчика синхронизировано с включением встроенного светодиода.

#define PIN_LED 13
#define PIN_SENSOR 2 // датчик вибрации подключен на пин 2
void setup() {
  pinMode(PIN_LED, OUTPUT);
}

void loop() {
  int val = digitalRead(PIN_SENSOR); // с датчика считывается информация

  if(val==1){ 
    digitalWrite(PIN_LED, HIGH); // включение встренного светодиода при срабатывании датчика
  }else{
    digitalWrite(PIN_LED, LOW);
  }
}

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

Диод IN4007

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

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

В наборе представлен кремниевый выпрямительный диод 1N4007, который предназначен для преобразования переменного напряжения частотой до 70 кГц.

ХарактеристикаЗначение
Серия1N4007
Максимальное пиковое импульсное обратное напряжение1000 В
Максимальный прямой ток1 А
Максимально допустимый прямой импульсный ток5 А
Постоянное прямое напряжение, не более1.1 В
Постоянный обратный ток, не более5 мкА
Рабочая температура-60 ...+175°С
КорпусDO-41 (DO-204AL)

Зуммер 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: Зуммер

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

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

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

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

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

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

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

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

Подключение серво через конденсатор
Подключение серво через конденсатор

Транзисторы

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

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

Внутри корпуса биполярного транзистора размещается три слоя полупроводника, два из которых расположены по краям и имеют одинаковый тип проводимости (p либо n), это – коллектор и эмиттер. Третий слой расположен между первыми двумя и отличается типом проводимости от своих соседей. Это – база.

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

В наборе представлены два транзистора, в таблицах указаны их подробные характеристики.

Транзистор PNP 2N3906

ХарактеристикаЗначение
Маркировка2N3906
СтруктураPNP
Напряжение коллектор-эмиттер40 В
Напряжение коллектор-база40 В
Напряжение эмиттер-база5 В
Ток коллектора0.2 А
КорпусТО-92

 

Полевой транзистор IRF840

ХарактеристикаЗначение
Напряжение пробоя сток-исток 500 В
Максимальное напряжение затвора20 В
Сопротивление в открытом состоянии0.85 мОм
Ток стока8 А
Заряд затвора63 нКл
Рассеиваемая мощность125 Вт
КорпусTO-220AB

Сдвиговый регистр 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: Сдвиговый регистр

Оптопара 4N35

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

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

  • датчики движения
  • датчики препятствия,
  • датчики положения,
  • энкодеры
  • гальваническая развязка и др.

В нашем наборе представлена оптопара 4N35.

Оптопара 4N35

ХарактеристикаЗначение
Количество каналов1
Напряжение изоляции5 В
Коэффициент передачи по току100%
Время включения/выключения10 мкс
Выходное напряжение30 В
Выходной ток на канал50 мА
Рабочая температура-55 ...+100°С

Кнопка тактовая 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: Тактовая кнопка