Вы здесь:
Главная » Новое на сайте » Ардуино — набор для творчества!

Ардуино — набор для творчества!

Ардуино - набор для творчества!Всё большую популярность набирают программируемые схемы. Одна программируемая микросхема заменяет кучу микросхем простой логики и операционных усилителей. Одним из таких наборов является набор ARDUINO.

На плате ARDUINO можно сделать множество различных схем: от простых мигалок и пищалок до часов и металлоискателей!

Наборы ARDUINO тоже бывают разные. Рассмотрим один из них — UNO R3. Его можно купить на одном из китайских магазинов, например GEARBEST. Подробнее в конце статьи.

В набор входит:

  • Arduino UNO R3 — основная плата с программируемым микроконтроллером;
  • Микросхема SN74HC595N — сдвиговый регистр для подключения семисегментного индикатора;
  • Плата макетная (breadboard) — для сборки схем без паяльника;
  • USB кабель, соединяющий плату с компьютером;
  • Провода с щупами для соединения элементов схемы и подключения их с основной платой;
  • Резисторы — постоянные и переменное сопротивления;
  • Терморезисторы — радиоэлементы, изменяющие свое сопротивление в зависимости от температуры;
  • Светодиоды — светоизлучающие разноцветные диоды;
  • Семисегментные индикаторы;
  • Фоторезисторы — резисторы,  изменяющие свое сопротивление в зависимости от освещенности;
  • звукоизлучатели;
  • ик-пульт
  • кнопки.

Комплектация может отличаться.

Можно докупать различные модули, элементы, платы…

Ардуино - набор для творчества!

Немного о самой плате UNO R3

Ардуино - набор для творчества!

Самое главное на этой плате — это микроконтроллер ATmega328 (1), в который и будут записываться программные коды. Они называются — скетчи.

USB разъем (2) через который мы будем подключать плату к компьютеру.

В версии же UNO R3 USB-UART переходник реализован программно на контроллере ATmega16U2 (3), что позволяет определять плату как клавиатуру, мышь и т.д.

К достоинствам данной платы можно отнести возможность питания как от USB так и от внешнего источника подключаемому к разъему внешнего питания (4).

Для защиты порта USB (на стороне компьютера) установлен предохранитель (5)  на 500мА.

Выбор источника питания производится автоматически в пользу внешнего благодаря связке полевого транзистора (6) и операционного усилителя (7).

Диод (8) служит для защиты от переполюсовки при неправильном подключении внешнего питания.

Для работы контроллера необходимы стабильные 5 Вольт. Их мы получим пропустив входное напряжение лежащее в пределах от 6 до 12 вольт через стабилизатор (9).

Также на плате установлен дополнительно стабилизатор на 3,3 Вольта (10).

Конденсаторы (11) служат для сглаживания пульсаций (фильтрации) выходного напряжения стабилизатора.

Кварцевый резонатор (12) задает частоту работы микроконтроллера, в нашем случае 16 мГц.

Кнопка (13) служит для сброса контроллера (перезагрузки, reset).

Для возможности заливки либо обновления прошивки на плату выведены ICSP разъемы. Для прошивки ATmega16U2 (14)ATmega328 (15).

Для индикации работы Arduino на плате установлены 4 светодиода. «ON» символизирует подачу питания на плату, зажигание «TX» светодиода свидетельствует о том что контроллер что-то передает по интерфейсу UART, а зажигание светодиод «RX» символизирует что принимает. Так же на плате установлен светодиод «L» подключенный к 13 пину — для контроля подключения контроллера.

ШАГ 1. Подключение платы ARDUINO к компьютеру.

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

После установки драйвера. Он находится в папке drivers.

Затем смотрим какой порт (COM) присвоен вашей плате в диспетчере устройств в свойствах компьютера.

Ардуино - набор для творчества!

У меня это COM3. У Вас может быть другой.

Затем этот же порт устанавливаем в настройках программы ARDUINO.

Ардуино - набор для творчества!

ШАГ 2. Мигающий светодиод.

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

Принципиальная схема.

Ардуино - набор для творчества!

Монтажная схема.

Ардуино - набор для творчества!

СКЕТЧ

Копируем нижеприведённый код в программу ARDUINO и загружаем его в плату.
void setup()
{
// настраиваем пин №13 в режим выхода,
// т.е. в режим источника напряжения
pinMode(13, OUTPUT);
}
void loop()
{
// подаём на пин 13 «высокий сигнал» (англ. «high»), т.е.
// выдаём 5 вольт. Через светодиод побежит ток.
// Это заставит его светиться
digitalWrite(13, HIGH);
// задерживаем (англ. «delay») микроконтроллер в этом
// состоянии на 100 миллисекунд
delay(100);
// подаём на пин 13 «низкий сигнал» (англ. «low»), т.е.
// выдаём 0 вольт или, точнее, приравниваем пин 13 к земле.
// В результате светодиод погаснет
digitalWrite(13, LOW);
// замираем в этом состоянии на 900 миллисекунд
delay(900);
// после «размораживания» loop сразу же начнёт исполняться
// вновь, и со стороны это будет выглядеть так, будто
// светодиод мигает раз в 100 мс + 900 мс = 1000 мс = 1 сек
}

Можете попробовать изменить частоту мигания светодиодов, подбирая цифры 100 и 900.
Можно использовать любой (красный, синий…) светодиод.

Фото собранной платы

Ардуино - набор для творчества!

ШАГ 3. Генератор управляемый светом.

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

Обратите внимание: резистор в этой схеме не 220 Ом, а 10 кОм.

Принципиальная схема.

Ардуино - набор для творчества!

Монтажная схема.

Ардуино - набор для творчества!

СКЕТЧ

Копируем нижеприведённый код в программу ARDUINO и загружаем его в плату.
// даём имена для пинов с пьезопищалкой (англ. buzzer) и фото-
// резистором (англ. Light Dependent Resistor или просто LDR)
#define BUZZER_PIN 3
#define LDR_PIN A0
void setup()
{
// пин с пьезопищалкой — выход...
pinMode(BUZZER_PIN, OUTPUT);
// ...а все остальные пины являются входами изначально,
// всякий раз при подаче питания или сбросе микроконтроллера.
// Поэтому, на самом деле, нам совершенно необязательно
// настраивать LDR_PIN в режим входа: он и так им является
}
void loop()
{
int val, frequency;
// считываем уровень освещённости так же, как для
// потенциометра: в виде значения от 0 до 1023.
val = analogRead(LDR_PIN);
// рассчитываем частоту звучания пищалки в герцах (ноту),
// используя функцию проекции (англ. map). Она отображает
// значение из одного диапазона на другой, строя пропорцию.
// В нашем случае [0; 1023] -> [3500; 4500]. Так мы получим
// частоту от 3,5 до 4,5 кГц.
frequency = map(val, 0, 1023, 3500, 4500);
// заставляем пин с пищалкой «вибрировать», т.е. звучать
// (англ. tone) на заданной частоте 20 миллисекунд. При
// cледующих проходах loop, tone будет вызван снова и снова,
// и на деле мы услышим непрерывный звук тональностью, которая
// зависит от количества света, попадающего на фоторезистор
tone(BUZZER_PIN, frequency, 20);
}

Подробнее о коде:

  • Благодаря тому, что в начале программы мы определили FIRST_KEY_PIN и KEY_COUNT, мы можем подключать произвольное количество кнопок к любым идущим друг за другом цифровым пинам, и для корректировки программы нам не придется менять параметры цикла for.
  • Изменить понадобится лишь эти константы:
    • цикл в любом случае пробегает от 0 до KEY_COUNT;
    • перед считыванием порта мы задаем смещение на номер первого используемого порта — FIRST_KEY_PIN.
  • Функция digitalRead(pin) возвращает состояние порта, номер которого передан ей параметром pin. Это может быть состояние HIGH или LOW. Или, выражаясь иначе: высокое напряжение или низкое, 1 или 0, true или false
  • Поскольку мы получаем с порта одно из двух состояний, мы сохраняем его в переменную уже знакомого нам типа boolean, и можем работать с ней как с логическим значением.
  • Мы используем логический оператор отрицания «не» ! Если keyUp имеет значение 0, выражение !keyUp будет иметь значение 1 и наоборот.
  • Поскольку мы собрали схему с подтягивающим резистором, при нажатии кнопки мы будем получать на соответствующем порте 0.
  • Действия, описанные в условном выражении if, выполняются, когда его условие имеет значение «истина» (единица). Поэтому для выполнения действия по нажатию, мы инвертируем сигнал с кнопки.

Фото собранной платы

Ардуино - набор для творчества!

ШАГ 4. Электронное пианино.

С помощью нескольких кнопок и пищалки мы сейчас сделаем электронное пианино.

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

Проверьте работу кнопок мультиметром.

Принципиальная схема.

Ардуино - набор для творчества!

Монтажная схема.

Ардуино - набор для творчества!

СКЕТЧ

Копируем нижеприведённый код в программу ARDUINO и загружаем его в плату.
#define BUZZER_PIN 13 // пин с пищалкой (англ. «buzzer»)
#define FIRST_KEY_PIN 7 // первый пин с клавишей (англ. «key»)
#define KEY_COUNT 3 // общее количество клавиш
void setup()
{
pinMode(BUZZER_PIN, OUTPUT);
}
void loop()
{
// в цикле бежим по всем номерам кнопок от 0-го по 2-й
for (int i = 0; i < KEY_COUNT; ++i)
{
// на основе номера кнопки вычисляем номер её пина
int keyPin = i + FIRST_KEY_PIN;
// считываем значение с кнопки. Возможны всего 2 варианта:
// * высокий сигнал, 5 вольт, истина — кнопка отпущена
// * низкий сигнал, земля, ложь — кнопка зажата
boolean keyUp = digitalRead(keyPin);
// проверяем условие «если не кнопка отпущена». Знак «!»
// перед булевой переменной означает отрицание, т.е. «не».
if (!keyUp)
{
// рассчитываем высоту ноты в герцах в зависимости от
// клавиши, которую рассматриваем на данном этапе цикла.
// Мы получим значение 3500, 4000 или 4500
int frequency = 3500 + i * 500;
// Заставляем пищалку пищать с нужной частотой в течение
// 20 миллисекунд. Если клавиша останется зажатой, пищалка
// вновь зазвучит при следующем проходе loop, а мы услышим
// непрерывный звук
tone(BUZZER_PIN, frequency, 20);
}
}
}

Подбором цифр в коде можно изменять тональность генератора.

Фото собранной платы

Ардуино - набор для творчества!

ШАГ 5. Цифровой секундомер.

С помощью подключенного семисегментного индикатора произведём отсчет времени от 0 до 9

Принципиальная схема.

Ардуино - набор для творчества!

Обратите внимание на семисегментный индикатор. Семисегментный, потому что в нём семь сегментов, из которых можно зажечь любую от 0 до 9 цифру. Каждый сегмент — это светодиод, который подключается через резистор 220 Ом.

Выв. № 5 — это точка. Выв. № 3 и 8 — это общий для всех сегментов.

Монтажная схема.

Ардуино - набор для творчества!

СКЕТЧ

Копируем нижеприведённый код в программу ARDUINO и загружаем его в плату.
#define FIRST_SEGMENT_PIN 2
#define SEGMENT_COUNT 7
// префикс «0b» означает, что целое число за ним записано в
// в двоичном коде. Единицами мы обозначим номера сегментов
// индикатора, которые должны быть включены для отображения
// арабской цифры. Всего цифр 10, поэтому в массиве 10 чисел.
// Нам достаточно всего байта (англ. byte, 8 бит) для хранения
// комбинации сегментов для каждой из цифр.
byte numberSegments[10] = {
0b00111111, 0b00001010, 0b01011101, 0b01011110, 0b01101010,
0b01110110, 0b01110111, 0b00011010, 0b01111111, 0b01111110,
};
void setup()
{
for (int i = 0; i < SEGMENT_COUNT; ++i)
pinMode(i + FIRST_SEGMENT_PIN, OUTPUT);
}
void loop()
{
// определяем число, которое собираемся отображать. Пусть им
// будет номер текущей секунды, зацикленный на десятке
int number = (millis() / 1000) % 10;
// получаем код, в котором зашифрована арабская цифра
int mask = numberSegments[number];
// для каждого из 7 сегментов индикатора...
for (int i = 0; i < SEGMENT_COUNT; ++i) {
// ...определяем: должен ли он быть включён. Для этого
// считываем бит (англ. read bit), соответствующий текущему
// сегменту «i». Истина — он установлен (1), ложь — нет (0)
boolean enableSegment = bitRead(mask, i);
// включаем/выключаем сегмент на основе полученного значения
digitalWrite(i + FIRST_SEGMENT_PIN, enableSegment);
}
}

Фото собранной платы

Ардуино - набор для творчества!

В следующих статьях мы продолжим знакомство с набором для начинающих радиолюбителей — АРДУИНО! Будем собирать более сложные схемы.

Следите за обновлениями!

Вы можете купить этот набор можете на одном из крупных китайских интернет-магазинов, например GEARBEST.

(Как проще покупать товар в Китае писалось в этой статье. )

скидки  в GearBest

Группа Gearbest.com — инструменты и электроника в ВК.






ПОДЕЛИТЕСЬ С ДРУЗЬЯМИ:


Популярность: 1 237 просм.
Вы можете следить за комментариями к этой записи через RSS 2.0. Вы можете оставить комментарий:.

Ваш комментарий


Прислать свою поделку!

А ТАКЖЕ ЕЩЁ ИНТЕРЕСНОЕ:



MasterVintik