Уроки Ардуино. Как написать скетч: многозадачность на millis() и переключение режимов

Уроки Ардуино. Как написать скетч: многозадачность на millis() и переключение режимов

380,836 Просмотров

Ссылки и html тэги не поддерживаются


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

Сергей Мельниченко
Сергей Мельниченко - 10.09.2023 14:59

А зачем флаги и дублирование функции? Определить функцию с параметрами и переменную таймера передавать по указателю, вместе с номером пина и задержкой

Ответить
ArduBlock 2.0
ArduBlock 2.0 - 09.09.2023 20:35

Отлично 👍

Ответить
Сергей Еременко
Сергей Еременко - 07.06.2023 18:18

Алекс приветствую. Меня зовут Сергей.
У меня возникла проблема не могу заставить шаговый двигатель step motor 28byj делать один оборот в одну сторону и оборот в другую сторону. Используя датчик определения тока ZMCT103C, чтобы это работало таким образом : когда через датчик тока проходит питание ( к примеру включили дрель) мотор проделывал олин оборот ( не важно в какую сторону) и при проподании питания через датчик тока ( отключили дрель) ардуино нано ждало 6 секунд и проворачивало мотор в обратную сторону на один оборот. Или использовать количество шагов в моторе вместо оборотов.
Помогите пожалуйста ☺️
Я думаю даже сделать ролик на такое было бы очень очень познавательно.
Я начинающий в этом деле и ни как не могу понять логики работы ардуино😢

Ответить
Oracle
Oracle - 25.05.2023 23:53

здравствуйте. спасибо за ваши труды очень помогают. но нужна помощь. я пока на уровне копипаста в написании скетча для ардуино. мне надо выводить оставшееся время в принт в секундах (библиотека TimerMs) что для этого написать в скетче и куда. заранее спасибо

Ответить
Иван Иванов
Иван Иванов - 16.05.2023 10:37

Здравствуйте, возможно ли снять обзор на библиотеки gyverportal и hub, спасибо

Ответить
Tim_001
Tim_001 - 08.05.2023 19:37

Обалденно интересно👍, но ни хрена не понятно 😆🤦‍♂️

Ответить
Михаил Ивонин
Михаил Ивонин - 28.04.2023 09:36

Для новичков конечно слишком быстрая выдача материала, не успеваешь понять, что, куда, зачем. Но, есть текстовая версия и это плюс.

Ответить
Азат Хакимов
Азат Хакимов - 22.04.2023 11:13

У меня так и не заработал этот пример с датчиком времени не понятно правильно ли я соединил , я соединил выводы дисплея SCL SDA VCC и GND с соответствующими ваводами на датчике времени , дисплкей горит но ничего не показывает, в окне редактора скетчей в мониторе не показывает время как на примере , и в графике совсем не от что у вас на примере дисплей просто подсветка горит и все двигатель не крутится и rgb светодиод гне еагирует где то что то я не так сделал , иду дальше надеюсь разберусь на более легких примераи подойду к этому хочу понять пинцип многозадачности и как он работает и в чем принцип и могу ли я его реализовать не прибегая к библиотекам многозадачности не совсем понял, прошу прощения .

Ответить
Петька Юсупов
Петька Юсупов - 19.04.2023 18:32

Привет., помогите, пожалуйста, не могу сделать скетч для светодиодов,
не могу добавить кнопки SAVE PAUSE RESET RUN чтобы
светодиоды могли повторяться по команде


int led1=10;
int led2=8;
int Received=0;



void setup(){

Serial.begin(9600);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
}
void loop(){

if(Serial.available()>0)
{
Received = Serial.read();
}


------------------------------------------------------------
/////// SAVE ///////
if start("SAVE")) {
led1 ;
}

///// RESET /////
if start("RESET")) {
led1 ;

}

////// RUN /////
if start("RUN")) {
led1 ;
}
//end if (PAUSE)
if start("PAUSE")) {
led1 ;

--------------------------------------------------------------
}

////////////////led1/////////////////////
if (Received =='1'){
digitalWrite(led1,HIGH);
}
if (Received == '2'){
digitalWrite(led1,LOW);
}

////////////////led2/////////////////////
if (Received =='3'){
digitalWrite(led2,HIGH);
}
if (Received == '4'){
digitalWrite(led2,LOW);
}
///////////////////////////////////////////
}

Ответить
Enreward Ronkhall
Enreward Ronkhall - 18.04.2023 17:37

Кажется со мной что-то не так, потому что даже по таким качественным, подробным, полным и интересным урокам я всё равно не могу научиться разрабатывать системы управления для проектов на МК... Но уроки действительно потрясающие. Огромное вам спасибо.

Ответить
Алексей К.
Алексей К. - 19.03.2023 05:11

А можно ли загрузить два скетча в одну ардуину?

Ответить
Maks Kit
Maks Kit - 18.02.2023 11:15

Это очень интересное видео, в том плане, что сначала посмотрел, ничего не понял. Пересмотрел пару уроков, ещё почитал в интернете, понял уже 5 минут видео, ну и так далее)
Оно блин мотивирует к самообучению, спасибо, Сань!)

Ответить
Самоделки и изобретения
Самоделки и изобретения - 06.02.2023 23:55

слушал, слушал и понял только то, что это тёмный лес.

Ответить
Антоха Батькович
Антоха Батькович - 04.02.2023 11:51

Расскажите пожалуйста подробнее про переполнение таймера, как с этим бороться и нужно ли бороться в принципе. Беззнаковая математика работает по другому, если из 0 вычесть максимальное беззнаковое, то счет будет верным.

Ответить
Мирон Смоляков
Мирон Смоляков - 25.01.2023 11:10

спасибо вам большое

Ответить
Alexandr Orlov
Alexandr Orlov - 20.01.2023 16:58

Все внятно интересно.....но так как то сложно😔

Ответить
Ga Al
Ga Al - 14.01.2023 14:39

Скорость 0.75 надо ставить иначе слишком быстро

Ответить
Tree Service
Tree Service - 01.01.2023 01:18

Вот вообще спасибо, всё в тему

Ответить
Виталий Кокос
Виталий Кокос - 25.12.2022 17:03

Суперматериал! Огромное спасибище!

Ответить
Sergej D.
Sergej D. - 21.12.2022 14:29

Огромное спасибо

Ответить
Павел Полунин
Павел Полунин - 21.12.2022 00:59

Очень грамотно! Прежде реализовал "таски" сам, и вот, нашел замечальное решение. Умные учатся на чужих, а неумные...

Ответить
Владислав Скакалин
Владислав Скакалин - 12.12.2022 18:59

Вопрос, наверное, не совсем в тему, но, может быть, подскажете - а можно ли программировать ардуино, если сидишь на линуксе? Есть прога такая?

Ответить
Сʀᴇᴀтоʀ by Coub
Сʀᴇᴀтоʀ by Coub - 11.12.2022 17:35

Как все просто выглядит. И в то же время темный лес когда сам залезешь. Лойс!

Ответить
Egor
Egor - 04.12.2022 10:23

Спасибо. Как инженер преподаватель - Спасибо! даже с низким поклоном. У вас дар оратора, разъясняете кратко, понятно и не монотонно.

Ответить
дин дин
дин дин - 29.11.2022 20:24

Собери зимнюю удочку на ардуино в ручном режиме и и 5 автоматических

Ответить
константин иванов
константин иванов - 29.11.2022 17:16

Привет!Большое спасибо Вам за ваши уроки! Не могу въехать, как в диспетчере задач сделать чтобы задачи выполнялись последовательно (по кругу)? Спасибою

Ответить
Vladimir T
Vladimir T - 19.10.2022 19:46

Может пора уже переходить на с/с++, прерывания, таймеры. Пора сделать второй шаг. И будут одни плюсы от этого перехода: размеры программ уменьшатся, появится ясность как все работает, скорость работы твоих программ увеличится.

Ответить
Ivan
Ivan - 08.10.2022 02:14

Hue wheel - ты сделал мой деееень!

Ответить
Jerej
Jerej - 01.10.2022 21:08

Спасибо, тебе, Александр!
Наконец-то получилось создать мелодию для проигрывания в фоновом режиме, используя millis() и tone().
Оказывается можно так просто озвучить любое событие в программе, не зависая не всяких delay().
Нужно создать пару массивов - для нот и длительностей (можно в PROGMEM области), да троечку глобальных переменных: таймер, счётчик и флаг запуска ( на static глючит).
Всё!
Пишем функцию и засовываем её имя в луп!
Привожу пример:
void music () {
if (flag_music) {
if (count < LENGTH && millis() - tmr > duration [count]) {
tone (PIN_TONE, note [count++]);
tmr = millis();
}
if (count_music >= LENGTH) {
noTone (PIN_TONE);
flag_music =0;
count =0;
}
}
}
Осталось в любом месте лупа поднять флаг (по условию, ессестно)!!!
Может кому пригодится для замены неприятных писков буззера!

Ответить
Адам Смит
Адам Смит - 08.09.2022 10:36

Эх вот бы на это всё плюсовых корутин навернуть с евент-лупом на основе хардварного таймера. Дёргать по кд millis() — это конечно костыль, и когда становится важным потребление — такие практики отправляются в утиль, ручками каждый раз засыпать — дублирование логики и вообще некруто.
Жаль, что gcc-avr их не поддерживает

Ответить
Адам Смит
Адам Смит - 08.09.2022 10:31

Что касается RTOS, помимо FreeRTOS существует, например, BuguRTOS от российского разработчика, которая хоть и подзаброшена, но поддерживает AVR и STM8

Ответить
Виталий Булкин
Виталий Булкин - 03.09.2022 23:55

Жаль, что я тупой, для меня это сложный видос

Ответить
Mazy Lord
Mazy Lord - 26.08.2022 02:01

Запустил GyverOS на Атмеге8515, очень полезная библиотека, просто и шустро 👍

Ответить
Vladimir Okulov
Vladimir Okulov - 25.08.2022 11:43

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

Ответить
Рдлчлч Влвосгсд
Рдлчлч Влвосгсд - 21.08.2022 00:47

Винда есть макос есть Линукс тоже как то там существует и теперь есть и гайвер ос

Ответить
Не профессионалы мы
Не профессионалы мы - 24.07.2022 21:51

Ты гений

Ответить
wywoke
wywoke - 17.07.2022 14:26

Почему не выполнил домашнее задания?
Ардуино дома забыл

Ответить
Богданов Максим
Богданов Максим - 14.07.2022 18:27

Один из важнейших видосов на канале, очень часто к нему обращаюсь

Ответить
Ира Фомченко
Ира Фомченко - 14.07.2022 13:06

Никому не советую юзать Ардуино. Но этот урок понравился! Лайк.

Ответить
mixa xm
mixa xm - 01.07.2022 21:16

Как сделать задержку работ нагрузки разовой нажатием кнопки???? Подскажите нужен скетч ,
Помоги пожалуйста, заранее благодарен , , Подписан

Ответить
Сармат Цихиев
Сармат Цихиев - 30.06.2022 04:50

хуевил)

Ответить
Anton Sinitsyn
Anton Sinitsyn - 31.05.2022 14:44

Читается Хью вил, а не хуевил

Ответить
изобретения
изобретения - 20.04.2022 12:48

Хороший ты малец конечно,много объясняешь но такую инфу для начинающих так быстро тратата тут через флаг тут миллис сбрасываешь нихрена не понятно хотя я и писал мигание на миллис и срабатывание по датчикам для самодельного робота пылесоса, для начинающих сильно поверхностно нам надо разжевать это от сюда и это отвечает зато,да я знаю что у тебя много уроков но если пояснять в каждом откуда чего проще научиться а то ты ссылаешся на свои другие видео а хрен знает какое из них то о котором ты говоришь мне вот надо кнопка с фиксацией,, триггер,, самый простой скетч а тут у тебя написано написано тут же стираешь половина не понятно

Ответить
Евгений Чумак
Евгений Чумак - 03.04.2022 13:38

Спасибо за уроки, все понятно.

Ответить
Дима Самойлов
Дима Самойлов - 19.03.2022 22:58

Мне нравится учится Ардуино ,но я все равно частично не понимаю некоторые моменты🥺

Ответить
Shock Blaze
Shock Blaze - 16.03.2022 15:49

Дай тебе бог здоровья. Голову сломал с таймерами Ардуино и расчетом промежутков времени, а оказалось они мне вообще не нужны. Спасибо большое

Ответить