Tag Archives

15 Articles

Posted by lex232 on

esp8266 — Быстрый старт в Arduino IDE. Поднимаем сервер с HTML

esp8266 — Быстрый старт в Arduino IDE. Поднимаем сервер с HTML

Когда я попытался поработать с данной платой, первым делом мне захотелось сделать небольшой сервер, который отображает html файл. Я отправился на официальный сайт и нашёл много информации, захотелось разобрать более детально вопрос подключения к wi-fi, режимы работы клиента и точки доступа.

Posted by lex232 on

Переход от прототипа Arduino к устройству на примере игрального кубика

Переход от прототипа Arduino к устройству на примере игрального кубика

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

Posted by lex232 on

Как перейти от Arduino к серийному образцу. Минимальная обвязка AtMega 328

Как перейти от Arduino к серийному образцу. Минимальная обвязка AtMega 328

Вот вы написали программу, и залили её в свой UNO. Всё великолепно работает, но такую громадную железку не запихнуть в миниатюрный корпус. Да и вдруг, вы хотите сделать 100 таких устройств, а зачем вам увеличение себестоимости, ведь на платах Arduino куча ненужного барахла.

Posted by lex232 on

Proteus. Как добавить платы Arduino и получить прошивку hex в IDE

Proteus. Как добавить платы Arduino и получить прошивку hex в IDE

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

Попробуем некий такой hello_world на микроконтроллере — помигаем светодиодом, не имея в наличии реальной платы. Для этого понадобится Proteus — как мне кажется, лучшая программа для эмуляции электронных процессов. В 8 версии Proteus есть уже встроенные библиотеки arduino, но мне они не очень нравятся в плане удобства работы. Найти их просто, при создании нового проекта, нужно перейти на вкладку «from development board».

Posted by lex232 on

Игральный кубик (кости) на Arduino. Random числа

Игральный кубик (кости) на Arduino. Random числа

В предыдущих двух статьях, мы разобрались как работает светодиодный индикатор 8х8 пикселей, напрямую, без помощи доп. регистров и прочего. А также протестировали датчики наклона. Что можно собрать, используя эти два навыка? Правильно — игральный кубик. Раз по отдельности всё у нас работает, осталось только объединить всё это в одно устройство.

Posted by lex232 on

Динамическая индикация в Arduino, на примере led-матрицы 8х8 + uln2803

Динамическая индикация в Arduino, на примере led-матрицы 8х8 + uln2803

Нашёл я недавно пример игральной кости, на матрице 8х8, но много чего там мне не понравилось. Захотелось поместить это в маленький корпус, но размер периферии arduino не позволяет это сделать. Поэтому делаем программу на arduino, а потом переходим на обычную плату с запаянным atmega328. Обычно используется индикатор 8х8 пикселей уже со сдвиговыми регистрами, мы будем использовать обычную матрицу, ибо потом этот сдвиговый регистр надо куда-то спрятать, мы будем ограничены в размерах, да и количество выводов atmega328 позволяет подключить всё напрямую. Посмотрим, что из себя представляет матрица

Posted by lex232 on

Контроль доступа, часть 5. Алгоритм сброса и первого старта программы через джампер в Arduino.

Контроль доступа, часть 5. Алгоритм сброса и первого старта программы через джампер в Arduino.

В прошлый раз, мы сравнивали введённый пароль с паролем, который был записан во flash память контроллера. Но ведь известно, что эту область памяти нельзя изменить в процессе работы устройства, и для хранения таких данных нужно бы использовать EEPROM. Сегодня разберём, как можно делать аппаратный сброс, где и как хранить эти данные, как реализовать первичный запуск устройства, с заданием характеристик. Самое простое, что мы можем использовать для сброса — джампер.

Posted by lex232 on

Знакомимся с EEPROM AVR в Arduino IDE.

Знакомимся с EEPROM AVR в Arduino IDE.

Самое время вспомнить, что при перезагрузке arduino теряет сохранённые данные. Конечно, мы можем вписать пароль, который будет верифицирован, в тело программы, но если потом пользователь захочет поменяеть его? Для этого в arduino есть ячейки энергонезависимой памяти eeprom. Расшифровывается, как Electrically Erasable Programmable Read-Only Memory, т.е. дословно, энергонезависимая память. Отличается от ПЗУ, в которой хранится программа тем, что в исходном коде в процессе работы устройства изменения без программатора сделать нельзя, а в eeprom — можно. Значит мы можем менять пароль в процессе работы устройства, а также хранить данные карт памяти и другие параметры.

Posted by lex232 on

Контроль доступа. Часть 4 — алгоритм ввода чисел с клавиатуры.

Контроль доступа. Часть 4 — алгоритм ввода чисел с клавиатуры.

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

Posted by lex232 on

Контроль доступа. Часть 3 — Управляем замком и читаем кнопку.

Контроль доступа. Часть 3 —  Управляем замком и читаем кнопку.

В предыдущей статье, мы рассмотрели, как уйти от простой команды delay();. Предлагаю убрать дребезг кнопки открытия двери нашим новым кодом, с использованием millis. Просто будем опрашивать кнопку раз в 70 мс, чаще смысла нет, потому что физически нажать кнопку на более короткое время, учитывая дребезг контактов практически невозможно. Но сначала зададим переменные, которые мы будем использовать для организации ожидания.

                        // Переменные времени
uint8_t  buttonTime;    // Переменная времени дребезга кнопки открытия
uint16_t openLockTime;  // Переменная времени задержки открытия времени замка
uint16_t openTime;      // Время открытия замка