В данной статье пойдет речь о том, как подключить ультразвуковой дальномер 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.
- 1 Схема подключения TB378 и HC-SR04 к ATtiny2313
- 2 Пример программы в Atmel Studio 7
- 3 Схема подключения LCD HD44780 и HC-SR04 к ATtiny2313
- 4 Пример программы в Atmel Studio 7
- 5 Скачать файлы
- 6 Купить HC-SR04 на AliExpress
- 7 Купить ATTINY2313A на Aliexpress
- 8 Купить LCD1602 HD44780 на Aliexpress
- 9 Похожие записи
Схема подключения TB378 и HC-SR04 к ATtiny2313
Для начала сделал программу для получения данных по UART.
Пример программы в 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 не отправил сигнал.
После прошивки реального ATtiny2313, подключил к компьютеру и вот результат.
Схема подключения LCD HD44780 и HC-SR04 к ATtiny2313
После того, как убедился, что датчик HC-SR04 и программа работают правильно, для вывода результата подключил однорядный ЖК на 16 символов — HD44780.
Пример программы в 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); } }
Результат
В Протеусе всё работает, текст отображается правильно.
Скачать файлы
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)
В наше время время — драгоценный ресурс, и порой его не хватает для всех нужных действий.
Одна из таких задач — получение медицинских справок для учебы.
Сейчас этот процесс значительно упрощен —
вы можете получить справку онлайн.
Заказ справок через интернет
становится востребованной услугой из-за удобства
получения. Ряд компаний предлагают оформить
разные виды справок без необходимости
ходить в больницу. Это незаменимо для
тех, кому нужна справка быстро,
например, для занятий спортом.
Существует большой выбор медицинских
справок, которые можно заказать: справка о здоровье, справка для
занятий спортом, для учебных
заведений. Заказ справки онлайн — это простой способ получить
документ в кратчайшие сроки.
Оформление справки прост и удобен.
Пользователь оформляет заказ
на сайте или через мессенджеры,
и компания оперативно подготавливает все нужные
справки. На справках ставятся
все необходимые печати, что гарантирует их легальность.
Однако, следует помнить, что
покупка медицинских документов должно происходить через проверенные компании, чтобы избежать рисков и
неприятностей и обеспечить законность
документа.
Таким образом, заказ медицинской справки через интернет
для тех, кто ценит свое время и нуждается в официальных документах.
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.