Mini-ats102.ru

ООО “Мультилайн”
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Матричная клавиатура 4х4 flprog

  • Главная страница
  • Содержание
  • Контакты
  • Наш канал на YouTube

FLProg Arduino Atmega8 и немного Visual Studio

1.После установки программы подключил Arduino UNO к USB порту, нашел папку (у меня здесь по умолчанию C:Program Files (x86)FLProgideV3) и запустил файл «arduino exe». Теперь все готово для создания программатора на базе UNO.

2.В меню «Инструменты — Плата» выбрал «UNO», программатор «AVRISP mkll» и «Порт COM5» возможно у вас номер порта будет другой.

3.Далее в меню «Файл-Примеры» выбрал скетч «ArduinoISP»

4. Затем перешел к пункту меню «Скетч» и нажал «Загрузка» или что тоже самое стрелка в кружке. Все прошивка залита, программатор готов.

5. Далее перешел в меню «Файл – Настройки» здесь я нечего не менял только в поле «Дополнительные ссылки для Менеджера плат» вставил вот эту ссылку ( https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_atmega8_series_index.json ) и нажал окей.

6. И снова выбрал «Инструменты-Плата» далее перешел в раздел «Менеджер плат» там нашел установочный пакет, он был в самом низу, как показано на картинке 7.

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

8. Опять перехожу в «Инструменты-Плата» и ищу ATmega8/A и выбираю ее.

9. Теперь снова к пункту «Инструменты — Программатор» и меняю его нажатием с «AVRISP mkll» на «Arduino as ISP» вот так.

10. Если все правильно, то должны появиться дополнительные настройки микроконтроллера, здесь я нечего не менял. Теперь временно отключаю питание UNO и подключаю к ней ATmega8 (мануал здесь) он заранее размещен на макетной плате и согласно верхнего рисунка соединяю к нему шесть проводов. Проверяю все ли правильно и снова подаю питание, в меню «Инструменты» см. картинку 10 жму «Записать загрузчик».

11. Наконец-то микроконтроллер ATmega8 готов к заливке. Пробую скетч с мигающим светодиодом, все работает, но надо что-то посерьёзнее. Подключаю LCD дисплей 1602 к шине I2C через плату конвертер. Нужно соединить два провода для питания VCC, GND (ножки 7 и 8) и два провода к пинам A4-SDA, A5-SCL микросхемы ATmega8 (ноги 27 и 28 соответственно). Пробую записать скетч из примеров, перехожу «Файл-Примеры» выбираю программку «LiquidCrystal_I2C – BlinkingCursor» 11 рисунок.

Читайте так же:
Игровые мониторы 144 гц 27 дюймов

12. Далее в меню «Скетч» выбираю и жму «Загрузить через программатор», перемигивание светодиодов на UNO свидетельствует о том, что идет загрузка файла.

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

Все отлично работает. Закрываю программу Arduino IDE и отключаю устройство.

Дополнительно уже к этой схеме добавляю часы реального времени DS3132 также к шине I2C, еще соединяю три кнопки без фиксации для управления таймером одним контактом к минусу другим к ножкам микроконтроллера D2, D3, D4 и пятивольтовое реле два провода к питанию, а третий управляющий провод к пину D7 мк ATmega8.

Снова включаю и теперь уже запускаю программу FLProg, создаю входы и выход выбираю в настройках часы и дисплей и пробую составить алгоритм работы простого таймера, который будет включать и отключать нагрузку через реле по истечению установленного времени, ранее я уже делал что-то подобное, но для Arduino Nano в ней флэш памяти 32к а в ATmega8 не более 8к с учетом загрузчика.

Ну вот, кажется, вариант таймера готов. Триггеров, экранов, переменных, всего надо поменьше и вот ОН момент. Нажимаю Компилировать, пока все идет хорошо.

Появилось окно программы Arduino IDE, здесь выбираю «Скетч» и жму «Загрузить через программатор», еще несколько секунд ожидания и прошивка записана в микроконтроллер. Появилась надпись загрузка завершена и размеры файла, я так полагаю что залез впритык, рисунок 16.






















Немного о работе таймера. Время задается в секундах в верхней строке, например для 3-х минутного отчета необходимо набрать 180 секунд. Управление тремя кнопками — одна кнопка пуск, две другие добавить и убавить на одну секунду, при одновременном нажатие последних происходит сброс счетчика. В нижней строчке идет прямой отчет в формате часов. Визуально в конце заметно раннее срабатывание реле на 1с., но при старте показания на дисплее тоже отстают, так что есть компенсация.
Работа таймера на видео.

Читайте так же:
Зайти в апл id с компьютера

Чтобы Visual Studio работала с Arduino и микроконтроллерами, необходимо установить в меню «Расширения» см. на рисунке дополнительный пакет, настроить связи, подключить библиотеки и теперь создаваемые прошивки можно записывать напрямую из VS в Ардуину в моем случае в Атмегу8.

Экран

Теперь добавим в схему экран и будем выводить символы на него.

Принципиальная схема подключения клавиатуры и дисплея

Чтобы символы отображались корректно используем функцию print из класса u8g2. Подробнее про доступные функции этого класса можно прочитать на странице в github.

Схема подключения матричной клавиатуры к Arduino

Подключать ее к плате следует 8 выводами, каждый из них считывает значения с определенных строк и столбцов. Подключать их следует к выводам на панели Digital. Я подключу, например, к выводам от 2 до 9 включительно. Нулевой и первый трогать не желательно, поскольку они предназначены для UART интерфейса (например, для подключения блютуз-модуля). Рациональнее оставить их свободными.

Схема подключения матричной клавиатуры к Arduino

Схема подключения матричной клавиатуры к Arduino

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

После того, как вы установили в библиотеку, можно зайти в Ардуино IDE (программа с сайта Arduino) и посмотреть примеры скетчей.

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

#include <Keypad.h> // подключаем нашу библиотеку
const byte ROWS = 4; //число строк у нашей клавиатуры
const byte COLS = 4; //число столбцов у нашей клавиатуры
char hexaKeys[ROWS][COLS] = <
<'1','4','7','*'>, // здесь мы располагаем названия наших клавиш, как на клавиатуре,для удобства пользования
<'2','5','8','0'>,
<'3','6','9','#'>,
<'A','B','C','D'>
>;
byte rowPins[ROWS] = <5, 4, 3, 2>; //к каким выводам подключаем управление строками
byte colPins[COLS] = <9, 8, 7, 6>; //к каким выводам подключаем управление столбцами
//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup() <
Serial.begin(9600);
>
void loop() <
char customKey = customKeypad.getKey();
if (customKey) <
Serial.println(customKey);
>
>

Читайте так же:
Модернизация блока питания компьютера

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

Если это сделать неправильно, то, например, при нажатии цифры 4, в порт выйдет цифра 6 или любой другой символ. Это можно определить опытным путем и расположить символы, как они расположены на клавиатуре.

Далее нужно указать к каким выводам на плате подключаем управление строками и столбцами.

В функции void setup указываем скорость последовательного соединения с монитором порта 9600 бод. Функция нужна только для подачи питания на модули. В функции Void Loop прописываем условие. Переменная Char используется для хранения только одного символа, например, 1, А или 5, что подходит к ситуации. Если нажатие зафиксировано, то происходит вывод символа в монитор порта с помощью функции Serial Print. В скобках нужно указывать, какую переменную выводим в порт. Если все сделано верно, в мониторе порта получим символ, на который нажимали. Не забудьте в мониторе порта внизу справа указать скорость передачи данных такую же, как в скетче.

ArduBloсk

Arduino: ТОП-3 графических сред программирования

Когда человек уже полностью освоил Scratch, но еще не дорос до Wiring, на котором программируются Arduino-совместимые платы, самое время посоветовать ему написанный на Java инструмент ArduBloсk. Особенно хорош он для тех, кто увлекается робототехникой.

В чем же разница? Дело в том, что Scratch не умеет прошивать Arduino, он лишь управляет его ПЛК через USB. Таким образом, Arduino не может работать сам по себе, ведь он зависит от компьютера.

По сути, ArduBloсk — это промежуточный этап между детской Scratch и вполне профессиональной, хоть и доступной Visuino, поскольку так же, как последняя, обладает возможностью перепрошивки Arduino-совместимых контроллеров.

Совет. Не забудьте установить на свой ПК Java-машину. Это не займет много времени.

Итак, больше графических сред — хороших и разных. Да пребудет с вами Arduino.

Глава 2 — программирование Arduino UNO в FLProg

Скачиваем программу с официального сайта . Устанавливаем её, и начинаем писать.

Читайте так же:
Залил ноут водой что делать

Среду разработки открываем только с правами администратора, иначе не будет компилиться.

Сначала создаём проект, добавляем модуль связи по протоколу MODBUS TCP в режиме slave. В нашем случае Ethernet Shield W5100.

Соединятся будет через Wi-Fi роутер. Настраивать внутри роутера ничего не нужно. Настроим только контроллер.

Делаем соответствующие настройки связи, пишем IP, порт, основной шлюз вашего роутера. MAC можно сгенерировать любой.

Сетевой адрес нашего устройства 1.

Далее, добавляем датчик температуры DHT 11, для того чтобы вывести а экран температуру окружающей среды.

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

Далее добавляем необходимые сетевые переменные MODBUS.

Регистры будут в таком порядке:

  • Кнопка — рег 1 бит 1 — адрес 16
  • Переключатель — рег 1 бит 2 — адрес 17
  • Лампа 1 — рег 1 бит 3 — адрес 18
  • Лампа 2 — рег 1 бит 4 — адрес 19
  • Цифр. индикатор — рег 0 — адрес 0

Компилируем скетч и заливаем.

2 Среда разработки Programino

Логотип Programino Логотип Programino

Рассмотрим среду разработки PROGRAMINO. Это платная среда разработки, но её можно опробовать в течение 14-ти дней бесплатно. Programino, как и другие среды разработки, требует, однако, чтобы у вас была установлена Arduino IDE. При первом запуске программы следует в настройках указать путь к исполняемому файлу arduino.exe. Для этого идём в меню настройки: Options Editor Settings. Появится окно, в котором нужно будет указать пути к директории с Arduino IDE и сопутствующими библиотеками. Теперь мы готовы писать программы в Programino.

Первоначальная настройка среды Programino Первоначальная настройка среды Programino

Язык, который используется в данной среде разработки – такой же, как и в оригинальной Arduino IDE – Си. То есть, по сути, если вы уже пишете скетчи в Arduino IDE, то вам не придётся изучать новый язык программирования, что является большим плюсом данной среды разработки.

Однако помимо этого, данная IDE предлагает такой удобный способ быстрой разработки как автодополнение кода. То есть, вам не придётся постоянно лазить в справочник по командам и методам Arduino. Вы начинаете набирать код, и среда разработки предложит вам выбрать из доступных вариантов тот, который вам нужен. Например, вы набираете «digi» и IDE предлагает вам варианты: «digitalRead», «digitalWrite» и другие возможные.

Читайте так же:
Лучший аудиоплеер на компьютер

Функция автодополнения кода Programino IDE Функция автодополнения кода Programino IDE

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

Постарайтесь набирать скетч вручную, а не копировать и вставлять, чтобы прочувствовать удобство автодополнения кода Programino.

Что ещё интересного предлагает Programino IDE? В данной среде разработки имеются несколько дополнительных полезных инструментов, доступных через меню Tools. Например: блокнот, дизайнер LCD символов, преобразователь между DEC-BIN-HEX, терминал последовательного порта, аналоговый плоттер и другие.

Дополнительные инструменты Programino IDE Дополнительные инструменты Programino IDE

Остановимся подробнее на инструменте Analog Plotter. Это средство позволяет визуализировать вам то, что приходит в COM-порт от Arduino.

Для работы плоттера в скетче нужно активизировать последовательный порт на скорости 19200 кб/сек. Аналоговые данные выводятся на плоттер с помощью команды Serial.println().

Запустим аналоговый плоттер. Нажмём кнопку Connect для подключения к порту, к которому у нас подключён Arduino.

Аналоговый плоттер в Programino Аналоговый плоттер в Programino

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

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

Выбор платы в Programino Выбор платы в Programino Выбор последовательного порта в Programino Выбор последовательного порта в Programino

Для загрузки скетча в память Arduino нажмите в верхнем меню иконку с изображением загрузки. Programino загрузит скетч и в нижнем окне журнала покажет данные о размере скетча и оставшихся свободных ресурсах платы Ардуино.

Симулятор EasyEDA

Вот еще один из моих фаворитов благодаря своим особенностям, удобству использования и широкой поддержке основных операционных систем. EasyEDA хорош для обучения программированию и дизайну схем в Windows, Linux, Mac OS и Android — этим немногие могут похвастаться.

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector