Подключение дальномера HC-SR04 к ATtiny2313

Подключение дальномера HC-SR04 к ATtiny2313В данной статье пойдет речь о том, как подключить ультразвуковой дальномер HC-SR04 к ATtiny2313 и отображать данные на ЖКИ-дисплее 16×1 на базе HD44780. Также сделал пример программы для отправки результата по UART. Для приёма я использовал Terminal 1.9b и преобразователь USB-UART на базе PL2303HX. Для проверки работоспособности программы и схемы я использовал Proteus 7. Проект в Atmel Studio 7 целиком вы сможете скачать по ссылке в конце статьи. При прошивке микроконтроллера ATtiny2313 не забудьте менять фьюзы: CKSEL3…0 = 0100 – Внутренний тактовый генератор — частота 8 МГц и поставить галочку (т.е. отключить) на SCKDIV8 – деление тактовой частоты на 8.

Схема подключения TB378 и HC-SR04 к ATtiny2313

Для начала сделал программу для получения данных по UART.

Подключение дальномера HC-SR04 к ATtiny2313 вывод в Terminal по UART (1)

Пример программы в Atmel Studio 7

main.c

#define F_CPU 8000000UL

#define BAUD 9600
#define MYUBRR F_CPU/16/BAUD-1

#include <avr/io.h>
#include <util/delay.h>
#include <string.h>
#include <stdlib.h>
#include "uart.h"
#include "hcsr04.h"

inline void prepareText(char * text, int distance) {
  char textDistance[5];
  itoa(distance, textDistance, 10);
  strcat(text, "D = ");
  strcat(text, textDistance);
  strcat(text, "mm");
}

int main(void) {
  int distance;
  char text[17];
  USARTInit(MYUBRR);
  while (1) {
    text[0] = '\0';
    distance = getDistance();
    prepareText(text, distance);
    USARTTransmitStringLn(text);
    _delay_ms(333);
  }
}

Краткое описание

Вместо функции sprintf() сделал собственную функцию для преобразования числа в строку, потому что  sprintf() жрёт больше половины флеш памяти контроллера.
inline void prepareText(char * text, int distance) Функция prepareText преобразует целое число distance (расстояние) в строку и добавляет строку в text.
itoa(distance, textDistance, 10); Функция itoa преобразует целое число distance в строку textDistance в формате 10.
strcat(text, textDistance); Объединение строк. Функция добавляет textDistance строки srcptr в конец строки text.

Результат

Так как в Протеус нету HC-SR04, я его просто нарисовал. На первой картинке результат в -1 означает что датчик HC-SR04 не подключён или Echo не отправил сигнал.

Подключение дальномера HC-SR04 к ATtiny2313 вывод в Terminal по UART (2)

После прошивки реального ATtiny2313, подключил к компьютеру и вот результат.

Подключение дальномера HC-SR04 к ATtiny2313 вывод в Terminal по UART (3)

Схема подключения LCD HD44780 и HC-SR04 к ATtiny2313

После того, как убедился, что датчик HC-SR04 и программа работают правильно, для вывода результата подключил однорядный ЖК на 16 символов — HD44780.

Подключение дальномера HC-SR04 к ATtiny2313 вывод на LCD (1)

Пример программы в Atmel Studio 7

main.c

#define F_CPU 8000000UL

#include <avr/io.h>
#include <util/delay.h>
#include <string.h>
#include <stdlib.h>
#include "hcsr04.h"
#include "LCD.h"

inline void prepareText(char * text, int distance) {
  char textDistance[5];
  itoa(distance, textDistance, 10);
  strcat(text, "D=");
  strcat(text, textDistance);
  strcat(text, "mm");
}

int main(void) {
  _delay_ms(100);
  lcdInit();
  lcdClear();
  lcdSetDisplay(LCD_DISPLAY_ON);
  lcdSetCursor(LCD_CURSOR_OFF);

  int distance;
  char text[17];
  while (1) {
    text[0] = '\0';
    distance = getDistance();
    prepareText(text, distance);
    lcdClear();
    lcdGotoXY(0, 0);
    lcdPuts(text);
    _delay_ms(333);
  }
}

Результат

В Протеусе всё работает, текст отображается правильно.

Подключение дальномера HC-SR04 к ATtiny2313 вывод на LCD (2)

Скачать файлы

ATtiny2313 + HC-SR04 + LCD — Atmel Studio 7 проект
ATtiny2313 + HC-SR04 + UART — ISIS Professional (Proteus) проект
ATtiny2313 + HC-SR04 + LCD — ISIS Professional (Proteus) проект
ATtiny2313 + HC-SR04 + UART — Atmel Studio 7 проект
ATtiny2313A даташит на Русском
ATtiny2313A datasheet (EN)

Купить HC-SR04 на AliExpress


Купить ATTINY2313A на Aliexpress


Купить LCD1602 HD44780 на Aliexpress

Похожие записи

Комментарии 3

  • В наше время время — драгоценный ресурс, и порой его не хватает для всех нужных действий.
    Одна из таких задач — получение медицинских справок для учебы.

    Сейчас этот процесс значительно упрощен —
    вы можете получить справку онлайн.

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

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

    Оформление справки прост и удобен.
    Пользователь оформляет заказ
    на сайте или через мессенджеры,
    и компания оперативно подготавливает все нужные
    справки. На справках ставятся
    все необходимые печати, что гарантирует их легальность.

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

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

  • We are a group of volunteers and opening a new scheme
    in our community. Your site provided us with valuable information to work on.
    You’ve done an impressive job and our whole community will be thankful to you.

  • Продается база данных игроков казино Европы

    Ищете способ увеличить свою клиентскую базу и повысить доходы вашего бизнеса? У нас есть уникальное предложение для вас! Мы предлагаем к продаже обширную базу данных игроков казино из Европы, которая поможет вам привлечь новых клиентов и улучшить маркетинговые стратегии.

    Что включает база данных?

    • Информация о тысячах активных игроков казино, включая их предпочтения, игровые привычки и контактные данные.

    • Данные о частоте посещений, суммах ставок

    • Возможность сегментации по различным критериям для более точного таргетинга.

    Общая база 2 миллиона игроков. Данные за 2023 год. База активная, рассылки еще не велись.

    Стоимость всей базы 5000 USDT

    Стоимость 1 ГЕО 700 USDT

    Страны Tier1

    По любым подробностям пишите мне :

    Telegram : https://t.me/Cybermoney77

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *