timerОтже як виміряти якийсь проміжок часу, який пройшо під час виконання якоїсь задачі. Тут нам допоможе таймер який буде відраховувати час і записувати його в змінну. Ардуінщикам в цьому плані добре знайома стандартна функція “millis()”. Особисто я не великий фанат ардуіно, можна навіть сказати, вона мені не дуже подобається, бо я не бачу як працює код цього середовища.
Так сталось, що для проекту мені знадобилось виміряти час виконання операції на мікроконтролері. Не став вигадувати велосипедів і почав шукати готове рішення. Натрапив на реалізацію ардуіновської “millis()” для Atmel Studio. По великому секрету ділюсь цією приблудою з вами. Продовжити перегляд

HC-SR04Написав бібліотеку, для роботи з ультразвуковим дальноміром HC-SR04. Підходить для всіх мікроконтролерів AVR. Якщо не сильно заморочитись, можна портувати її і для STM. Як вона написана, не претендує ні наяку оцінку.
Приривань не використовував, писав згідно коду наведеного в попередній статті. Продовжити перегляд

Кільцевий буферКільцевий буфер, або як його ще називають FIFO – буфер, використовують в програмуванні для зберігання і відправки даних між різними системами які працюють в асинхронному режимі. В програмуванні мікроконтролерів, його найчастіше використовують для прийому і передачі даних між UARTом і ще чимось, що задіяно в мікроконтролері для обробки даних. Приведу приклад: Потрібно передати дані з UART в шину i2c при тому, що мікроконтролер Slave. В режимі Slave шина неможе ініціалізувати передачу даних, а має чекати коли прийде запит від Master для початку передачі, а UART тим часом приймає дані і вони затираються, тому що i2c нічого не відправляє. Максимум що ми отримаємо це якийсь обірваний, незмістовний пакет. Продовжити перегляд

RControl_logo

Давно не писав, бо був трохи зайнятий. А зараз часу стало ще менше, тому вирішив не тягнути і запостити проектик апаратури RC – керування для моделістів.
Що воно з себе представляє Продовжити перегляд

PWM Поступово вивчаючи STM32, вирішив для кращого закріплення знань почати робити якийсь проект. Вирішив зробити багатоканальну моргалку світлодіодами із плавним регулюванням яскравості за допомогою PWM. Або Широтно Імпульсної Модуляції. PWM в STM32, та й напевне в інших мікроконтролерах, включається за допомогою вбудованих в мікроконтролер таймерів.
Основними налаштуваннями PWM в будь-якому мікроконтролері є частота, період і скважність. Частоту і період ми будемо налаштовувати під час ініціалізації таймеру до головного циклу. Особливістю STM32 є те що щоб запустити PWM потрібно ініціалізувати GPIO-порти. В даному мікроконтролері таймери які налаштовані на генерацію PWM мають по чотири канали, тобто на чотирьох виходах контролера, можна отримати чотири PWM канали. Продовжити перегляд

ESP8266 ESP-03

ESP8266 – невеликий WiFi модуль, якому пророчать стати революцією в Інтернеті Речей. Купив і я собі його! Ціна його аж 3$. Не так і багато за таке, при тому, що аналоги коштують втричі дорожче. Правда тут є одне але, які гроші-така і якість. Даний модуль вже сколихнув інтернет своєю появою, незважаючи на те, що в його прошивках ціла купа глюків і багів. Нове ПО в принципі виходить досить регулярно, але баги виправляють не так часто.
Окрім офіційного ПО, є і альтернативні прошивки від ентузіастів. В них теж є свої недопрацьовки, але і функціонал їх теж вражає.
Даний модуль є таким собі конвертером UART-WiFi. Його основний процесор являється Системою на Чіпі (SoC), із виведеними портами GPIO, до яких має доступ програміст. Тобто модуль може виконувати роль мікроконтролера, хоча і з обмеженим функціоналом. Продовжити перегляд

DYP-ME007V1

Продовжую вивчати STM32. Цього разу вирішив підключити Ультразвуковий дальномір (сонар). Модель DYP-ME007v1.

Параметри:

  • Відстань вимірювання від 20 мм до 500 мм
  • Частота 40 кГц
  • Час вимірювання 100 мсек.
  • Точність 1 см.
  • Робоча температура від – 10 до +60 °С
  • Робоча напруга і логічні рівні 5 Вольт.

Продовжити перегляд