Хочу сообщить некоторые факты, о которых обычно не упоминают в руководствах по Ардуино: 1. При скорости 9600 один байт передается округленно за 1 мС. 2. Команда отправки байта, например write выполняется намного быстрее, чем uart отправляет байт - потому что она просто помещает байт в буфер последовательного порта. Поэтому если вам нужно, к примеру, переключить передатчик на прием после отправки байта - пользуйтесь командой flush. Команда чтения тоже выполняется быстрее, чем происходит приём байта - потому-что просто берет байт из буфера. О приходе очередного байта нам сообщает функция available. 3. Текстовая строка, которую отправляет ардуино по команде println автоматически дополняется двумя "непечатными"символами - «перевод строки» и «конец строки». Не забывайте об этом, если вам важно, сколько байт вы отправляете. 4. Размер буферов приема и передачи - 64байта. Если вы медленно считываете байты или слишком быстро отправляете - может происходить утеря информации. 5. Ардуино копирует байты из uart в буфер при приеме и из буфера в uart при передаче с использованием механизма прерываний. Если вы используете функцию nointerrupt это может нарушить работу функций serial. 6. Приоритет прерываний отправки байта выше прерываний приема байта - поэтому одновременный прием и отправка байт может вызвать задержку приема байт. 7. Приоритет внешних прерываний (int0, int1) выше, чем прерываний uart. Поэтому длительная обработка внешних прерываний вызовет сбои в работе serial . Если кто-нибудь знает что-то интересное, о чем я не написал - поделитесь пожалуйста этим в комментариях.
Все хорошо, но маленькое уточнение- пятый пункт должен выглядеть так 5. Ардуино копирует байты из uart в буфер uart при приеме, и из буфера uart в uart при передаче, с использованием механизма прерываний. Если вы используете функцию nointerrupt это может нарушить работу функций serial. А то ломай голову "чайнику"- из какого буфера...
Битрейт не сленг, а термин. Для установки скорости передачи в некоторых языках программирования среди прочих установок порта нужно указывать параметр baudRate, а это и есть битрейт. В си он тоже так называется и устанавливается в команде порт.begin в скобках.
Здравствуйте, подскажите, как в консоль порта передать НА ардуинку число (не символ). например число 5. Символьного обозначения этому числу нет. Как такое число напечатать в консоле?
У меня такая проблема возникла. Ардуино мега, на ней CD модуль, GPS, Oied дисплей, Барометр DPS310, Кнопка сброса высоты, nRF24L01 Модуль с CD модулем отказался работать по SPI , Пришлось через сериал1 меги принять сериал с ардуино нано на которой установил nRF24L01( он принимает коррекцию высоты с базы, что то типо псевдо ртк ) Этот сигнал при включении сразу принимается, А ПОСЛЕ ВЫКЛЮЧЕНИЯ ЧЕРЕЗ ЭННОЕ ВРЕМЯ, СИГНАЛ ВСЁ ЕЩЁ МЕЛЬТИШИТ В ПОРТУ МЕГИ СЕКУНД 20, а так же записывается на карту, В ЧЕМ МОЖЕТ БЫТЬ ПРОБЛЕМА ???
В его конкретной реализации релейной платы аноды светодиодов оптопар подтянуты через резистор к плюсу. А включение оптопары происходит подачей «нуля» на катод светодиода оптопары. Вполне грамотное решение, учитыаая, что сразу после настройки рина платыАрдуино на вывод его состояние - высокий уровень.
Если не указать обнуление переменной, то программа вновь и вновь будет переходить по конструкции Switch(data) в тот case, которому будет равна переменная data. Нам же нужно сделать переход в конструкцию case всего один раз - для включения, либо выключения реле, поэтому data принимает какое то значение из Serial-порта, switch переходит по этому значению, выполняет код, и значение обнуляется.
а что если поставить условие например если есть изменения в этой переменной то выполнить switch ? так проще ведь, и сделать проверку на то что после изменения этой переменной должна например включиться определенная реле, если же не сработало то автоматически включить и снова проверить результат выполнения, и если уже после 3 попыток не сработало выдать алерт что что-то не работает из hadware, а если сработало то ничего не делать
Очень плохо смотрится заставка школы технического творчества..., которую показывают очень часто, прям какое-то НЛП, зачем так делать?! Достаточно было один, максимум пару раз показать, но не все же время ее крутить!! Как для полных идиотов, нужно же хоть немного уважать гостей своего канала! :(
Хочу сообщить некоторые факты, о которых обычно не упоминают в руководствах по Ардуино:
1. При скорости 9600 один байт передается округленно за 1 мС.
2. Команда отправки байта, например write выполняется намного быстрее, чем uart отправляет байт - потому что она просто помещает байт в буфер последовательного порта. Поэтому если вам нужно, к примеру, переключить передатчик на прием после отправки байта - пользуйтесь командой flush. Команда чтения тоже выполняется быстрее, чем происходит приём байта - потому-что просто берет байт из буфера. О приходе очередного байта нам сообщает функция available.
3. Текстовая строка, которую отправляет ардуино по команде println автоматически дополняется двумя "непечатными"символами - «перевод строки» и «конец строки». Не забывайте об этом, если вам важно, сколько байт вы отправляете.
4. Размер буферов приема и передачи - 64байта. Если вы медленно считываете байты или слишком быстро отправляете - может происходить утеря информации.
5. Ардуино копирует байты из uart в буфер при приеме и из буфера в uart при передаче с использованием механизма прерываний. Если вы используете функцию nointerrupt это может нарушить работу функций serial.
6. Приоритет прерываний отправки байта выше прерываний приема байта - поэтому одновременный прием и отправка байт может вызвать задержку приема байт.
7. Приоритет внешних прерываний (int0, int1) выше, чем прерываний uart. Поэтому длительная обработка внешних прерываний вызовет сбои в работе serial .
Если кто-нибудь знает что-то интересное, о чем я не написал - поделитесь пожалуйста этим в комментариях.
Это ценная информация, спасибо!
Все хорошо, но маленькое уточнение- пятый пункт должен выглядеть так
5. Ардуино копирует байты из uart в буфер uart при приеме, и из буфера uart в uart при передаче, с использованием механизма прерываний. Если вы используете функцию nointerrupt это может нарушить работу функций serial.
А то ломай голову "чайнику"- из какого буфера...
Очень понятный и ясный урок, подробные замечания чего нет у других.
Сайт с подробностями о библиотеке сериал недоступен
Битрейт не сленг, а термин. Для установки скорости передачи в некоторых языках программирования среди прочих установок порта нужно указывать параметр baudRate, а это и есть битрейт. В си он тоже так называется и устанавливается в команде порт.begin в скобках.
Здравствуйте, подскажите, как в консоль порта передать НА ардуинку число (не символ). например число 5. Символьного обозначения этому числу нет. Как такое число напечатать в консоле?
а как сделать то же самое, но с удаленным управлением с помощью wi-fi
Спасибо! Очень познавательно. :-) Так держать. :-)
то же начал увлекаться ардуиной) какие книги посоветуешь для начинающего??????
привет! спасибо за канал. очень просто и интересно рассказывал . просмотрю с удовольствие и другие..
так для чего пины TX RX на плате?
ссылка на ман serial не работает
Сделайте видео про параллельны подключения более 3 устройств по uart
да, да и мне пожалуйста по этой же теме
почитайте про RS485. нет параллельного подключения по UART.
ПОМОГИТЕ! В разделе инструменты, порт просто не могу выбрать он затемненный.
У меня такая проблема возникла. Ардуино мега, на ней CD модуль, GPS, Oied дисплей, Барометр DPS310, Кнопка сброса высоты, nRF24L01 Модуль с CD модулем отказался работать по SPI , Пришлось через сериал1 меги принять сериал с ардуино нано на которой установил nRF24L01( он принимает коррекцию высоты с базы, что то типо псевдо ртк ) Этот сигнал при включении сразу принимается, А ПОСЛЕ ВЫКЛЮЧЕНИЯ ЧЕРЕЗ ЭННОЕ ВРЕМЯ, СИГНАЛ ВСЁ ЕЩЁ МЕЛЬТИШИТ В ПОРТУ МЕГИ СЕКУНД 20, а так же записывается на карту, В ЧЕМ МОЖЕТ БЫТЬ ПРОБЛЕМА ???
Добрый день, очень нужно что бы данные NMEA поступающие на вход Arduino (RS232/RS422), онлайн отображались на LCD. Это вообще возможно?
Конечно возможно. NMEA Символьный формат. Вынул координаты и отобразил.
К сожалению, не получается подружить softserial и serial. :(
При проверки скетча выходит ошибка :
exit status 1
case label '11' not within a switch statement
Подскажите пожалуйста в чем проблемам??
Подскажите как использовать не 32 байта а 64 у меня не хватает одного буфера не влазит передача с передатчика на приемник
Читай «на лету».
Чудный комментарий в коде "реле включается по LOW из-за оптопар"... А поподробнее, каким образом оптопары влияют на это?
В его конкретной реализации релейной платы аноды светодиодов оптопар подтянуты через резистор к плюсу. А включение оптопары происходит подачей «нуля» на катод светодиода оптопары. Вполне грамотное решение, учитыаая, что сразу после настройки рина платыАрдуино на вывод его состояние - высокий уровень.
Ссылка на описание библиотеки Serial не работает
Как лучше всего данные например влажности через сериал записать в энергонезависимую память. Возможно ли это?
Да ,можно есть специальная библиотека
Познавательно и доходчиво. Спасибо.
Я всё понимаю, что проще сказать "функция" про принт и сериал, но Serial это класс, а print и println его методы.
Можно абстрагироваться и новичкам сказать так, иначе придётся объяснять ООП, что СИЛЬНО замедлит процесс обучения и поднимет порог вхождения.
Вялiкi дзякуй!!
Спасибо!Как всегда молодцы!!!И правильно подмечено в коментариях ,что нужно учиться самому писать программы а не готовыми пользоваться.Оно полезний.
А где ссылка?
Хорошо рассказываешь. Лайк
А как сделать тоже самое, только посылая в порт не цифры а какие нибудь предложения, например "Port1_ON" , "Port1_OFF"?
Используй #define
@@TheWladberlin ахаха )))
Задать Port1 как переменную равную цифре.
а в чём проблема? передаёшь и получаешь как стринг.
Классное видео!! спасибо
Очень информативно
Где програма для управление Реле ?
Пожалуиста добавит линк для скачать.
Все было показано на скриншотах, теперь будет гораздо полезнее, если вы не скопируете, а напишите ее своими ручками ;)
А как включить теперь реле?
Самый простой вариант рассмотрен. А если куча разной инфы от датчика. Придётся парить
красавчег очень интересно!!!но врятли всем!!!%%%
Спасибо
Super!
А зачем строка data = 0?
Если не указать обнуление переменной, то программа вновь и вновь будет переходить по конструкции Switch(data) в тот case, которому будет равна переменная data. Нам же нужно сделать переход в конструкцию case всего один раз - для включения, либо выключения реле, поэтому data принимает какое то значение из Serial-порта, switch переходит по этому значению, выполняет код, и значение обнуляется.
а что если поставить условие например если есть изменения в этой переменной то выполнить switch ? так проще ведь, и сделать проверку на то что после изменения этой переменной должна например включиться определенная реле, если же не сработало то автоматически включить и снова проверить результат выполнения, и если уже после 3 попыток не сработало выдать алерт что что-то не работает из hadware, а если сработало то ничего не делать
спасиба большое
Ну вы ребята
Мон не работает. Вымагает деньги.
Спасибо за урок.
Ссылка pashkevich.me/article/6.html у меня не работает.
До этого было все понятно. Не понятно какое практическое применение порта и как это применяеться.((
Чтобы выводить данные на комп или передавать данные другим устройствам, например wifi модулю esp8266
Или общаться с другим ардуино по uart. (входы rx tx и gnd). Есть видео как правильно подключить
Сайт Автора похоже взломан, не переходите по нему.
Спасибо за предупреждение, это сторонний сайт, где была хорошая статья на тему видео. Удалю из описания..
Использовать пины для своих нужд)
Free Coloring Pages For Kids
Nothing Found
На то они и уроки.
За цитату из дуропедии - неуд.
"старые добрые светодиоды" )))
Когда нет старых добрых реле,
используем моргалки(светодиоды).
Слишком быстро и не понятно.
Почему канал мертвый?
Ничего подобного, 11-й выпуск вот-вот выйдет :) О причинах задержки было рассказано в сообществе Вконтакте.
ууу, понятно, тогда ждем новых видео)
Кстати а можно ли с линукса, прямо с терминала что то отправить в ардуину
ну тоесть по UART
Млин, "музыка" убивает.
Годный же ролик...
7:30
Тушу.
Полезно, но ну его нафиг. Пойду поищу без долбомузыки :(
Очень плохо смотрится заставка школы технического творчества..., которую показывают очень часто, прям какое-то НЛП, зачем так делать?! Достаточно было один, максимум пару раз показать, но не все же время ее крутить!! Как для полных идиотов, нужно же хоть немного уважать гостей своего канала! :(
ЧЕЛ ТЫ КЛОУН
согласен
скатываетесь(((
Баран! TX - передача, а RX - приём!
ссылка на ман serial не работает