Шановні друзі! У зв`язку з локдауном з 20.03.2021р. по 16.04.2021р. наш магазин працює в закритому режимі , самовивозів не буде . Дякуємо за розуміння :)
(098) 067-12-26 Київстар (098) 067-12-26   Київстар
(066) 142-24-48 Vodafone (066) 142-24-48   Vodafone
(098) 067-12-26 Lifecell (063) 642-36-59   Lifecell
 info@arduino.ua
Графік роботи магазину:
Пн-Пт: 9.00 - 19.00
Сб: 10.00 - 19.00
Нд: вихідний
м. Київ, вул. Васильківська, 30
ст.м. "Васильківська"
Каталог

Машинка з дистанційним керуванням з Raspberry Pi

В золотий вік штучного інтелекту і технологій, нова область набирає обертів: групова робототехніка. Групові роботи мають безліч застосувань, таких як виконання завдань, пов'язаних з автоматикою, автономною навігацією або складанням карт на місцевостях, до

Самодельный терминал для игры «Монополия»

Я с детьми очень часто играю в детском игровом клубе в монополию, но основная проблема, возникающая в процессе – «Банк» не успевает посчитать и выдать деньги сразу нескольким игрокам (а поскольку Банку, то есть мне, надо еще следить за игрой и игроками,

Підключаємо дисплей SSD1306 до Raspberry Pi Pico

Ця стаття покаже як підключити будь який OLED дисплей на контролері SSD1306 до Raspberry Pi Pico. Ми детально розберемо, як встановити необхідний драйвер, яка схема підключення Pico та дисплею, намалюємо на екрані текст, лінії, прямокутники та кола,

Умный дом на Arduino Leonardo

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

Термометр на STM8

Бюджетний термометр на STM8 з використанням доступних компонентів і відкритого компілятора sdcc. Інформації про ці мікроконтролери значно менше за AVR, хоча STM8 потенційно більш привабливі за співвідношенням ціна-функціональність. Тому можливо цей
Напиши статтю і отримай знижку! Наши партнеры https://hacklab.kiev.ua/

Термометр на STM8

2021-03-18

Всі статті →

Вступ

Бюджетний термометр на STM8 з використанням доступних компонентів і відкритого компілятора sdcc. Інформації про ці мікроконтролери значно менше за AVR, хоча STM8 потенційно більш привабливі за співвідношенням ціна-функціональність. Тому можливо цей відносно нескладний, але придатний до використання проєкт допоможе комусь розпочати знайомство з STM8.

Складові

  • Мікроконтролер STM8S003F3P6 або STM8S103F3P6.
    • Увага: STM8S003 має нижчу ціну й обмежений ресурс флешпам’яті (100 перезаписів). Використовуйте його для готових пристроїв, а не під час розробки.
  • Програматор ST-Link.
  • 4-розрядний 7-сегментний індикатор. Було використано індикатор зі спільним катодом. Для іншого типу індикатора доведеться трохи змінити код функції printChar().
  • Датчики температури DS18B20. Один з них буде вимірювати температуру в приміщенні, а інший на вулиці.
  • Резистори.
  • Керамічний конденсатор на 100нФ і електролітичний на 1мкФ.
    • Увага: якщо ви використовуєте плату розробника STM8, то конденсатори й резистор 10кОм на пін Reset не потрібні — вони вже встановлені на платі. Якщо ви справді плануєте використовувати пристрій, а не лише експериментувати, то все можна зібрати на такій платі для прототипування. Також може стати в нагоді перехідник для мікроконтролера, якщо ви не використовуєте готову плату.

Схема

Схема показана на рисунку. Якщо ви використовуєте згадану плату STM8, то вивід D4 відповідає піну 1 на рис. Порядок виводів той самий. Як було сказано, конденсатори й підтяжка Reset є на синій платі, якщо буде використовуватися вона. Живлення показано умовно. Насправді поки що все живиться від USB через стабілізатор напруги 3.3В, але при використанні готової плати він теж є в комплекті.

Програмна реалізація

Вихідний код доступний за посиланням.

Код для зчитування даних з датчика базується на цьому прикладі. Але все, що стосувалося виводу інформації на дисплей, було повністю переписано. Наведений приклад використовував MAX7219, але у STM8 достатньо виводів для керування дисплеєм безпосередньо, тому запропоноване рішення є більш дешевим. Також реалізовано підтримку двох датчиків. Звісно, протокол 1-wire дозволяє взаємодіяти з ними через один вивід, але можливо іншим разом. Значення температур накопичуються в масивах t1_history і t2_history приблизно раз на 20-30 хв. Серед останніх 10 значень обчислюється середньозважене (що старіше значення, то менша його «вага»). Якщо поточне значення менше або більше за середньозважене щонайменше на 1 градус, то в першому розряді блимає індикатор «вгору» або «вниз», сигналізуючи, що температура зростає або спадає. Щоб відрізняти покази першого і другого датчиків, у останньому розряді під символом градусу виводиться підкреслювання. У разі відсутності того чи іншого датчика на короткий час виводиться повідомлення Err1 і Err2. Якщо ви бажаєте використовувати лише один датчик і цей напис вам заважає, просто закоментуйте один із викликів read_ds18b20() в main(). Функція debug() реалізована для потреб тестування. Вона на короткий час виводить передане їй число. Була зроблена спроба зменшення енергоспоживання, для чого між зчитуваннями значень температури мікроконтролер переводиться на нижчу частоту. Через специфіку індикатора найнижчої частоти досягти не вдалося (блимання стає помітним). Якщо бажаєте з цим поекспериментувати, то зміна регістру CLK_CKDIVR у функції display_temperature відповідає за встановлення робочої частоти. Деталі у документації.

Компіляція й завантаження

Знадобиться компілятор sdcc і утиліта stm8flash. Якщо мікроконтролер використовується вперше, можливо слід зняти захист від запису:

echo "00 00 ff 00 ff 00 ff 00 ff 00 ff" | xxd -r -p > factory_defaults.bin
stm8flash -c stlinkv2 -p stm8s103?3 -s opt -w factory_defaults.bin

Після цього проєкт можна скомпілювати й завантажити:

make
make flash

Якщо остання команда не виконується, пропишіть правильний шлях до stm8flash у Makefile.

Висновки

Поки що для цілей відлагодження плата з мікроконтролером виконана окремим модулем, який легко знімається для швидкого перепрограмування. Планується додати датчик тиску, можливо BMP280.

Ваша оцінка статті:

Відмінно
Добре
Задовільно
Погано
Дуже погано

Дякуємо Вам за звернення! Ваш відгук з'явиться після модерації адміністратором.
Поки немає відгуків на цю статтю.
оплата картами Visa і MasterCard