Программирование Arduino с помощью ISP программатора


1ЗагрузкаArduino IDE

Загрузите среду разработки для Ардуино (Arduino IDE) с официального сайта для своей операционной системы (поддерживаются ОС Windows, Mac OS X, Linux). Можете выбрать установщик (Installer), можете архив (ZIP file for non admin install). Во втором случае программа просто запускается из папки, без установки. Скачанный файл содержит кроме среды разработки также драйверы для плат семейства Arduino.


Загружаем среду разработки Arduino IDE с официального сайта

Arduino для начинающих — стартовый набор или как начать ардуинить? Много фото и видео!

Наверное, многие слышали о такой замечательной платформе, но из-за плохого знания электроники или программирования многие решат обойти arduino стороной. Да платформа достаточно сложная, но разобраться можно, главное желание. Я сам долго не решался изучить данную платформу, но в один прекрасный день, понял, что она бы могла облегчить мне жизнь… В интернете очень много информации об arduino, но без практики никакая теория не поможет, по этому я решил купить данный набор, но забегу вперед, что все таки дешевле все компоненты купить самостоятельно, не набором, а архивы с инструкциями и программами (скетчами) я выложил ниже. Почему я взял данный набор, ведь выбора в Китае много? Раньше ардуино было для меня как что-то заоблачное и не понятное и выбирал только из-за количества уроков, по этому и выбрал данный набор, кстати подобный набор уже обозревал drawde. Покупал я напрямую с тао: Набор пришел в пластиковом кейсе, заклеенном скотчем, видимо что бы ничего не вытащили из коробки (скотч я уже порвал):

Что же там в коробке?

Комплектация:


— 1х плата arduino uno, возможно даже оригинал — 1х LCD дисплей 16 символами на 2 строки с i2c платой


— 15х светодиодов: 5 шт. красного цвета, 5 шт. синего цвета и 5 шт. оранжевого цвета — 3х фоторезистора — 1х ИК приемник — 1х датчик пламени — 2х датчика вибрации — 1х термодатчик — 4х кнопки — 2х пьезоэлемента


— цифровой светодиодный дисплей на 1 цифру — цифровой светодиодный дисплей на 4 цифры — светодиодная матрица 8х8


— 8х постоянный резистор на 220 Ом — 5х постоянный резистор на 1 кОм — 5х постоянный резистор на 10 кОм — 1х резистор переменного сопротивления(потенциометр) на 50 кОм


— 1х большая макетная площадка


— 1x DuPont кабель мама-папа 30 разноцветных проводов


— 30х соединительных проводов для макетной площадки папа-папа


— 1х USB кабель


— 1х RFID плата — 1х RFID карта — 1х RFID на ключи


— 1x ИК пульт — 1x микрофонный модуль — 1x модель кнопочной площадка 4х4 — 1x реле — 1x модуль часов — 1x модуль драйвера для мотора — 1x модуль датчика температуры и влажности — 1x модуль джойстика — 1x модуль RGB светодиода — 1x модуль датчика влажности — 1x кабель питания для кроны


— 1x сервопривод — 1x мотор с редуктором — 1x сдвиговый регистр 74НС595N Вот так выглядит все в сборе:

Когда я получил набор, то сразу принялся искать инструкции, но внутри коробки ничего не обнаружил, подумал, что китаец обманул и уже хотел с ним ругаться, но почитал описание лота и там была ссылка со всеми инструкциями и программами: yunpan.cn/cFWkif3FY3cgk (пароль:22cd) Но китайскими программами лучше не пользоваться, по тому программу для программирования arduino лучше скачать с официального сайта: arduino.cc/en/Main/Software А вот тут собраны мной инструкции, программы, скетчи найденные в интернете и мои скетчи, которые пригодились в освоении arduino.

Начало

Рекомендую для начала прочитать pdf книгу на русском языке: Руководство по освоению Arduino — 2012, которая лежит на моей сборке. Там много полезного написано и понятным языком, только мало уроков. В архиве Modkit_Desktop_WIN32_Kickstarter_v2.zip
находится программа для визуального программирования. В архиве
Arduino — китайщина.rar
находится китайская инструкция, китайские скетчи, библиотеки, но там много ошибок. В архиве
Arduino — программа.rar
находится программа arduino с библиотеками, которые мне пригодились в освоении ардуино. В архиве
arduino-master — много уроков.zip
имеется достаточно много уроков, схем, библиотек с хорошим описанием на англ. Причем большую часть из этого архива «стянуто» китайцами. В архиве
Мои скетчи.rar
находятся мои проекты, хоть их и 34, но не все китайские уроки я выполнял, некоторые подправлял и самый последний проект я сделал самостоятельно. Номера моих скетчей не совпадают с номерами обозреваемых уроков, но все мои скетчи подписаны в транслите и думаю всем будет понятно.
Начинаем!

Урок №1 — мигание светодиода

Для этого урока нам понадобятся вот такие детали:
— 2 провода (далее количество проводов я указывать не буду), — светодиод, — резистор на 220Ом, — макетная площадка и плата arduino uno
Подключаем:

И получаем:

Урок №2 — подключение 8 светодиодов — бегущие огни

Для этого урока нужно:
— 8 светодиодов, — 8 резисторов на 220 Ом, — провода, макетная площадка и arduino Я немного не правильно подключил, поставил 1 резистор на массу и подвел ко всем светодиодам:

Результат:

Урок №3 — изменение яркости светодиода с помощью переменного резистора

Нам нужно:
— светодиод, — переменный резистор, — резистор на 220Ом, — провода, макетная площадка и arduino


Решил в этот раз не подключать резистор к светодиоду, но если подключать «на постоянку», то сопротивление на светодиод нужно поставить, иначе светодиод сгорит быстро.

Результат:

Урок №4 — бегущие огни из 6 светодиодов

Необходимо:
— 6 светодиодов, — резистор на 220Ом — провода, макетная площадка и arduino

Получилось так:

Результат:

Урок №5 — подключение RGB светодиода

Понадобится:
— модуль RGB — провода, макетная площадка и arduino
Получилось так:

Результат:

Урок №6 — подключение пьезоэлемента

Детали:
— пьезоэлемент — провода, макетная площадка и arduino

Получилось так:

Результат:
С музыкой:

Урок №8 — включение светодиода с кнопки

Детали: — кнопка — светодиод — резисторы на 220 Ом и 10 кОм — провода, макетная площадка и arduino Получилось так:

Результат:

Урок №8.1 — вкл/выкл. светодиода с кнопки

Детали:
— светодиод — 2 кнопки — резистор на 220 Ом — 2 резистора на 10кОм — провода, макетная площадка и arduino

Получилось так

Результат:

Урок №8.2 — изменение яркости светодиода с кнопки

Схема подключения идентична уроку 8.1, только скетч другой и результат:

Урок №9 — сервопривод

Детали:
— сервопривод — провода, макетная площадка и arduino

Получилось так:Результат:

Урок №10 — подключение сдвигового регистра 74HC595

Детали:
— 8 светодиодов — сдвиговый регистр 74HC595 — 8 резисторов на 220 Ом — провода, макетная площадка и arduino

Получилось так:

Урок №11 — изменение яркости светодиода с помощью фоторезитора

Детали:
— фоторезитор — светодиод — резитор на 220 Ом и на 10кОм — провода, макетная площадка и arduino

Получилось так:

Результат:

Урок №12 — вольтметр

Детали:
— батарейка — резистор 10 кОм — провода, макетная площадка и arduino
Получилось так:

Результат отображается в «мониторе протра»:

Урок №13 — измерение температуры

Детали:
— датчик температуры — провода, макетная площадка и arduino
Получилось так:Результат отображается в «мониторе протра»:

Если нагреть датчик зажигалкой, температура изменяется:

Урок №13.1 — изменение температуры — визуальное отображение

Детали:
— датчик температуры — 3 светодиода — резистора 220 Ом — провода, макетная площадка и arduino
Получилось так:Результат:

Урок №14 — подключение цифрового светодиодного дисплея

Детали:
— 6 резистров 220 Ом — цифровой светодиодный дисплей — провода, макетная площадка и arduino
Получилось так:

Результат китайского скетча:
Результат моего переделанного скетча:

Урок №14 — подключение цифрового светодиодного дисплея на 4 цифры

Детали:
— светодиодная панель на 4 цифры — провода, макетная площадка и arduino
Получилось так:

Результат — секундомер:

Урок №15 — подключение светодиодной матрицы 8х8

Детали:
— светодиодная матрица 8х8 — провода и arduino
Получилось так:

Результат моего скетча:

Урок №16 — подключение датчика влажности

Детали:
— датчик влажности — светодиод (я подключил RGB модуль к 1 светодиоду) — провода и arduino
Получилось так:

Результат:

Урок №17 — измерение температуры и влажности

Детали:
— датчик влажности и температуры — провода и arduino
Получилось так:Результат отображается в «мониторе протра»:

Урок №18 — подключение модуля реле

Детали:
— модуль реле — светодиод — резистор на 220Ом — провода, макетная площадка и arduino
Получилось так:Результат:

Урок №19 — подключение LCD дисплея 16х2

Детали:
— дисплей LCD1602 — провода и arduino
Получилось так:Результат:

Урок №20 — подключение двигателя

Детали:
— модуль драйвера для мотора — мотор с редуктором — провода и arduino
Получилось так:

Результат:

Урок №21 — Включение/выключение светодидодов с помощью пульта

Детали:
— ИК пульт — ИК приемник — 6 светодиодов — 6 резисторов 220Ом — провода, макетная площадка и arduino

Получилось так:

Результат:

Урок №22 — Подключение джойстика

Детали:
— джойстик — провода и arduino
Результат отображается в «мониторе протра»:

Урок №23 — Подключение клавиатуры 4х4

Детали:
— клавиатура — провода и arduino
Результат отображается в «мониторе протра»:

Урок №24 — Подключение RFID

Детали:
— модуль RFID — провода и arduino
Получилось так:Результат отображается в «мониторе протра» — чтение дампа карты:Результат отображается в «мониторе протра» — чтение брелка:

Результат отображается в «мониторе протра» — пытался прочитать УЭК, банковсвкую карту с payWave и транспортную карту:

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

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

Домашнее задание — цифровой термометр

Детали:
— датчик температуры — LCD дисплей — провода, макетная площадка и arduino
Получлось так:


Осталось самое сложное объединить 2 скетча и еще что бы все это работало, получился вот такой скетч: Цифровой термометр

#include #include LiquidCrystal_I2C lcd(0x27,16,2); int potPin = 0; // пин куда подключен датчик float dat = 0; // переменная для температуры void setup() { lcd.init(); lcd.backlight(); lcd.begin(16, 2); lcd.print(«S»); delay(300); lcd.print(«p»); delay(300); lcd.print(«e»); delay(300); lcd.print(«c»); delay(300); lcd.print(«i»); delay(300); lcd.print(«a»); delay(300); lcd.print(«l»); delay(300); lcd.print(«l»); delay(300); // ждем 0.5 секунды lcd.print(«y»); delay(300); // ждем 0.5 секунды lcd.print(» f»); delay(300); // ждем 1 секунду lcd.print(«o»); delay(300); // ждем 1 секунду lcd.print(«r»); delay(700); lcd.setCursor(0, 1); lcd.print(«h»); delay(300); lcd.print(«t»); delay(300); lcd.print(«t»); delay(300); lcd.print(«p»); delay(300); lcd.print(«:»); delay(300); lcd.print(«/»); delay(300); lcd.print(«/»); delay(300); lcd.print(«m»); delay(300); lcd.print(«y»); delay(300); lcd.print(«s»); delay(300); lcd.print(«k»); delay(300); lcd.print(«u»); delay(300); lcd.print(«.»); delay(300); lcd.print(«r»); delay(300); lcd.print(«u»); delay(300); lcd.clear(); //очистка экрана delay(1000); lcd.setCursor(0, 0); lcd.print(«Specially for»); lcd.setCursor(0, 1); lcd.print(«https://mysku.ru»); delay(500); lcd.clear(); //очистка экрана delay(300); lcd.setCursor(0, 0); lcd.print(«Specially for»); lcd.setCursor(0, 1); lcd.print(«https://mysku.ru»); delay(500); lcd.clear(); //очистка экрана delay(300); lcd.setCursor(0, 0); lcd.print(«Specially for»); lcd.setCursor(0, 1); lcd.print(«https://mysku.ru»); delay(500); lcd.clear(); } void loop() { lcd.init(); // initialize the lcd lcd.clear(); //очистка экрана // считываем и вычисляем температуру dat = ( 5.0 * analogRead(potPin) * 100.0) / 1024.0; lcd.backlight(); lcd.setCursor(0, 0); // устанавливаем курсор в 0-ом // столбце, 1 строке (начинается с 0) lcd.print(«Temperatura»); lcd.setCursor(0, 1); lcd.print(» «); lcd.print(dat); // выводим текущую температуру lcd.print(«‘C»); delay(5*500); // задержка перед повторением измерений }

Слегка подсматривал тут.
Результат:
Теперь надо проверить погрешность:

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

Зачем я все это затеял?

Хочу автоматизировать пивоварение, пока все еще в далеком проекте.

+

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

Цена мне кажется великовата В китайской инструкции очень много ошибок, например урок от одного проекта, скетч совершенно от другого, а схема от третьего

Вывод:

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

Спасибо за внимание!

3Установка драйверадля Arduino

Установите драйвер для Arduino. Рассмотрим вариант установки на операционную систему Windows. Для этого дождитесь, когда операционная система предложит установить драйвер. Откажитесь. Нажмите клавиши Win + Pause, запустите Диспетчер устройств. Найдите раздел «Порты (COM и LPT)». Увидите там порт с названием Arduino UNO (COMxx). Кликните правой кнопкой мыши на нём и выберите Обновить драйвер. Укажите операционной системе расположение драйвера. Он находится в поддиректории drivers в той папке, которую мы только что скачали.

Запомните порт, к которому подключена плата Arduino. Чтобы узнать номер порта, запустите диспетчер устройств и найдите раздел «Порты (COM и LPT)». В скобках после названия платы будет указан номер порта. Если платы нет в списке, попробуйте отключить её от компьютера и, выждав несколько секунд, подключить снова.

Arduino в диспетчере устройств Windows

Первые шаги

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

  1. Прикупить все соответствующие расходники. Помимо плат и модулей, это также платформы, канифоль и медные пластины, если вы планируете проектировать материнку самостоятельно.
  2. Найти как можно более подробное пособие по вашему проекту и постараться разобраться в том, что там делают, а не просто скопировать. Больше разных интересных проектов и инструкций вы найдете в нашей рубрике Уроки.
  3. Модифицировать ваш проект. Хорошие системы являются масштабируемыми, то есть вы можете добавить к ним какой-то функционал, и они продолжат быть комфортными в работе и управлении кодом.

4НастройкаArduino IDE

Укажите среде разработки свою плату. Для этого в меню Инструменты Плата выберите Arduino UNO.

Выбираем плату Arduino UNO в настройках

Укажите номер COM-порта, к которому подключена плата Arduino: Инструменты Порт.

Задаём последовательный порт, к которому подключена плата Arduino

7Загрузка скетчав память Ардуино

Теперь можно загрузить программу в память платы. Подключите плату к компьютеру, подождите несколько секунд, пока происходит инициализация платы. Нажмите кнопку Загрузить, и Ваш скетч запишется в память платы Arduino. Светодиод должен начать весело подмигивать вам с периодичностью 2 секунды (1 секунду горит, 1 выключен). Ниже приведён код нашей первой программы для Ардуино.
void setup() {
// блок инициализации pinMode(13, OUTPUT); // задаём пин 13 в качестве выхода.
}void loop() {
// цикл, который повторяется бесконечно, пока включена плата: digitalWrite(13, HIGH); // подаём на 13 вывод высокий уровень — зажигаем светодиод delay(1000); // на 1000 мсек = 1 сек. digitalWrite(13, LOW); // подаём на 13 вывод низкий уровень — гасим светодиод delay(1000); // на 1 сек.
}
// далее цикл повторяется

Почитайте комментарии в тексте программы – их достаточно чтобы разобраться с нашим первым экспериментом. Сначала описываем блок инициализации setup()

, в котором задаём начальные значения переменных и функции выводов Arduino. Далее следует бесконечный цикл
loop()
, который повторяется снова и снова, пока на плату подаётся питание. В этом цикле мы выполняем все необходимые действия. В данном случае – зажигаем и гасим светодиод. Оператор
delay()
задаёт длительность выполнения (в миллисекундах) предшествующего оператора. Оператор
digitalWrite()
указывает Ардуино, на какой вывод подать напряжение, и какой именно уровень напряжения.Ваш первый скетч готов!

Полезный совет

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

Подготовка и бесконечность

В любой программе для Arduino есть две принципиальные части: подготовительная часть и основной цикл.

В подготовительной части вы говорите железу, чего от вас ожидать: какие порты настроить на вход, какие на выход, что у вас как называется. Например, если у вас датчик подключён ко входу 10, а лампочка к выходу 3, то вы можете обозвать эти входы и выходы как вам удобно, а дальше в коде обращаться не к десятому входу и третьему выходу, а по-человечески: к датчику или лампочке. Вся часть с подготовкой выполняется один раз при старте контроллера. Контроллер всё запоминает и переходит в основной цикл.

Основной цикл — это то, что происходит в функции loop(). Ардуино берёт оттуда команды и выполняет их подряд. Как только команды закончились, он возвращается в начало цикла и повторяет всё. И так до бесконечности.

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

Рейтинг
( 1 оценка, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]