Уроки Arduino. Общение по Serial, парсинг данных, протоколы связи

  Рет қаралды 174,422

Заметки Ардуинщика

Заметки Ардуинщика

Күн бұрын

В этом уроке разберём основные алгоритмы парсинга данных и общения по Serial/COM/UART. Научимся создавать свои протоколы связи и управлять чем угодно при помощи текстовых команд.
► Огромный стартовый набор GyverKIT: kit.alexgyver.ru/
► Скетчи из урока: github.com/AlexGyver/tutorials/
► Библиотека Parser: github.com/GyverLibs/GParser
► Библиотека AsyncStream: github.com/GyverLibs/AsyncStream
► Уроки Arduino на сайте: alexgyver.ru/lessons/
► Модули и датчики с Али: alexgyver.ru/arduino_shop/
► Страница "Заметок Ардуинщика": alexgyver.ru/arduino_lessons/
00:00 - Начало
02:03 - Встроенные функции парсинга
03:28 - Управляем яркостью светодиода
03:50 - Протоколы передачи данных
05:31 - Делаем простейший протокол
06:28 - Подключаем RGB светодиод
07:09 - Работаем с readBytes
08:58 - Парсим N значений, strtok
09:40 - Парсим N чисел
10:29 - Парсим разнородные данные, Parser.h
12:25 - Пишем протокол для ледов и серво
13:25 - Ардуина управляет Ардуиной
13:57 - Ускоряем readBytes, костыли
Теги: #arduino #уроки #ардуино #alexgyver
●●●●●●●●●●●●●●●●●●●●
► Основной канал: / alexgyvershow
► Поддержать автора alexgyver.ru/support_alex/
► Официальный сайт: alexgyver.ru/
► Почта: alex@alexgyver.ru

Пікірлер: 337
@bumbarabun
@bumbarabun 3 жыл бұрын
15:13 ошибка, вместо логического "И" там бинарный, странно, что не вылезло при тестировании.
@ArduNotes
@ArduNotes 3 жыл бұрын
спасибо! Исправлю в примерах
@bumbarabun
@bumbarabun 3 жыл бұрын
@@ArduNotes я в последнее время предпочитаю альтернативную форму записи - and гораздо тяжелее перепутать с bitand, чем & vs &&. Или можно для бинарного использовать старую форму, а для логического новую.
@MiaminZD
@MiaminZD 3 жыл бұрын
@@ArduNotes Zinkin Mitya Интересно в условии стоит millis .т.е. таймают по условию должен быть миллисекундах, а вывод Serial.print показывает в микросекунда. Как? Как я понимаю минимальная задержка будет 10 миллисекунд.
@wt8712
@wt8712 2 жыл бұрын
@@MiaminZD Вывод показывает сколько микросекунд исполнялся код на 39-40 строке, а вызываться он будет не чаще, чем раз в 10 миллисекунд
@dmitrykolesov1651
@dmitrykolesov1651 9 ай бұрын
Спасибо огромное! Без этого не работало. Этот комментарий должен быть вверху.
@notsaucemanofficial
@notsaucemanofficial 3 жыл бұрын
Второе название канала - "ценнейшая находка для ардуинщика".
@ilya7zz
@ilya7zz 3 жыл бұрын
О, как раз актуально! :)
@IgorStepochkin
@IgorStepochkin 3 жыл бұрын
Ты мои мысли прям читаешь) Перелопатил по этой теме уже все что можно
@sorochinsky
@sorochinsky 3 жыл бұрын
Высший пилотаж, объяснить сложное просто. Спасибо!😊
@maxfrec8487
@maxfrec8487 3 жыл бұрын
Омск опять смотрит! Лайк за видео!
@ruslan.zhumabai
@ruslan.zhumabai 3 жыл бұрын
Решено много вопросов в голове. Однозначно лайк за таких видос.
@gdmsave
@gdmsave 3 жыл бұрын
Спасибо! Именно то, чего не хватало))
@user-gc2te5fn1q
@user-gc2te5fn1q 3 жыл бұрын
Алекс, сделай разбор кода какого-нибудь своего проекта. Видео с светомузыкой на гиперкубе было топовым, очень классно и понятно ты все объяснил. Я потом, используя тот алгоритм, переписал старую твою светомузыку и выглядит это прекрасно. Я это к тому, чтоб ты рассказал про какой-то код на каком-то более конкретном примере
@encoder10101
@encoder10101 3 жыл бұрын
Класс, игрался со связью по serial между 8266 и ардуино пару лет назад. Спаял делитель так как платы на разное напряжение и... Забросил) самое время достать снова всю эту шляпу и поиграться снова. Спасибо за все тонкости и за асинхронность. Жму волосатую руку.
@gebolat7812
@gebolat7812 3 жыл бұрын
Я вот в этом ничего не понимаю, но очень внимательно посмотрел. Думаю нужно несколько раз пересмотреть
@--r3381
@--r3381 3 жыл бұрын
Ооо, то что надо, спасибо большое! У меня контроллер моноколеса периодически шлет массив с циферками, с ними мне как раз нужно будет работать в ардуине.
@user-pm6gj3qc5y
@user-pm6gj3qc5y 3 жыл бұрын
Давно хотел научиться передавать команды на ардуино или esp по блютуз и вай фай. Спасибо. Жду следущий урок
@lorensstudio3233
@lorensstudio3233 3 жыл бұрын
Блин, быстрее бы следующее видео, у меня как раз сейчас стоит вопрос передачи данных в приложение на компьютере.
@Ivan_sev
@Ivan_sev 3 жыл бұрын
Мне тоже нужно
@slv8507
@slv8507 3 жыл бұрын
Присоединяюсь! Например такая задача: массив данных (фрейм буфер) отправлять на процессинг и там отрисовывать, чтоб в маленький экран не вглядываться. Тут нужно будет как то синхронизироваться. Вроде бы получилось, но что делать если буфер содержит те же данные что для синхронизации используются?
@krutoyinfo
@krutoyinfo 3 жыл бұрын
У тебя ж com порт есть. Открывай его с компа и читай
@hutoryanin
@hutoryanin 3 жыл бұрын
Благодарю, доступно, подробно, а главное интересно. *Л. а. й. к.*
@igorpr.8188
@igorpr.8188 3 жыл бұрын
Спасибо большое за ценный урок! Очень важная информация!
@G-P_H-T
@G-P_H-T 3 жыл бұрын
Приветствую Александр. Ой как просится парсинг на гайвер-контрол тепличный, аж в немоготу ))) Спасибо за добротные уроки ардуинщика!
@alkatrazbd2314
@alkatrazbd2314 3 жыл бұрын
Высший класс! только начал изучать с++
@igelbox.
@igelbox. 3 жыл бұрын
Ой, на 8:50 - потенциальная запись за пределы массива. (если придёт пакет в 30 байт, то мы запишем NULL в 31й элемент массива)
@ravil6018
@ravil6018 3 жыл бұрын
Изумительно! Спасибо большое! :)
@illya-litkin
@illya-litkin 3 жыл бұрын
очень бы хотелось увидеть уроки про переход от ардуин к голым мк. минимальную обвязку чипа, подключение к компу и т.д.
@ArduNotes
@ArduNotes 3 жыл бұрын
огромный гайд выйдет через пару недель
@bbnmn4800
@bbnmn4800 2 жыл бұрын
@@ArduNotes когда
@e-benz
@e-benz 3 жыл бұрын
Алекс, спасибо за урок, буду благодарен если разберешь общение ардуино с сервером
@boriskash1985
@boriskash1985 3 жыл бұрын
Очень интересно!Хоть и не понятно много чего
@user-xu8ds8kk8l
@user-xu8ds8kk8l 3 жыл бұрын
Спасибо, Алекс!
@tkaisar
@tkaisar 3 жыл бұрын
Спасибо! То, что надо!
@elenapoplos9537
@elenapoplos9537 3 жыл бұрын
Спасибо за видео и советы Поучительный материал
@mrAlexandrSmith
@mrAlexandrSmith 3 жыл бұрын
очень полезный видос! Спасибо!
@user-bh2ot5ks8f
@user-bh2ot5ks8f 3 жыл бұрын
Я в свое время написал для VBA приложений JSON парсер для хранения данных и обмена между приложениями в текстовом формате, получилось достаточно просто и эффективно, но для для ресурсов микроконтроллера лучшее решение применение команд: ключ, значеие.
@QazaksTanos
@QazaksTanos 3 жыл бұрын
аааа круто, скорей бы новый урок
@lakosh889
@lakosh889 3 жыл бұрын
Я 4 года ждал это видео
@user-lx3rt1ib8d
@user-lx3rt1ib8d 4 ай бұрын
Спасибо, Alex🤝
@pavelv882
@pavelv882 Жыл бұрын
Спасибо, очень интересный урок получился. Может быть добавить еще пример, как две ардуинки могут управлять друг-другом, чтобы обмен информацией шел между ними в разном направлении, можно наверное интересный проект сделать.
@tov.engineer41
@tov.engineer41 3 жыл бұрын
Пасибо за уроки, чуваки
@user-uw1uo3fu4m
@user-uw1uo3fu4m 3 жыл бұрын
Круто и простопонятно, ещё ещё требуют наши мозги
@tiMer23
@tiMer23 3 жыл бұрын
Как то, года 3 назад. Просил такой видос, дождался)))
@encoder10101
@encoder10101 3 жыл бұрын
Такая же херня
@user-ci8hd6yi4i
@user-ci8hd6yi4i 3 жыл бұрын
Алекс, за уроки респект, многим будет полезно) Хочу предложить ещё один вариант, более простой с точки зрения наглядности и простоты реализации, при этом такой же по вычислительной сложности Я у себя на стмках использую структуры, которые побайтово передаю. Можно даже битовые поля юзать для состояний светодиодов и прочих булевых штук При этом можно как делать одну структуру для разных команд - первое поле означает саму команду, второе поле означает значение команды, можно так же несколько полей делать спокойно (ну или хотя бы писать, сколько их, в первом байте) И для команд, имхо, гораздо удобнее запихать всё в enum, тогда читаемость кода возрастает, проще писать и отлаживать, а для проца enum это тот же инт, просто "с названиями" Либо второй вариант со структурами - передавать структуру состояния, в которой задавать все параметры сразу, просто подряд Единственная проблема, которая может возникнуть, это разных способ хранения структур (маловероятно), битовых полей (очень вероятно), если такие используются. У разных платформ (ПК - Ардуина) может быть разный порядок следования битов в битовых полях, тогда будет проблема Но для связи ардуинка-ардуинка, есп-есп или стм-стм, вариант прямо супер рабочий и ультра удобный, советую присмотреться)) Пы.Сы.: да, коммент на двух видосах, потому что здесь он ещё актуальнее))
@ArduNotes
@ArduNotes 3 жыл бұрын
передача байтовым потоком - тема для отдельного урока
@user-lt6vw9vn6q
@user-lt6vw9vn6q 3 жыл бұрын
Ой спасибо, братик, какраз к дипломной работе подоспел!!!!
@user-lt2xw1gs1r
@user-lt2xw1gs1r 3 жыл бұрын
кренеть, вот теперь начнётся жара...
@ferafon
@ferafon 3 жыл бұрын
Супер тема !!!
@Next__Play
@Next__Play 3 жыл бұрын
Хорошее видео. Лайк.
@Alexander_Bond
@Alexander_Bond 3 жыл бұрын
красававчег очень актуально и подробно обьяснено
@SIM31r
@SIM31r 3 жыл бұрын
Лайк за Терминатора )
@ifynk
@ifynk 3 жыл бұрын
Актуально, спасибо.
@multitube_original
@multitube_original 3 жыл бұрын
Вооооооооот я уже начинаю разбираться в кодах! А это сулит новые свершения. БлагоДарю тебе Гувер за твои старания, ты и сам от этого получаешь неистовое удовольствие!)
@ag4540
@ag4540 2 жыл бұрын
Чтобы упростить процесс приема пакета - все эти таймауты - можно же использовать структуру TLV ru.m.wikipedia.org/wiki/Tag-length-value Часть пакета tag/type и length имеет фиксированную длину, а длина пэйлоада будет известна из поля length, в итоге мы точно знаем когда надо начинать парсить, а таймаут оставить для определения битости пакетов
@anatolytitov4169
@anatolytitov4169 3 жыл бұрын
Лучший канал по абдуринке!
@derungebundener2019
@derungebundener2019 3 жыл бұрын
Абдуринка - это выступления ВВП по ТВ :)
@krutoyinfo
@krutoyinfo 3 жыл бұрын
Англоязычный ютюб смотри, там это давно уже все есть. И проекты покруче
@MAD_ALEX
@MAD_ALEX 3 жыл бұрын
@@krutoyinfo ссылку на аналогичный урок пожалуйста
@anatolytitov4169
@anatolytitov4169 3 жыл бұрын
@@krutoyinfo Дайте ссылку плз.
@Specter690655
@Specter690655 3 жыл бұрын
Вот бы ещё по uart мульти-точке урок. Чтобы решение коллизий попинать
@ser.jovtok
@ser.jovtok 3 жыл бұрын
Сколько небольших производств заработало благодаря Гайверу, самому в этом всём разобраться очень сложно)
@0bit030
@0bit030 3 жыл бұрын
Мощщщно! =)
@alxlavr
@alxlavr 3 жыл бұрын
Расскажи как паркинг можно сделать на прерываниях на примере разбора данных от GPS. Это было бы здорово.
@rekusrenatas7349
@rekusrenatas7349 3 жыл бұрын
kruto raskazal, vsio ponetna
@yuripanov9670
@yuripanov9670 3 жыл бұрын
Класс!
@apt-toni
@apt-toni Жыл бұрын
Добрый день, подскажите будет обзор на параллельную работу ардуино, (по двум проводам соединяются от 2 и более), аналогия с ARINC 629.
@user-im6py6or6v
@user-im6py6or6v 2 жыл бұрын
Спасибо большое за уроки. А нет таких же библиотек для udp? Или может будет урок именно по upd esp32. Нашел пару уроков, но там передают одно состояние кнопки и все. Так какой же это парсинг.
@user-ju3rc3mw1w
@user-ju3rc3mw1w 3 жыл бұрын
В 0:12 после рабочего дня это было так жоска, будто я снова на первой субботней паре по квантам))) Но все равно спасибо, тема важная.
@MihaiTeSla
@MihaiTeSla 3 жыл бұрын
Ничего не понял, но очень познавательно.
@unclestepa
@unclestepa 3 жыл бұрын
Респект
@user-Master1969
@user-Master1969 7 ай бұрын
Урок ценный но уже тяжел для понимания начинающим.
@wowus1987
@wowus1987 3 жыл бұрын
Годнота!
@led-avto
@led-avto 2 жыл бұрын
Очень полезный урок. Подскажите что лучше использовать чтобы парсить ответы от SIM800. Уперся в то, что.... чем больше добавляют условий и обработку запросов, то строка (at) приходящая от SIM800 уменьшается... while (SIM800.available() > 0) { at += char(SIM800.read()); } if (at.indexOf("ATD" + phon + ";") > -1) { ******* } else if (at.indexOf("+CLIP:") > -1 { ******* }
@OnTheWayToTheDirection
@OnTheWayToTheDirection 2 жыл бұрын
Просьба пояснить момент 15:09 в видео. Получается, что теперь мы парсим, только если в буфере что - либо изменилось? А до этого парсили только если serial.avaliable?
@pisyakamushkin704
@pisyakamushkin704 3 жыл бұрын
Когда то давно изучал c, сейчас пишу только на python, и вдруг натыкаюсь на этот видос, аж мурашки по коже побежали как вспомнил обязательное присвоение типа переменной и указатели, ууфф.
@tim4ig
@tim4ig 3 жыл бұрын
Зато скорость роботы кода выше в разы
@ArduNotes
@ArduNotes 3 жыл бұрын
когда нибудь программисты совсем деградируют)
@ArduNotes
@ArduNotes 3 жыл бұрын
в десятки и сотни
@zloslov
@zloslov Жыл бұрын
Вот конечно еще бы вы медленнее все рассказывали. Но всё равно вы очень крутой спасибо вам огромное.
@ValeriyUnknown
@ValeriyUnknown 2 жыл бұрын
Теоретически можем использовать, что б метеостанция скидивала график смени всех датчиков?
@maxfrec8487
@maxfrec8487 3 жыл бұрын
Еще хотелось бы видео по сетевым каким то протоколам тот же изернет+интернет и работе с радиопередачей данных вифи/лора/блютуз и другие - т.е. что то в этом направлении.
@krutoyinfo
@krutoyinfo 3 жыл бұрын
Это требует много времени и стоит денег
@kalobyte
@kalobyte 3 жыл бұрын
инторнетный протокол слишком сложный для 8 битного контроллера и жрет много ресурсов есть готовые библиотеки для этого и там тот же принцип как и тут, парсить все равно придется а как передавать данные - зависит от конкретной библиотеки
@Dima-dj8lh
@Dima-dj8lh 3 жыл бұрын
Для пользователя вариант "название пробел аргумент пробел аргумент..." куда приятнее (просто разделители иные). Можно функции мутить int argc, char* argv[] и ещё char answer[] для записи в эту строку ответа. Удобно. Предпочитаю именно этот метод, т.к. лень ещё прогу делать с крутилками и жмакалками Но вот между устройствами только структуры, только хардкор.
@ArduNotes
@ArduNotes 3 жыл бұрын
между устройствами да, структуры) в другом уроке будем разбирать
@Dima-dj8lh
@Dima-dj8lh 3 жыл бұрын
@@ArduNotes , в догонку к методу: Можно несколько вариантов для ключа использовать case 'r': Print("big r") case 'R': Код на r Break
@ilyavenner
@ilyavenner 3 жыл бұрын
Неопределённое поведение в уроке. Найс! (Сарказм.)
@user-wx6wt3lx6t
@user-wx6wt3lx6t 3 жыл бұрын
а уроки с esp и сетью будут?)
@ArduNotes
@ArduNotes 3 жыл бұрын
да
@MrDent-tp4ke
@MrDent-tp4ke 3 жыл бұрын
esp 8266 - интересный модуль, в теории у него много возможностей но самая известная и пожалуй классическая- естественно деуатентификатор. Поэтому хотелось бы узнать что то ещё чтобы разнообразить работу с данным модулем
@levstarostin9699
@levstarostin9699 2 жыл бұрын
А ESP 32 будут?
@Evgeny_Miroshnichenko
@Evgeny_Miroshnichenko Жыл бұрын
@@MrDent-tp4ke деуатентификатор? Это что же такое "естественное", "классическое" и "самое известное", что о нём даже Гугл не слыхивал? Поясните это на понятном языке, пожалуйста.
@alexandr_84
@alexandr_84 3 жыл бұрын
Подскажите, пожалуйста, parseint обрабатывает числа со знаком "минус"?
@doshik9117
@doshik9117 3 жыл бұрын
Здравствуйте Алексей можно пожалуйста отдельный урок по esp8266, заранее спасибо)))
@UK8CFT
@UK8CFT 3 жыл бұрын
Его зовут Александр))
@user-lt2xw1gs1r
@user-lt2xw1gs1r 3 жыл бұрын
Александр, тема древняя, но все же хотя б мельком покажи как связать espшку и голосовое управление. отвечаю, люди высоко оценят 👍
@it8874
@it8874 3 жыл бұрын
Тоже ждешь финальную серию руки терминатора?
@marengobelboa5905
@marengobelboa5905 9 ай бұрын
Здравствуйте. Если мне нужно отправить на телефон показатели датчиков, например температуру воздуха, через Bluetooth, какой конструктор лучше использовать для создания приложения в телефоне?
@user-dk8rj3sk8m
@user-dk8rj3sk8m 3 жыл бұрын
Подкину идею, счётчик ёмкости аккумов с логгированием на ПК, графики, ограничение по току, напряжению 🙂
@androidpasha
@androidpasha 3 жыл бұрын
Json мне нравится)
@appbox8754
@appbox8754 3 жыл бұрын
а ёлочка?
@Slavasil
@Slavasil 3 жыл бұрын
нет блин xml
@liftoman_777
@liftoman_777 3 жыл бұрын
Шикарный канал, почему рекламмы нет
@ArduNotes
@ArduNotes 3 жыл бұрын
у нас только JLCPCB на рекламе, остальное не подходит по тематике =)
@leruetkins5565
@leruetkins5565 2 жыл бұрын
А я использую json формат, передаю данные через lora, вроде тоже неплохо работает.
@tohalav8740
@tohalav8740 3 жыл бұрын
В библиотеке Gyveroled в файле ExtFont для esp8266 надо include заменить на просто иначе не компилируется
@ArduNotes
@ArduNotes 3 жыл бұрын
странно, у людей компилилось. Мб у тебя яверсия ядра старая?
@AndrewPstvt
@AndrewPstvt 3 жыл бұрын
Да, у всех esp свои файлы работы с памятью и т.д. Это нужно учитывать и подключать нужные библиотеки с помощью макросов.
@Alexey_samodelkin
@Alexey_samodelkin 3 жыл бұрын
Сделай web для теплицы!
@user-wq4ft4gy2l
@user-wq4ft4gy2l 2 жыл бұрын
добрый вечер! Парсим N чисел выводит вместо терминатора 0 например 1,2; выводит 1 2 0 если нет знака ; терминатора то 1 2 Как убрать 0 ?
@titan1000
@titan1000 3 жыл бұрын
здравствуйте а можно тоже самое сделать только для обмена информацией использовать без беспроводную связи или нет ?
@ArduNotes
@ArduNotes 3 жыл бұрын
можно
@user-hd7hq4lf4y
@user-hd7hq4lf4y 3 жыл бұрын
Гайвер крут! Что еще сказать. Вот интересно, будет ли это также работать на ESP8266 ?
@ArduNotes
@ArduNotes 3 жыл бұрын
конечно
@lossofsoul3693
@lossofsoul3693 6 ай бұрын
расскажи о средствах обеспечения помехозащищенности) алгоритмы что делать если пакет не пришел до конца, пакет пришел битый (с искажениями) и т.д. о CRC, протоколах подтверждения от устройства об успешном получении пакета и т.д.
@idodoska
@idodoska 2 жыл бұрын
Привет. Я хочу сделать голосовую интеллект для телевизора, чтоб использовать место пульта. Как собрать плату для данного задач. Сделайте пожалуйста видеоролик по этой направления. Спасибо заранее
@user-sr6pi5lp3q
@user-sr6pi5lp3q Жыл бұрын
А готовые протоколы типа протобуф или жсон есть?
@megaavolt
@megaavolt Жыл бұрын
case 2 после обрыва передачи продолжает выдавать шим по последним данным,как обнулить если данные не приходят?
@user-mc7kc2bd8b
@user-mc7kc2bd8b 3 жыл бұрын
Ждём урока по FreeRTOS!!!!!!!
@ArduNotes
@ArduNotes 3 жыл бұрын
не имеет смысла на AVR
@Shef-Il
@Shef-Il 3 жыл бұрын
@@ArduNotes почему, я лично реалезовал пару проектов на нем? Согласен что на АВР это не очень эфективно, но тем не менее возможность разделить на потоки различные не ресурсоемкие процедуры на потоки иногда очень удобно
@AndrewPstvt
@AndrewPstvt 3 жыл бұрын
@@Shef-Il согласен, но все-таки обычные ардуинки лучше не использовать для таких проектов. FREERTOS может быть полезен на esp, тем более на 32 он уже "предустановлен".
@MAD_ALEX
@MAD_ALEX 3 жыл бұрын
@@Shef-Il зачем, если есть миллис и на крайний случай прерывания таймера
@Shef-Il
@Shef-Il 3 жыл бұрын
@@MAD_ALEX не в обиду, но если вы спрашиваете "зачем" и вспоминаете про "милис" вы явно очень начинающий, ведь это тоже самое что спросить"зачем вы летите в Египет, ведь солнце светит и на Урале"
@alexeytitov5863
@alexeytitov5863 3 жыл бұрын
В примере чтения строки с записью нуля в конце - ошибка же :) переполнение стека при получении 30 символов! (kzfaq.info/get/bejne/i9JgZrmczJ-lZGQ.html) Нужно или буфер выделять с запасом на 0 в конце, или в метод чтения передавать макс длину на 1 меньше.
@urashus7965
@urashus7965 2 жыл бұрын
опробовал вариант Вариант 3 (однобуквенный, без задержки) прекрасно но только с положительными числами при подачи минусового числа выход 0 можно это както исправить уже мозги кипят
@user-zk2yz4cf3d
@user-zk2yz4cf3d 3 жыл бұрын
Ну управлять светодиодами конечно прикольно, но можно ли сделать информационное табло из ардуинки, Ethernet шильда и двухстрочного дисплея, чтобы показывало температуру на улице и автобусы на ближайших остановках перед входной дверью?
@ArduNotes
@ArduNotes 3 жыл бұрын
что угодно можно. На простых примерах это должно было быть понятно
@ruslansanzharov5825
@ruslansanzharov5825 11 ай бұрын
8:47 тут проблема - если массив заполнится полностью на 30 символов, то мы зайдем за его границы. в readBytesUntil надо оставить 30, а в переменной надо сделать char data[30 + 1];
@dmitry7331
@dmitry7331 2 жыл бұрын
Сделай видео,как с приложения.
@Sergey.Volkov
@Sergey.Volkov 3 жыл бұрын
Как удостовериться что пакет принят полностью, и закончен по символу терминатора, а не таймауту? у меня когда пакеты идут часто они иногда смешиваются и всё плохо становится
@as_-_-_
@as_-_-_ 3 жыл бұрын
super
@user-cq1xv1gh3z
@user-cq1xv1gh3z 2 жыл бұрын
а когда управления аруино и светодиодами по otg на смартвоне
@idodoska
@idodoska 2 жыл бұрын
Привет. Я хочу сделать голосовую интеллект для телевизора, чтоб использовать место пульта. Как собрать плату для данного задач. Спасибо заранее
@mega_mak
@mega_mak 2 жыл бұрын
Отличное видео, давай тольно на СИ...
@ArduNotes
@ArduNotes 2 жыл бұрын
А оно на чем, на бейсике или питоне?..
@antinazi1022
@antinazi1022 3 жыл бұрын
Может кто знает сообщество мастеров по ЕСП 8266, где могут выполнить несложный заказ, без кидалова?
@dmitry_poliakov_ph
@dmitry_poliakov_ph 3 жыл бұрын
спасибо за урок. может кто подскажет как передать по радио в библиотеке rcSwitch несколько данных в одной посылке, а потом это дело распарсить на принимающей стороне? проблемка в том что команда send просит int
@ArduNotes
@ArduNotes 3 жыл бұрын
попробуй Gyver433, она всеядная
@user-wq4ft4gy2l
@user-wq4ft4gy2l 2 жыл бұрын
void loop() { // асинхронное чтение через AsyncStream if (Serial.available()) { char str[30]; int amount = Serial.readBytesUntil(';', str, 30); str[amount] = NULL; int data[10]; //буфер интов int count = 0;//счетчик интов char* offset = str;//указатель для работы while (true) { data[count++] = atoi(offset);//пишем число в буфер offset = strchr(offset,','); //поиск след запятой if (offset) offset++; //если это не null -продолжаем else break; //иначе покидаем цикл } for (int i = 0; i < count; i++) Serial.println(data[i]); } }
Уроки Ардуино. Работа с текстом, String и char[]
11:18
Заметки Ардуинщика
Рет қаралды 72 М.
Управляем Ардуиной с компьютера через Serial. Gui на Processing
55:31
Китайка и Пчелка 4 серия😂😆
00:19
KITAYKA
Рет қаралды 1,2 МЛН
Шокирующая Речь Выпускника 😳📽️@CarrolltonTexas
00:43
Глеб Рандалайнен
Рет қаралды 10 МЛН
Фишки Arduino, о которых ты не знал!
13:37
Заметки Ардуинщика
Рет қаралды 106 М.
Китайские тестеры компонентов - какой выбрать?
11:14
Заметки Ардуинщика
Рет қаралды 285 М.
Xiaomi Note 13 Pro по безумной цене в России
0:43
Простые Технологии
Рет қаралды 2 МЛН
Обзор игрового компьютера Макса 2в1
23:34
Carregando telefone com carregador cortado
1:01
Andcarli
Рет қаралды 2,1 МЛН
Выложил СВОЙ АЙФОН НА АВИТО #shorts
0:42
Дмитрий Левандовский
Рет қаралды 1,6 МЛН