Отправка данных в COM port
- Войдите на сайт для отправки комментариев
Чт, 16/01/2020 - 14:48
Здравствуйте, подскажите как отправить данные в COM port. Веб сервер собирает данные с датченко, и отправляет на сайт, нашел батник который собиралась эти данные и отправляет в txt фал. Не могу понять, как сделать, чтоб данные брались с txt и отправлялись в COM port. Чтоб ардуинка их принимала и выводила на lcd 16x2. Подскажите пожалуйста, заранее спасибо.
очевидно написать программу на том языке. которым вы владеете
а готовой не знаете программы?
а готовой не знаете программы?
если просто текст из файла без всякой обработки - можно вообще без программы, например в линуксе это делается в одну строчку
cat file.txt > /dev/USB01
где file.txt - ваш файл, а /dev/USB01 - порт, к которому подключена Ардуина
А пример, где на 1602 выводится все, что приходит по сериалу есть в составе ИДЕ, называется SeriaDisplay. ;))))
Веб сервер собирает данные с датченко, и отправляет на сайт,
Сервер никогда, никуда, ничего не отправляет. Не серверное это дело. Он только отвечает на запросы.
Кстати, "датченко" - это "фамилие такое"? :-)
Не могу понять, как сделать, чтоб данные брались с txt и отправлялись в COM port. Чтоб ардуинка их принимала и выводила на lcd 16x2.
Хотя бы в какой системе этот Ваш txt живёт? Windows, Unix, MacOS?
Вот как такие доживают до совершеннолетия? Я даже не понимаю, как они дорогу переходят? Как понимабт, что красный - стой, зелёный - иди?!
Как-то дожил до 24 лет, не все цвета вижу. В Windows 10.
Текст, 2 символа, на 3 строчки
или 25 лет, не помню, да и суть не важна
В Windows 10.
если соберётесь спросить куда эту строчку пихать или что делать, если файл называется не "kaka" или порт не "COM4", а что-то другое, заранее вызывайте полицию - говорите "убийство на почве внезапно вспыхнувшей неприязни"
да все понятно
Подскажите пожалуйста, при отправки данных в ком порт, ардуинка перезагружается(знаю, так должно быть), это можно как нибудь убрать, заранее спасибо.
Плохо знаете. Адруино не может перегружаться при отправке в ком порт. Даже программировать надо нажимая ресет, если грузишь через компорт. Она перегружаться если дёрнуть линию dtr микросхемы связи usb. Сделать это можно просто изменив скорость в терминале ардуины, даже не посылая данных. Ардуина перегрузится. В ком порт можно послать данные обходя usb-ttl конвертор на плате сторонним.
Не понял, можно попроще?
Как по проще? Вы схему платы и соединения usb-ttl конвертора на ней смотрели? Если для Вас схема не понятна, то проще только знание того что ардуина перегружается при заливки программы в м.с. средствами ИДЕ. При работе и передачи данных через компорт перезагрузить м.с. нельзя ни как. Нужно давать специальные команды, что бы она перезагрузилась.
А чего Вы не поняли то?
Задавайте конкретные вопросы.
Нужно, чтоб при отправки в com порт, файл txt, с n количеством символов из cmd, arduino uno не перезагружалась.
Я пробовал arduino leonardo, при открытии порта, она не перезагружается, но на lcd выводит не ту строку. Пример, я отравил 1, com port выдал 1 и -35, а на lcd просто -35
USB-TTL есть? Вот его к ардуине по RX/TX/GND подсоединяете и никто не перезагружается при работе с UART.
Ваши посты просто безсодержательны. Подумайте о других, кому Вы задаёте вопросы. Мы не знаем каким способом, какой программой, какими опциями Вы посылаете информацию в ардуину? Это бинарные или строковые данные? Посылаете после данных конец строки и иной терминатор передачи? Где программа, которая выводит на дисплей данные? Как можно понять что происходит, если нет предмета разговора. Если хотите что бы Вам помогли, соблюдайте правила из первого поста песочницы.
Простите,что я так мало пишу инфы. Данные с датчиков температуры, просто 2 числа. Отправляю данные через смд, как подсказали выше, командой "copy kaka.txt \\.\COM4". Ниже код на ардуинки.
А описать что хочется получить можете? Я, например, не понимаю как с помощью данной программы можно увидеть больше одного символа на дисплее? Ну а -35=13-48. Всё точно считает ардуина в 16 строке.
Поставил usb ttl hw-597. Как вы сказали подключил GMD, Rx, Tx, к арудине, при отправки числа из cmd, не приходит в арудино, пробовал RX > TX и TX > RX и наоборот.
Из cmd отправлять числа из txt файла
У Вас уже всё было хорошо. Достаточно проверит пришедший символ на равенство терминатору конец строки и и не выводить терминатор на экран а только перемещать курсор в начало строки. 21 строка сейчас переводит в нулевую позицию курсор при приходе каждого символа и видите только последний.
Получилось, правда 2 ардуинки пришлось испольщовать. Есть проблемка, когда шлешь с arduino ide в com порт, он нормально показывает символ, lcd 16x2, когда с cmd, он показывает на секунду, потом первую цифру заменяет на 0.
copy result1.txt \\.\COM15 - комманда cmd
15 -содержание файла result1.txt
А где проверка на символ конца строки? Он тоже есть в Вашем файле и его тоже отправляет в ком порт.
Попробуйте разобраться чем бинарное представление числа отличается от символьного. В какие моменты передаются и работают в программе те и другие. Из каких символов состоит полная строка, которая передается в компорт. Без понимания этого Вы не сможете написать программу.
А скажите пожалуйста, в чем разница между отправкой в com port из arduino ide и командой copy result1.txt \\.\COM15
Файл отправляется полностью как есть. Все до одного байта. Если это текстовый со строками файл, то в нем присутствуют бинарные данные в виде байтов, символы которых представлены в таблице ASCI, их можно читать, и управляющие , которых не видно, но они есть. Например символ конец строки. Он тоже передается.
Нажимая на клавиатуре ноль, получаешь символ нуля, но его бинарное значение 48. Он и летит как 48.
В терминале ардуино можно контролировать отсылку управляющих символов. В правом нижнем углу можно выбрать режим посылать или нет управляющие символы. Если выбран режим посылать всё, то кроме отправки нуля с бинарным значением 48 будут прибавлены ещё 2 символа с бинарными значениями 10 и 13 . Если выбрать не посылать управляющие символы, то будет послан байт со значением 48 для символа клавиатуры 0. И больше ничего.