✔️Должен знать каждый программист - условные операторы и циклы. Уроки Arduino для начинающих
Вставка
- Опубліковано 26 жов 2016
- Подписывайся:
ВК: lrazum
Instagram: / viktor_osin_
Ссылки для заказа необходимых компонентов: labrazum.ru/komponentyi/
======================================================
ОПИСАНИЕ:
Сегодня мы разберемся с такими понятиями как условные операторы и циклы, поговорим о том, как ими пользоваться и разберем несколько примеров их применения.
======================================================
Остальные выпуски курса "Arduino для начинающих": • ОБРАЗОВАТЕЛЬНОЕ: Уроки...
======================================================
Код последнего примера, а так же схему подключения, вы найдете здесь circuits.io/circuits/2955520-... это ссылка на проект в симуляторе circuits, в нем можно сразу же посмотреть на работу кода.
Переменные и их типы:
myrobot.ru/stepbystep/pr_varia...
Прочие материалы видеоролика:
github.com/viktor-osin/YouTub... - Наука та технологія
Значимость совета определяется его живучестью в времени.
Пятый год пошёл, как эти уроки вышли в свет, и всё ещё приносят пользу.
Благодарю.
Это лучшее что я видел из серии "Ардуино и начальный С++ для чайников". Лайк и подписка, ты сделал большую работу!
За все мои долгие годы просмотра роликов, впервые оставляю комментарий! Подача материала последовательная и доходчивая, примеры понятные, визуализация отличная! Просто не к чему придраться... Спасибо!!! С удовольствием открываю для себя новую область знаний, которая сейчас мне ну оооочень нужна.
Чувак ты лучше всех разжевываеш и + инфографика в видео !
АГА
Чувак очень долго тебя искал. Спасибо за проделанную работу. Пожалуйста продолжайте.
Когда новые уроки жду не дождусь...Отлично объясняете больше таких не нашел, даже забугорных нет лучше.
Короче вы лучший. Пожалуйста только продолжайте.
Денис Афонин, продолжение будет, извините что заставляю ждать, но перед сессией под грудой курсовых пока нет времени заниматься роликами. В общем, как только, так сразу :)
Бросай институт:) Нам нужны новые видео ))
Денис Афонин Я тоже посмотрел разных блогеров в поисках уроков, дабы научиться программировать ардуино, ради одной поделки. Пересматривал по несколько раз, но приходится дочитывать, додумывать, тратить много времени. Тут - гораздо понятнее и доходчивее, да еще и ДЗ потянуло сделать. А они закрепят материал в памяти. Очень качественные уроки!
Вот бы такие уроки по STM32 - это была бы "бомба" в лучшем смысле этого слова :)
Я бы такой курс купил бы.
@@CaytoCatugawa а в чем отличие в написании программ для стм от ардуино, кроме других номеров пинов? Проще: чем отличаются языки программирования С от С?
купил себе набор матрёшкаZ, там пособие программисты ,друг для друга писали. А здесь парень очень хорошо объясняет.Спасибо.
Очень доходчиво и понятно, спасибо большое за труд!
Именно тот урок который я давно искал.
Отличная подача материалов. Все просто и доступно. За примеры из жизни отдельный респект!
единствееный человек,который оходчиво объясняет!!!!спасибо!
*_молодец! учусь на твоих уроках!)_*
Супер!!! Давно такое искал, все получилось. Смотрел Jeremy Blum, на 2м уроке ничего не понял. А у тебя просто шикарно. Пожалуйста не бросай проект, эти ведео будут полезны еще очень много лет
Очень доходчиво все объясняешь. Спасибо за труды!
Храни Вас Господь! Вы один из тех светильников, которые дают свет от избытка доброты!
Етить.
Какой предел мечтаний то!
Что-то дз легкое т.к. ты уже все подробно рассказал про цикл For. Спасибо еще за такие хорошие уроки)
если бы все видео-уроки были такими качественными, проработанными и содержательными...
особенно понравились мультяшные примеры )))
Очень нравятся выпуски, все доходчиво и понятно, продолжай в том же духе
Отлично, доходчиво. Жду новых выпусков
Спасибо! Очень полезный урок!
Спасибо, друг!!! Наконец-то понятно!!!
Всё доступно и понятно! Я в итоге дошел до функций и смастрячил себе поворотники на авто сзади))) А так же стоп-сигнал с бегающим поворотником туда- сюда. Единственно тут скетч без стоп сигнала. Конечно есть недоработки.
void setup() //Вводная
{
pinMode(2, OUTPUT); // Левое плечо оптрон
pinMode(3, OUTPUT); // Правое плечо оптрон
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT); // Выходы управления базами транзисторов на ленту 4 - 11 pin's
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, INPUT); // Левый входной сигнал порт 2
pinMode(13, INPUT); // Правый входной сигнал порт 3
}
void loop() // Основной цикл программы
{
if (digitalRead(12) == HIGH) // Левый Сигнал
{
for (uint8_t i = 0; i = 4; pin--)
{
digitalWrite(pin, LOW);
delay(100);
}
}
Вы большой молодец и нам очень приятно! :) Если позволите, один совет - дабы не прописывать pinMode отдельно для каждого порта ввода-вывода идущего по порядку (в вашем случае со 2 по 11), их можно задать в один цикл for, где указать pinMode(i, OUTPUT);
@@LabRazum Благодарю!) В итоге всё сделал и машину продал)))
Всё чётко объяснил!Спасибо!
I learned a lot of thinks for programming.thank you for teaching
Вы очень Молодцы очень полезные уроки Спасибо большое👍
ТЫ ЛУЧШИЙ 👍ПРОФЕССИОНАЛ
Молодец все доступно и понятно.
Хорошие уроки. Недождусь когда с командировки вернусь. Спасибо вам!
классно .и как всё доходчиво и понятно. лайк как всегда
Спасибо большое за качественные уроки )))) лайк и подписка)))
круто! еще не пришла моя ардуинка, программирую пока в circuits! жду твоих уроков с нетерпением!
я имено тут узнал как програмировать и основы.Но жаль я ище не получил плату с алиеекспрес.И спасибо очень хорошые видосики,продолжайте в том же духе)))
Это лучшие уроки!!!!
Спасибо Вам, образцовое видео на просторах ютуб на данную тему, оформление,отношение к аудитории,логика изложения,монтаж, а главное смысл объяснений как и что откуда берется, продолжайте в том же духе, мне как начинающему очень интересно, Вы великий молодец)
спасибо . хорошая подача материала
Наконец то нашел достойный канал!
Пожалуй лучшее объяснение в мире
молодец! локанично и понятно!подпись и лайк!
Много високо ниво!!!!!!! Благодаря!
спасибо за курс!) Еще бы видосик как формировать пакеты для отправления команд на другую ардуино
Великолепные занятия! Очень точно и лаконично. Но мне кажется было бы полезным иметь учащимся полную библиотеку программирования (коды, операторы и какие их функции).
Хорошие видео! Лайк!
Отличный урок, добавил к себе на стену в ВК///очень подробно...подписался и поставил Лайк
молодец, так держать. по возможности делай выпуски по чаще и более подробно. допустим типы переменных вы пропустили, а это зря. многим не понятно какие когда применять, какие нельзя, какие просто не целесообразно
спасибо большое, всё получилось и домашка тоже!
подскажите пожалуйста, если у вас получилась домашка, как вы сделали запуск с кнопки, не могу понять
Спасибо!!!
ку! очень хочется увидеть выпуск про прерывания аппаратные и по таймеру. и расскажите плиз про библиотеки msTimer, если можно в картинках, принцип прерываний и условную много поточность. Из за картинок ваши выпуски смотрю) более понятно когда графически видишь как работает.
Еще очень бы хотелось увидеть выпуск про создание классов. Как можно доходчивей и понятнее и желательно с графиками.
Спасибо ❤❤❤
Спасибо, за подробные уроки. Всё доступно, и понятно. Ждём новых уроков.
Есть вопрос по одному из примеров, там где участвуют 10 светодиодов. Почти во всём разобрался, поигрался с порядком включения/ выключения, со скоростью, но пока не смог запускать /останавливать программу не в автоматическом режиме, а с кнопки. Подскажешь?
круто спасибо
спс за видео, а за ссылки отдельное спс. Где у вас тут книга отзывов и предложений?:))
Классно, спасибо. Может я какое то видео пропустил, про переменные, так что тут пришлось разобраться с областью видимости переменных и понять, что переменная "pin" объявленная в цикле "for" является локальной для этого цикла. Пока этого знания не было казалось странным, что код работает и диоды гаснут, ведь вроде как "pin" уже после первого цикла равно "12" Но когда разобрался, что у каждого цикла своя "pin" и они никак не связаны, все встало на свои места.
неужели тяжело поставить человеку лайк за проделанную работу, смотрят ведь не случайные люди
Отлично объясняешь. Подключил две кнопки. Одну для зажигания светодиодов со второго по одиннадцатый, вторую для обратного включения( с 11по 2). У меня такой вопрос - можно ли подключить обе кнопки с функцией устранения дребезга? Иными словами, что бы не держать кнопку постоянно нажатой. Нажал пошли огоньки, ещё раз нажал выключил.Спасибо.
Хотелось бы спросить, а на языке Python библиотека PySerial поможет во взаимодействии с Arduino ???
Мне кажется, что сценарий пишут два человекам: один программист, а второй начинающий. И второй постоянно гоняет первого, чтобы нормально объяснил. Я из вторых, но мне очень нравится этот курс. Спасибо.
*_прошу можешь записать видео об управлении адресными светодиодами с ардуино)_*
Спасибо
Dzięki, że jesteś wreszcie zaczynam coś rozumieć.
ps.
Dobrze, że w szkole miałem j.rosyjski.:)
15:01 тебе спасибо!
Приветствую. Подскажите, как кнопкой включить один цикл? Спасибо.
Super.
Приветствую. На 8;37 при использовании do {
}
while ();
Не получается использовать.
...Уважаемый автор, у вас там оговорка относительно продолжительности выполнения команды: не 1 секунда, а 0,1 с (или 100 мс). За уроки спасибо.
А можно ли в условии прописать дые проверки или нужно прописывать два условия ? .например if(a>b||a>c){ }
Привет , вот вбил в голову себе вопрос, какая разница между if и while, по сути они одинаковые, выполняют то что в скобках при верном условии, но всетаки, что и в каких случаях лучше использовать
Классно, более понятно, а возможно написать код, что бы был реверс двигателя, ну к примеру нажал кнопку без фиксации мотор закрутился в одну строну, отжал он остановился, снова нажимаем эту же кнопку, но он уже крутиться в другую сторону?! движок на 12 вольт или кулер от компа
Возможно ли здесь объявить порт через переменную . примерно так Port==3
Почему при загрузке программы работы с кнопкой с антидребезгом сразу зажигается светодиод, хотя кнопка еще не нажималась?
Помогите, пожалуйста, чайнику понять один момент. В эксперименте со светодиодами ( на 11 мин.) команда зажечь светодиод (digitalWrite(pin, HIGH) )поступает уже после применения инкремента. Мне казалось, что программа сначала определит номера пина ( в нашем случае 2+1) и подаст сигнал уже сразу на 3-й пин. Объясните пожалуйста, в чем моя ошибка?
Спасибо за урок. Я подключил подолнительно кнопку но не понимаю что прописать а программе чтобы постоянно не удерживать кнопку для работы диодов.
Тебе необходима кнопка с фиксацией. Нажал один раз она замкнута, нажал второй раз, она разомкнута. Как обычный выключатель света или тумблер. Это самый простой вариант.
Так же, можно прописать логику работы на 2 кнопки, по одной включать, по другой выключать, но придутся задействовать еще один пин.
Можно привязаться ко времени, т.е. зажал на 3 секунды одна команда, зажал на 1 секунду - другая команда.
Еще можно считать нажатия кнопки (правда надо будет прописывать обнуление счетчика)
Чисто теоретически - в последнем примере нельзя ли было завести булеву переменную вместо HIGH и LOW и после каждого цикла ее инвертировать, вместо того, чтобы два раза писать цикл?
Спасибо, очень интересный урок! А как выйти из цикла for по нажатию на кнопку, не дождавшись его окончания? Почему-то при привязке кнопки к break ничего не происходит во время отсчёта. А происходит выход только по окончанию цикла (вернее новый не запускается, пока кнопка нажата). Приведу свой пример. В void loop() пишу:
a = 20;
if (Stop_Button == 1) { s=22; }
if (a==20)
{
for (a; a > 1; a)
{
if (a && millis() - Delay_Time >= 100)
{
a-= 1;
Serial.print( "Отсчёт: ");
Serial.println(a);
if (a < s) break;
Delay_Time = millis();
}
} Serial.println();
}
Что здесь может быть не так? Хочу чтобы в любой момент воспроизведения цикла, если нажму на кнопку, чтобы цикл моментально перестал работать.
Подскажите почему 2 меньше или равно 11, как это работает?
Спасибо за видео. Но мне кажется, в примере со светодиодами нужно поставить только "
Можно ли использовать переменные типа String в сравнениях switch?
Нет, для string придется использовать только if..
Спасибо
Добрый день. Подскажите как включить светодиоды через один или через 2? Всю голову сломал. Через кнопку получилось без проблем.
Да, разобрался. нужно было прописать полностью pin=pin+2, или на месте двойки любое другое число.
спасибо. взаимно.
Помогите пожалуйта найти ваш профиль в library.io. Ссылка под этим видео не открывается. Открывается мой профиль в library.io
Спасибо за уроки, пытаюсь делать сделать умный дом по вашему примеру, есть кто подобное пытается сделать?
Поясните плес почему ограничивающие резисторы идут не на каждый светодиод отдельно (это ведь надежней),а идет только один на землю?
Если ты про 10 светодиодов 10:46, то резистор на каждый включен. Минус общий
Четка ваащеее)))))))))))))
Вопрос про кейсы
Можно ли в коде писать диапазоны кейса?
case 1...10:
код...
break;
case 11...100
... и тд
Валентин Геращенко похоже нет. Тут можно допилить новую переменную, которая один, если 1-10, два, если 11-100, и т.д. А потом ее использовать в качестве аргумента свича.
ссылка на код последнего примера не работает. Если возможно, обновите пожалуйста
Все супер, спасибо. Единственное хотелось бы увидеть решение домашних заданий. Попробовали чтобы диоды загорались с 10 по 1, получилось используя for (int pin = 10; pin
решил как то проблему с цикличностью?
Решил измененить условие : (). Получилось:-)
for (int pin = 10; pin >= 10; pin--)
@@Zhelnov, в таком случае ведь только один десятый светодиод и будет моргать.
for (int pin = 10; pin >= 1; pin--) так должно быть, тогда ряд "побежит".
Хочу добавить, что переменная объявленная в цикле for локальная, то есть действует только внутри этого цикла
а можно в "case" указывать какойто диапазон значений, а не конкретное значение?
Дружище, ты в предидущем ролике обещал рассказать про дребезжание кнопки. ))
О дребезжани кнопки я расскажу в выпуске про прерывания, пока что для наших примеров это не сильно критично
+Школа INTEGER Друг, а вот такая масль интересна: имеется led сегмент, и непременный резистор. реально сделать так: подключаешь его к аналогу (как обычно), и крутя ручку получаем на сегменте числа от 0 до 9?
Блин а в начале написания кода как прописыват пины. Вот так делаю к примеру int pin = 2;
int pin = 3;
int pin = 4;
int pin = 5;
Почему то ошибка компиляции выходит. И pin и led писал и с большими и маленькими символами и с пробелами между знаком равенства и без них что то ни хрена не пойму. Как правильно то надо писать?
Здравствуйте, я извиняюсь,7:48 \\пример 2 while(nomber>=5) \\цикл выполняется , пока переменная меньше 5,,,,,,тут понимаю что больше 5 ,или я ошибаюсь
Да, спасибо, здесь значок в другую сторону: while(nomber
Парни поправьте меня если я не прав. Поставьте на паузу видео на время 7-57, пример 2 : цикл выполняется, пока переменная меньше 5. По-моему должно быть: цикл выполняется, пока переменная БОЛЬШЕ 5. Или в условии поменять на while (number
Да, там опечатка, если точнее выполняется пока переменная больше или равна 5
У меня при загрузке скетчв на 10 светодиодов при компилировании выдает ошибку "'pin' was not declared in this scope
", т.е. "pin-код" не был объявлен в этой области. Не могу найти причину ошибки, помогите разобраться плиизз.
Проверьте, что у вас переменная pin объявлена. Объявить переменную, это значит указать ее размер, имя и начальное значение, перед тем как ее использовать. Например: int pin = 0;
@@LabRazum спасибо!
Не совсем понятно. Мы же после прохода цикла опять присваиваем переменной двойку. Так по идее должен гореть только третий пин????
у меня не выходит из первого цикла при лубом уровне на "A6"
что я не правильно сделал?
int v=A6;
int t=A7;
boolean r=9;
boolean z=10;
int led=13;
void setup() {
Serial.begin(9600);
// pinMode(z,OUTPUT);
// pinMode(r,OUTPUT);
pinMode(led,OUTPUT);
analogReference(DEFAULT);
}
void loop() {
int var = 0;
do{
int var = map(analogRead(v), 0, 1023, 0, 5000); // измерение температуры
delay(300);
Serial.println(var);
}
while (var < 2000);
while ( led, 1){
digitalWrite(led, 1);
delay(1000);
digitalWrite(led, 0);
delay(1000 );
digitalWrite(led, 1);
delay(1000);
digitalWrite(led, 0);
delay(1000 );
}
}
Все вроде норм сделал, но не понимаю как сделать чтобы все диоды горели одновременно.
Можно конечно было сделать так, но это слишком массивно.
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
и тд...
delay(1000);
Можно как то реализовать это через функцию "for"?
void setup ()
{
pinMode (2, OUTPUT); //ВЫХОД С НОГИ
pinMode (3, OUTPUT); //ВЫХОД С НОГИ
pinMode (4, OUTPUT); //ВЫХОД С НОГИ
}
void loop() //
{
for(int pin =2; pin=2; pin--) //
{
digitalWrite (2, LOW);
digitalWrite (3, LOW);
digitalWrite (4, LOW);
delay (100);
}
}
}
одновременно включаются и выключаются
+SmartEnd present Может просто через запятую проставить номера пинов?
в обратку запустил,с кнопки сделал,а вот через один или два не доходит как(вообще после этого урока ничего не понимаю.что то пошло не так))
Arduino: 1.8.5 (Windows 7), Плата:"Arduino/Genuino Uno"
11111:18: error: expected unqualified-id before 'else'
11111:22: error: expected declaration before '}' token
exit status 1
expected unqualified-id before 'else'
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
что это?
Добрый день. Сделал цикл for(int pin=11; pin
по моему у тебя начинает с 11 пина и им же заканчивает, 2 должен заканчиваться. { for(int pin=2; pin=2; pin--) { digitalWrite(pin, LOW); delay(100); } }
Спасибо. Но мне нужно в обратную сторону. В эту сторону все нормально.
Спасибо большое. Вроде разобрался.
void setup() {
// put your setup code here, to run once:
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
void loop()
{
// put your main code here, to run repeatedly:
for(int pin=2; pin=3; pin--)
{
digitalWrite(pin, HIGH);
delay(20);
digitalWrite(pin, LOW);
delay(20);
}
}
кто нибудь сделал домашнее задание? не могу догнать, как включить их через кнопку) можете объяснить?
Также как в прошлом уроке
Мне тоже не понятно, вы разобрались?
void setup()
{
// put your setup code here, to run once:
pinMode(13, OUTPUT);
pinMode(3, INPUT);
digitalWrite(3, HIGH);
}
void loop()
{
if(digitalRead(3) == 0)
{
digitalWrite(13, HIGH);
delay(100);
digitalWrite(13, LOW);
delay(100);
}
}
if(digitalRead(3) ==0) если через GND если через + то if(digitalRead(3) ==1)
Вроде смотреть понятно, но не закрепляется, в одно ухо влетело, в другое вылетело. Может старый для запоминания. Нужны примеры для тупых с ассоциациями. Я тупой.
Ничего не понял. Где примеры про while, do while, for?
Или про switch? чтобы реально работающие примеры хоть с теми же самыми светодиодами.