Arduino для начинающих

Пример скетча для работы с экраном и кнопками меню

В данном примере мы определяем текущую нажатую кнопку и выводим ее название на экран

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

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

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

#define BTN_UP   1
#define BTN_DOWN 2
#define BTN_LEFT 3
#define BTN_RIGHT 4
#define BTN_SELECT 5
#define BTN_NONE 10

int detectButton() {
  int keyAnalog =  analogRead(A0);
  if (keyAnalog < 100) {
    // Значение меньше 100 – нажата кнопка right
    return BTN_RIGHT;
  } else if (keyAnalog < 200) {
    // Значение больше 100 (иначе мы бы вошли в предыдущий блок результата сравнения, но меньше 200 – нажата кнопка UP
    return BTN_UP;
  } else if (keyAnalog < 400) {
    // Значение больше 200, но меньше 400 – нажата кнопка DOWN
    return BTN_DOWN;
  } else if (keyAnalog < 600) {
    // Значение больше 400, но меньше 600 – нажата кнопка LEFT
    return BTN_LEFT;
  } else if (keyAnalog < 800) {
    // Значение больше 600, но меньше 800 – нажата кнопка SELECT
    return BTN_SELECT;
  } else {
    // Все остальные значения (до 1023) будут означать, что нажатий не было
    return BTN_NONE;
  }
}
void clearLine(int line){
  lcd.setCursor(0, 1);
  lcd.print("                ");
}

void printDisplay(String message){
  Serial.println(message);
  lcd.setCursor(0, 1);
  lcd.print(message);
  delay(1000);
  clearLine(1);
}

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.print("Arduino Master");
  delay(3000);
  lcd.setCursor(0, 0);
  lcd.print("Arduino Master");
  
}

void loop() {
  int button = detectButton();

  switch (button) {
    case BTN_UP:
      printDisplay("UP");
      break;
    case BTN_DOWN:
      printDisplay("DOWN");
      break;
    case BTN_LEFT:
      printDisplay("LEFT");
      break;
    case BTN_RIGHT:
      printDisplay("RIGHT");
      break;
    case BTN_SELECT:
      printDisplay("SELECT");
      break;
    default:
      //printDisplay("Press any key");
      break;
  }
}

Создание String с помощью энкодера


Схема подключения энкодера и дисплея к Ардуино Уно

К следующему примеру программы добавлена функция использования дисплея для вывода символов и строки. При необходимости энкодер можно подключить к другим портам (в том числе и к аналоговым пинам микроконтроллера), сделав при этом необходимые правки в скетче. Подключите к Arduino Uno дисплей 1602 и энкодер по схеме, размещенной выше, и загрузите второй вариант скетча в плату.

Скетч. Создание переменной String энкодером

#include <Wire.h>                             // библиотека для протокола I2C
#include <LiquidCrystal_I2C.h>       // библиотека для LCD 1602 
LiquidCrystal_I2C LCD(0x27,20,2);  // присваиваем имя дисплею

#include "RotaryEncoder.h"      // библиотека для энкодера
RotaryEncoder encoder(4, 2);  // пины подключение энкодера (DT, CLK)
#define SW 6                              // пин подключения порты SW энкодера

byte scale = 5;  // указываем сколько символов должно быть в строке

// создаем массив из 39 символов - его можно увеличивать и уменьшать
char massiv = {
  'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'G', 'K', 'L', 'M',
  'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
  ' ', '-', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
};

String simvol;
String stroka;
byte w;
int pos;
int newPos;
boolean buttonWasUp = true;

void setup() {
   LCD.init();                                       // инициализация дисплея
   LCD.backlight();                             // включение подсветки
   pinMode(SW, INPUT_PULLUP);  // подключаем пин SW

   // выводим первый символ в массиве на дисплей
   simvol = massiv;
   LCD.setCursor(w, 0);
   LCD.print(simvol);
}

void loop() {

   while (w < scale) {
     // проверяем положение ручки энкодера
     encoder.tick(); newPos = encoder.getPosition();

     // указываем максимальный и минимальный диапазон энкодера
     if (newPos > 38) { encoder.setPosition(0); }
     if (newPos < 0) { encoder.setPosition(38); }

     // если положение энкодера изменилось  - выводим на монитор символ
     if (pos != newPos && newPos <= 38 && newPos >= 0) {
        pos = newPos;
        simvol = massiv;
        LCD.setCursor(w, 0);
        LCD.print(simvol);
     }

     // узнаем, отпущена ли кнопка энкодера сейчас
     boolean buttonIsUp = digitalRead(SW);
     // если кнопка была отпущена и не отпущена сейчас
     if (buttonWasUp && !buttonIsUp) {
        // исключаем дребезг контактов кнопки энкодера
        delay(10);
        // узнаем состояние кнопки энкодера снова
        buttonIsUp = digitalRead(SW);
        // если кнопка была нажата, то сохраняем символ в строку
        if (!buttonIsUp) {
           w = w + 1;
           stroka = stroka + simvol;
           encoder.setPosition(0);
           LCD.setCursor(w, 0);
           LCD.print(simvol);
      }
    }
    // запоминаем состояние кнопки энкодера
    buttonWasUp = buttonIsUp;
    }

   // если было введено 5 символов - выходим из цикла while
   LCD.clear();
   LCD.setCursor(0, 0);
   LCD.print("ITOG:");
   LCD.setCursor(0, 1);
   LCD.print(stroka);
   delay(1000);
}

Пояснения к коду:

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

Ардуино уроки для начинающих с нуля

Уроки программирования Ардуино для начинающих ► это развитие творческого и конструкторского мышления, вовлечение детей в технические кружки. Программа уроков Arduino на русском разбита на модули и рассчитана на детей с нулевыми знаниями в электротехнике и программировании. По окончании каждого модуля у ребенка остается робот или «умное» устройство, полностью сделанное своими руками.

Введение «Arduino — Начало»

1. Ардуино: что это такое?
2. Алгоритмы в робототехнике
3. Основные законы электричества
4. Назначение пинов на Ардуино
5. Функции loop и setup
6. Функция pinMode
7. Директива #define
8. Задержки delay и millis
9. Функция tone
10. Функция map
11. Монитор порта Arduino IDE
12. Логические операторы if … else Arduino
13. Оператор выбора switch … case Arduino
14. Циклы for и while в Ардуино
15. Генерация случайных чисел random

Модуль 1. «Arduino — Старт»

1.1. Подключение светодиода к Ардуино
1.2. Мигание светодиода на Ардуино
1.3. Подключение RGB светодиода к Ардуино
1.4. Подключение пьезоизлучателя к Ардуино
1.5. Плавное включение светодиода
1.6. Последовательное включение светодиодов
1.7. Подключение тактовой кнопки к Ардуино
1.8. Включение светодиода кнопкой Ардуино
1.9. Аналоговый и цифровой выход на Ардуино
1.10. Аналоговые порты на Ардуино
1.11. Подключение датчика воды к Ардуино
1.12. Подключение фоторезистора к Ардуино
1.13. Подключение потенциометра к Ардуино
1.14. Подключение датчика LM35 к Ардуино
1.15. Подключение транзистора к Ардуино
1.16. Подключение лазерного светодиода
1.17. Подключение моторчика к Ардуино
1.18. Семисегментный индикатор Ардуино
1.19. Сдвиговый регистр 74hc595 Ардуино
1.20. Датчик сердцебиения KY-039 Ардуино
1.21. Четырехразрядный семисегментный индикатор

Модуль 2. «Arduino — Шилд»

2.1. Подключение реле к Ардуино
2.2. Подключение датчика препятствия
2.3. Подключение сервопривода к Ардуино
2.4. Плавное вращение сервопривода
2.5. Управление Ардуино с компьютера
2.6. Подключение датчика звука к Ардуино
2.7. Подключение датчика движения к Ардуино
2.8. Подключение датчика вибрации к Ардуино
2.9. Подключение модуля с кнопкой
2.10. Подключение датчика освещенности
2.11. Подключение ИК приемника к Ардуино
2.12. Подключение УЗ дальномера к Ардуино
2.13. Подключение датчика DHT11 к Ардуино
2.14. Подключение LCD дисплея к Ардуино
2.15. Русский шрифт на LCD дисплее
2.16. Подключение джойстика к Ардуино
2.17. Управление сервоприводом джойстиком
2.18. Как подключить шаговый двигатель
2.19. Подключение датчика цвета к Ардуино
2.20. Подключение мотор шилд к Ардуино
2.21. Подключение датчика пламени Ардуино
2.22. Подключение датчика геркона к Ардуино
2.23. Подключение датчика тока к Ардуино
2.24. Подключение тензодатчика к Ардуино
2.25. Подключение энкодера к Ардуино
2.26. Подключение датчика давления к Ардуино

Модуль 3. «Arduino — IoT»

3.1. Изменение частоты ШИМ Ардуино
3.2. Arduino EEPROM запись, чтение данных
3.3. Подключение LED ленты к Ардуино
3.4. Подключение DS18B20 к Arduino
3.5. Подключение модуля часов DS1302 к Аrduino
3.6. Подключение датчика газа MQ2
3.7. Адресная светодиодная лента Ардуино
3.8. Подключение DF Player mini к Ардуино
3.9. Подключение модуля nRF24L01 к Ардуино
3.10. Подключение блютуз модуля к Ардуино
3.11. Прошивка блютуз модуля HC-05/06
3.12. Подключение модуля HR911105A к Ардуино

Реализуемые проекты

Машинка с управлением от смартфонаЛодка на Ардуино с ИК управлениемМетеостанция на Ардуино и Андроид

Что дают уроки для начинающих по Ардуино на русском с примерами? Arduino UNO — это электронный конструктор, пользующийся огромной популярностью благодаря простоте программирования и возможностью создавать устройства, выполняющие разнообразные функции. Программирование производится на языке C++ или при помощи языка визуального программирования Scratch for Arduino.

Симулятор или эмулятор Arduino?

Давайте сразу договоримся, что в статье мы будем использовать оба этих термина, хотя их значение вовсе не идентично. Симулятором называют устройство или сервис, имитирующие определенные функции другой системы, но не претендующим на создание точной копии. Это некоторая виртуальная среда, в которой мы просто моделируем другую систему. Эмулятор – это полноценный аналог, способный заменить оригинал. Например, Tinkercad симулирует работу электронных схем и контроллера, но при этом он является эмулятором ардуино, реализуя практически все базовые функции Arduino IDE – от среды редактирования и компилятора до монитора порта и подключения библиотек.

С помощью этого класса программ можно не только рисовать электронные схемы, но и виртуально подключать их к электрической цепи с помощью встроенного симулятора. В режиме реального времени можно наблюдать за поведением схемы, проверять и отлаживать ее работоспособность. Если в такой симулятор добавить виртуальнyю плату Arduino, то можно отследить поведение схемы и в ардуино-проектах. Для отладки скетчей во многих известных сервисах присутствует также возможность загрузки настоящих скетчей, которые “загружаются” в модель и заставляют вести схему с подключенными элементами так же, как и со включенной реальной платой. Таким образом, мы сможем эмулировать работу достаточно сложных проектов без физического подключения Arduino, что существенно ускоряет разработку.

Прошивка Arduino

Для того, чтоб залить скетч на Arduino нам необходимо сначала просто сохранить его. Далее, во избежание проблем при загрузке, необходимо проверить настройки программатора. Для этого на верхней панели выбираем вкладку «Инструменты». В разделе «Плата», выберете Вашу плату. Это может быть Arduino Uno, Arduino Nano, Arduino Mega, Arduino Leonardo или другие. Также в разделе «Порт» необходимо выбрать Ваш порт подключения (тот порт, к которому вы подключили Вашу платформу). После этих действий, можете загружать скетч. Для этого нажмите на стрелочку или во вкладке «Скетч» выберете «Загрузка» (также можно воспользоваться сочетанием клавиш “Ctrl + U”). Прошивка платы завершена успешно.

Прототипирование/макетирование

Для сборки макета нам необходимы следующие элементы: светодиод, резистор, проводки (перемычки), макетная плата(Breadboard). Для того, чтоб ничего не спалить, и для того, чтоб всё успешно работало, надо разобраться со светодиодом. У него есть две «лапки». Короткая – минус, длинная – плюс. На короткую мы будем подключать «землю» (GND) и резистор (для того, чтоб уменьшить силу тока, которая поступает на светодиод, чтоб не спалить его), а на длинную мы будем подавать питание (подключим к 13 пину). После подключения, загрузите на плату скетч, если вы ранее этого не сделали. Код остаётся тот же самый.

На этом у нас конец первой части

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

Особенности проектов

Большинство электронщиков предпочитают создавать свои проекты на основе микроконтроллера Аrduino Uno, о которой и мы писали уже несколько раз.

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

  1. Довольно простой в использовании интерфейс. Понятно, где какой контакт, и к чему прикреплять соединительные провода.
  2. Чип на плате подключается прямо к USB-порту. Преимущество этой установки заключается в том, что последовательная связь – это очень простой протокол, который проверен временем, а USB делает соединение с современными компьютерами очень удобным.
  3. Легко найти центральную часть микроконтроллера, которая представляет собой чип ATmega328. Он имеет больше аппаратных функций, таких как таймеры, внешние и внутренние прерывания, пины PWM и несколько режимов ожидания.
  4. Устройство с открытым исходным кодом, поэтому большое количество радиолюбителей могут исправить баги и неполадки в программном обеспечении. Это облегчает отладку проектов.
  5. Тактовая частота равна 16 МГц, что достаточно быстро для большинства приложений и не ускоряет работу микроконтроллера.
  6. Очень удобно управлять мощностью внутри него, и она имеет функцию встроенного регулирования напряжения. Также микроконтроллер можно отключить от USB-порта без внешнего источника питания. Можно подключить внешний источник питания до 12 В. Причем микропроцессор сам определит нужное напряжение.
  7. Наличие 13 цифровых контактов и 6 аналоговых контактов. Эти пины позволяют подключать оборудование к плате Arduino uno со стороннего носителя. Контакты используются в качестве ключа для расширения вычислительной способности Arduino uno в реальном мире. Просто подключите свои электронные устройства и датчики к разъемам, которые соответствуют каждому из этих контактов.
  8. Имеется в наличии разъем ICSP для обхода USB-порта и сопряжения с Arduino напрямую в качестве последовательного устройства. Этот порт необходим, чтобы перезагрузить чип, если он поврежден и больше не может использоваться на вашем компьютере.
  9. Наличие 32 КБ флэш-памяти для хранения кода разработчика.
  10. Светодиод на плате подключается к цифровому контакту 13 для быстрой отладки кода и упрощения этого процесса.
  11. Наконец, у него есть кнопка для сброса программы на чипе.

Arduino был создан в 2005 году двумя итальянскими инженерами – Дэвидом Куартиллесом и Массимо Банзи с целью, чтобы ученики научились программировать микроконтроллер Arduino uno и улучшить свои навыки в области электроники и использовать их в реальном мире.

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

Библиотеки для работы с датой и временем ардуино

Библиотека RTClib

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

Пример использования:

#include <RTClib.h>

RTC_DS1307 RTC; – выбор датчика (в данном случае DS1307).

rtc.adjust(DateTime( Date, Time)); – настройка времени и календаря.

dayOfTheWeek () – вывод дня недели. Аргумент от 0 до 6, 0 – воскресенье.

Библиотека Timelib

Позволяет Ардуино получать информацию о дате и времени в данный момент.

Пример использования:

#include <TimeLib.h>

Time(); – создание экземпляра.

setTime (t); – установка времени. Аргумент t – час, минута, секунда, день, месяц и год.

timeStatus(); – показывает, установлено ли время.

adjustTime(adjustment); – настройка времени.

Библиотека Ds1307

Библиотека для удобного взаимодействия часов DS1307 с Ардуино c использованием библиотеки Wire.

Пример использования:

#include <DS1307RTC.h>

class DS1307RTC – создание объекта DS1307.

SetTime() – установка времени.

get() – считывает RTC, возвращает полученную дату в формате POSIX.

Set(time_t t) – запись даты в RTC

Библиотека DS 3231

Предназначена для управления датой и временем в модуле ds3231.

#include “ds3231.h”

DS3231  Clock(SDA, SCL); – создание объекта DS3231, подключение к линии тактирования и линии данных.

getTime(); – считывание даты и времени с часов.

setDate(date, mon, year); – установка даты.

Написание программы управления плоттером для Arduino и тестирование проекта

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

Поскольку в нашем проекте мы используем шилд драйвера двигателей L293D нам необходимо скачать библиотеку AFmotor Library. Затем добавьте ее в каталог библиотек Arduino IDE. Переименуйте его в AFMotor. Если у вас открыта Arduino IDE, то закройте ее и снова откройте (то есть перезапустите), кликните на пункт меню file -> examples -> Adafruit Motor Shield Library -> stepper. Убедитесь в том, что вы выбрали правильный COM порт и плату Arduino и затем загрузите код этого примера в вашу плату Arduino. После этого на шаговом двигателе 1 вы должны наблюдать некоторые движения.

Для того чтобы протестировать работу шагового двигателя 2 измените порт двигателя с 2 на 1 в следующем фрагменте кода и снова загрузите код примера в плату Arduino.

Arduino

#include <AFMotor.h>
// Connect a stepper motor with 48 steps per revolution (7.5 degree)
// to motor port #2 (M3 and M4)
AF_Stepper motor(48, 2);

1
2
3
4

#include <AFMotor.h>
// Connect a stepper motor with 48 steps per revolution (7.5 degree)
// to motor port #2 (M3 and M4)

AF_Steppermotor(48,2);

Код программы для Arduino

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

G-код (G-Code) для плоттера с ЧПУ

G-код представляет собой язык, на которым мы говорим машине с числовым программным управлением (ЧПУ) что она должна делать. В основном он содержит координаты X, Y и Z.

Пример этого кода:

Arduino

G17 G20 G90 G94 G54
G0 Z0.25X-0.5 Y0.
Z0.1
G01 Z0. F5.
G02 X0. Y0.5 I0.5 J0. F2.5
X0.5 Y0. I0. J-0.5
X0. Y-0.5 I-0.5 J0.
X-0.5 Y0. I0. J0.5
G01 Z0.1 F5.
G00 X0. Y0. Z0.25

1
2
3
4
5
6
7
8
9
10

G17G20G90G94G54

G0Z0.25X-0.5Y0.

Z0.1

G01Z0.F5.

G02X0.Y0.5I0.5J0.F2.5

X0.5Y0.I0.J-0.5

X0.Y-0.5I-0.5J0.

X-0.5Y0.I0.J0.5

G01Z0.1F5.

G00X0.Y0.Z0.25

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

Программная среда Processing IDE для загрузки G-кода в Arduino

Программная среда с открытым исходным кодом Processing IDE поможет нам в загрузке G-кодов в плату Arduino. Для этого вам сначала необходимо скачать GCTRL.PDE file. После скачивания откройте этот файл в Processing IDE.

После этого нажмите “run” (запуск программы). На экране появится окно со всеми необходимыми инструкциями. Нажмите “p” на клавиатуре. Система попросит вас выбрать порт. Выберите порт, к которому подключена ваша плата Arduino. В нашем случае это порт 6.

Теперь нажмите “g” на клавиатуре и выберите папку на компьютере, где у вас хранится ваш G-код. Выберите необходимый файл с G-кодом и нажмите enter. Если все соединения в схеме у вас сделаны правильно, то вы заметите как устройство (плоттер) начнет рисовать на бумаге.

Если вы хотите остановить процесс рисования, то просто нажмите “x” и плоттер остановит свою работу.

Начало

Создание проекта на Arduino состоит из 3 главных этапов: написание кода, прототипирование (макетирование) и прошивка. Для того, чтоб написать код а потом прошить плату нам необходима среда разработки. На самом деле их есть немало, но мы будем программировать в оригинальной среде – Arduino IDE. Сам код будем писать на С++, адаптированным под Arduino. Скачать можно на официальном сайте. Скетч (набросок) – программа, написанная на Arduino. Давайте посмотрим на структуру кода:

main(){ void setup(){ } void loop(){ } }

Важно заметить, что обязательную в С++ функцию main() процессор Arduino создаёт сам. И результатом того, что видит программист есть:. void setup(){ } void loop(){ }

void setup(){ } void loop(){ }

Давайте разберёмся с двумя обязательными функциями. Функция setup() вызывается только один раз при старте микроконтроллера. Именно она выставляет все базовые настройки. Функция loop() — циклическая. Она вызывается в бесконечном цикле на протяжении всего времени работы микроконтроллера.

Как вывести свой символ на LCD 1602

Вывести свой символ или кириллическую букву на дисплей поможет таблица знакогенератора (CGROM). Такой вид памяти в Ардуино, как CGRAM, может хранить собственные символы, но размер памяти ограничен и может вместить лишь 8 собственных символов. Один из нестандартных символов, который пригодится для создания домашней метеостанции — знак градуса. Давайте нарисуем символ.

Создаем свой символ для LCD дисплея 1602

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

Что такое Arduino Web Editor

Arduino Web Editor – это онлайн инструмент, который позволяет вам писать скетчи и загружать их в любую плату Arduino с помощью вашего веб-браузера (Chrome, Firefox, Safari и Edge). Разработчики платформы Arduino рекомендуют использовать браузер Google Chrome.

Эта IDE (Integrated Development Environment – интегрированная среда разработки) является частью проекта Arduino Create, онлайн платформе, которая позволяет разработчикам писать программы, иметь доступ к обучающим материалам, конфигурировать платы и делиться своими проектами с другими участниками сообщества Arduino. Обеспечивая пользователей непрерывным трудовым процессом, Arduino Create обеспечивает взаимосвязи между всеми процессами создания готового изделия, начиная от его задумки и заканчивая его осуществлением. То есть с помощью этого сервиса вы можете управлять всеми аспектами создания проекта для Arduino.

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

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

Первая программа

Для того, чтоб лучше понять принцип работы платформы, давайте напишем первую программу. Эту простейшую программу (Blink) мы выполним в двух вариантах. Разница между ними только в сборке.

int Led = 13; // объявляем переменную Led на 13 пин (выход) void setup(){ pinMode(Led, OUTPUT); // определяем переменную } void loop(){ digitalWrite(Led, HIGH); // подаём напряжение на 13 пин delay(1000); // ожидаем 1 секунду digitalWrite(Led, LOW); // не подаём напряжение на 13 пин delay(1000); // ожидаем 1 секунду }

Принцип работы этой программы достаточно простой: светодиод загорается на 1 секунду и тухнет на 1 секунду. Для первого варианта нам не понадобиться собирать макет. Так как в платформе Arduino к 13 пину подключён встроенный светодиод.

Выводим на LCD 1602 собственный символ

Для этого занятия нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • LCD монитор 1602;
  • провода «папа-мама».

Подключение LCD 1602 к Arduino UNO через I2C

Подключение LCD дисплея по I2C производится четырьмя проводами «папка-мамка» — 2 провода данных и 2 провода питания. Если вы подключаете дисплей Ардиуно УНО, используйте следующую схему — вывод SDA подключается к порту A4, вывод SCL – к порту A5 и два провода питания — GND и 5V. Если QAPASS 1602 подключается по шине I2C к Arduino Mega, то на плате имеются соответствующие порты — SDA и SCL.

Скетч для создания символа на LCD I2C

#include <Wire.h> // библиотека для управления устройствами по I2C 
#include <LiquidCrystal_I2C.h> // подключаем библиотеку для LCD 1602

LiquidCrystal_I2C LCD(0x27,16,2); // присваиваем имя LCD для дисплея

// создаем свой символ и присваиваем ему имя "simvol"
byte simvol = {
0b01100,
0b10010,
0b10010,
0b01100,
0b00000,
0b00000,
0b00000,
0b00000
};

void setup() {
   LCD.init(); // инициализация LCD дисплея
   LCD.backlight(); // включение подсветки дисплея

   LCD.createChar(1, simvol);
   
   LCD.setCursor(0,0); // ставим курсор на 1 символ первой строки
   LCD.print(char(1)); // печатаем символ на первой строке
}

void loop() {
 
}

Пояснения к коду:

  1. с помощью массива мы зашифровали знак градуса, который нарисовали ранее на листочке бумаги;
  2. функция создает пользовательский символ для LCD, где в скобках указан num — номер символа и data — данные о массиве.