Вот тут уже сложнее. Каждую команду и каждое выражение пересматриваю по несколько раз, чтоб догнать о чем речь идет. Но пока мой мозг хоть с трудом, но справляется. Спасибо большое за уроки. может когдато научусь ардуинить)))
Использовать boolean (bool) лучше со значениями true и false C++ приравнивает ноль к false а любое число к true К примеру: bool x = 2; if (x == 1) then { Serial.println("истина"); } else { Serial.println("ложь"); } // В порт выведется слово истина, хотя присваивали двойку Еще стоило указать возможность использования одновременно нескольких условий switch оператора: switch (val) { case 1: case 2: Serial.println("1 или 2"); break; case 3: Serial.println("3"); break; }
Случайно давным-давно попал на основной канал, так - посматривал. Зашёл сегодня сюда - и вот он, далёкий 88 год, компьютер Электроника не помню какой и почти Basic в пояснениях ))) Славное дело делаете, Алексей! Успехов вам!
int val; void setup() { Serial.begin(9600); } void loop() { if ( Serial.available() ) { val = Serial.parseInt(); Serial.println(val); } } Ввожу в COM порте значение переменной. Значение отображается, затем в следующей строке появляется ноль. Почему ?
Спасибо Алекс. Учусь можно сказать на твоих уроках) Больше похоже на твою дипломную конечно. Хотелось бы углубленный курс, за вменяемый прайс) Удобней конспектировать по роликам в тюб, чем из книг, аля с кул преподом, ЛОЛ=)))
Таймкод 3:35 что нужно сделать, чтобы при повторном вводе 1 или 5, в порте не отображалась повторно надпись "Вы ввели 1 или 5" ? Чтобы внезависимости от того чтобы ты не нажимал, высвечивались по очереди фразы верно/мимо ?
Посмотрев несколько видео я понял что этот язык очень похож на java, я давно хотел изучить программирование на arduino и теперь я думаю мне будет легче освоить, так как я учу java и много чего уже знаю, очень жаль что вы не делаете уроки по программированию на java так как вы все расставляете по полочкам и все очень понятно, я для себя не могу найти понятных уроков для java, по этому я скачиваю библиотеки, проекты и пытаюсь разобраться как это работает но если что то совсем не понятно или нужно освоить какие то функции просто ищу в интернете, для меня это удобно по тому что я от начала и до конца изучаю код и запоминаю а так же добавляю какие то свои функции.
Здравствуйте ! Я обучаюсь по вашим видео, очень крутой контент . Спасибо тебе землянин ) ! Подскажите, операторами if, else , else if возможно построить меню или только switch подходит ?
для новичка в програмировании осень сложно в книге изучаем ардуино: инстременты и методы технического волшебства всё также подробно но легче усваивается
Какая операция обрабатывается быстрее if или switch ? У меня в коде переменная А равна число от 0 до 9, и в зависимости от переменной выполняется определенная операция. Выполнено с оператором if и else if. Так как код выполняет динамическую индикацию на семисегментром дисплее, мне интересен, если использовать структуру switch/case, получится увеличить скорость динамической индикации или нет?
if(serial.available()) { val = serial.parseInt() list = [1,2,3] if (list.includes(val)){ Serial.println("Вы ввели ${val}") } else { Serial.println("Мимо")} } Правильнее будет писать так и работать это будет быстрее, не серчай если тут есть ошибки, привёл грубый пример на JS , но концепция я думаю понятна
Какую программы ты используешь чтобы быстро переводить набранное на английском в русский. И какие кнопки ты нажимаешь для быстрого построения выражения и авто задания отступов. Знаешь ли какие нибудь фишечки синтаксического сахара у Arduino IDE?
Такой вопрос, как соединить 2 скетча? Один на то, чтобы включать светодиод и после выключать. Другой - мигание светодиода путём автоматического включения и выключения быз кнопки. В общем, чтобы через кнопку включать мигание, а после выключить? Премного благодарен.
Привет! Спасибо тебе за замечательный курс, очень доходчиво все объясняется! Есть вопрос - Начал учиться на плате RobotoDyn Uno v3 возможно плата неисправна и не верно интерпретирует код. В окне com порта после ввода цифры 1, или 5 (выполняется условие if), но следом сразу же выполняется команда else, т.е. в порте сначала появляется текст "Вы ввели число 1 или 5 ", а через секунду появляется "Мимо!" Вот мой код: byte val; void setup() { Serial.begin(9600); //Вывод на монитор порта } void loop() { if (Serial.available()) { val = Serial.parseInt(); if (val == 1 || val == 5) { Serial.println ("Вы ввели число 1 или 5"); } else { Serial.println ("Мимо!"); } } }
@@randomguyjustpassingby зае***ли почитайте комментарии к видео - найдёте ответ - главное 2-3 ответа , а вопрос один и тот же задали уже раз 50 наверное!
Через if или switch всегда приходят два ответа. Если верное значение, пишет его и то что в default, если попадает значение в default, то он два раза прихоит. Куда копать?
Небольшое дополнение: в си и си++ любое число не равное 0 считается как истина, и только 0 - это ложь соответственно. Вообще, использование большого числа конструкций if не очень хорошо, если есть вариант обойтись без него, в частности, при проектировании того же меню. Согласен, использование конструкций if это первое, что скорее всего приходит в голову, при проектировании меню, но это далеко не лучшее решение.
в каких-то случаях конечно конструкция switch интереснее if, но что касается именно меню, то чтобы проектировать полноценное древовидное меню с практически неограниченной вложенностью нужно использовать структуры. Конечно, если нужно отслеживать 2 или 3 состояния программы это из пушки по воробьям, и можно действительно обойтись более тривиальными решениями нежели использование структур. Конструкции ветвления - это неотъемлемая часть программ, однако линейный ход программы проще воспринимается. Огромные каскады вложенных друг в друга if-ов очень сложно читать и отследить, что куда зачем и почему, что порой может запутать разработчика, я уже молчу про то как это воспринимается другим человеком, который смотрит на подобные вещи).
Привет Alex, вот вбил в голову себе вопрос, какая разница между if и while, по сути они одинаковые, выполняют то что в скобках при верном условии, но всетаки, что и в каких случаях лучше использовать
Добрый день, вопрос будет ли работать если использовать вот так вот переменную в принте через точку? if (val > 19) { Serial.println("Вы ввели ".val); else Serial.println("Мимо"); }
подскажите пожалуйста! такая проблема при работе с портом, он считает энтер за число, поэтому при вводе например 1 или 5, мне выдает: "вы ввели 5" потом на другой строке сразу же "мимо"
почему у меня после ввода числа и его вывода выводится еще один ноль? Делал все по примеру c предыдущего урока. То же самое и с выводом "вы ввели..." или "Мимо " выводится еще лишний раз "Мимо"
Alex, привет. Помоги с советом, как думаешь, почему при выполнении кода: int val = 0; void setup() { Serial.begin(9600); } void loop() { if (Serial.available()){ val = Serial.parseInt(); if (val == 1 || val == 3){ Serial.println("1 или 3"); } else { Serial.println("другое"); } } в мониторе порта при отправке 1 или 3 выводится "1 или 3" и сразу же "другое". Если отправляю 4, то выводится "другое" и еще раз "другое"? Спасибо.
У самого такая же проблема, но я нашёл из-за чего выводится. Допишите после каждого вывода ещё и вывод самой переменной: Serial.println(val); И увидите, что почему-то после считывания цифры ком-порт считывает 0, хотя его не вводят. А вот откуда берётся 0 - вопрос уже к знатокам)
Моя проблема решилась, попробуйте, мб у вас из-за этого же происходит. В мониторе порта, в правом нижнем углу 3 кнопки. Очистка, скорость и ещё одна (левая из них). Поставьте там вместо "новая строка" (у меня так было) - "нет конца строки". Видимо, ошибка была в том, что после нажатия "отправить" монитор отдельно отправлял ещё знак перевода строки - воспринимался как 0, который не проходит при проверке условия и выдавалась "ошибка".
А как сделать так, чтобы после первого ответа "вы написали 2" (к примеру) ты о5 пишешь 2 и он отвечает уже другое, ну что-то вроде "вы опять ввели 2" ??
спасибо за подробное разжевывание материала ... я вообще в школе учил бейсик потом паскаль ... в си вот эти моменты мне немного были не понятны .. продолжайте пожалуйста с той же точностью передавать материал ... а будет урок по созданию например собственной библиотеки и ее написания для чего-нибуть экзотического !? :)
Разве есть принципиальная разница между паскалем, бейсиком, си в плане написания кода? операторы и команды просто обозначаются по-разному. Логика работы одинаковая же
между "окой" и "фурой с прицепом" тоже нет принципиальной разницы.и там,и там-транспорт.однако переход с одного на другое-сложноват. сможете сходу накодить управление шаговиками и вывод на 7 сегментник на бейсике? :)
Алекс доброго времени суток, хотел давно задать тебе один вопрос. Вот во всех своих поделка ты используешь ардуино, канал «заметки ардуинщика» открыл, но эту платформу часто ругают в интернете не считая ее серьезной для разработок. Скажи каково твое мнение на этот счет? Стоит ли всерьез заняться ардуиной ?
+Иван Мормышев доброй ночи. Так пишут только суровые программисты, которые занимаются разработкой всяких хитровыебанных систем. Естественно с высоты своего опыта работы с мощными контроллерами они видят, что ардуино слабая и медленная платформа. Но для наших, бытовых целей ей просто нет равных. Плевать что упрощенный язык очень неэффективно использует ресурсы микроконтроллера. Зато он простой и удобный, как конструктор. Если ардуино вдруг станет мало, то переучиться на более мощную платформу будет немного проще чем с нуля. Но в то же время под управлением ардуино летают квадрокоптеры с gps. Лично я считаю всех этих людей зазнавшимися хейтерами, которые не могут поставить себя на место обычного человека, который хочет сделать своему любимому цветку в горшке систему автополива . И не хочет для этого учить ассемблер и часами залипать в даташиты. Мне порой очень хочется снять видео, где я буду просто бомбить по этому поводу и очень негативно высказываться в адрес людей, которые говорят что ардуино - ерунда. Но делать я этого, конечно, не буду
привет!мне очень нравиться как обьясняешь но хотел бы тебя попрасить о помощи ,я хочу сделать что бы при нажатии на кнопку 1 или же на букву что бы загорался свето диод, как можно это сделать ?вот на видео мы указываем переменную и если она равно чему то,то будет выполнент код а как можно сделать что бы указал именно пин моде?вот допустим int val=pinMode(2,INPUT); и что бы тогда переменя понимала чтоя обрщаюсь именно к пин моду,,,можно сделать что то подобное ?извини за вопрос просто очень нужно мне
У меня вопрос, в видео есть строчка. val = Serial.parseint(); это как я понимаю объявление переменной, в уроке она так и работает но у меня пишет ошибку если я не установлю тип данных Пример : int val = Serial.parseint(); почему так? И еще у меня в Com порте сразу после вывода ответа появляется в следующей строке появляеться надпись мимо даже если я указываю значение в нужном диапазоне. Как её убрать?
не знаю актуально еще или нет. Автор незаметно тихо))) в процессе написания добавил перед строкой void.setup() строку byte val;. После этого все стало работать корректно
Побольше выпусков и подробностей, с нетерпением жду, ты наверное единственный кого даже приятно слушать, и я бы хотел с тобою как-то связаться, я новичок в этой сфере, очень хочу осуществить проект умного дома, как раз строем дом, если будет возможность рассмотри программу "Blynk"
Алекс есть вопрос о Serial.available. Я так понимаю обьем 64байта и Serial.available долна возвращать число. В общем я попытался его узнать, но каждый раз выбивало ошибку при загрузке на ардуино. Тогда я написал следующий код: if (Serial.available()) { Serial.print ("Ok"); }else{ Serial.print ("Not Ok"); } Ответ был Not Ok. Хотя я ничего в память не грузил и кроме этого когда никаких переменных не вводилось. Может я что-то не так понял или не правильно код написал? Это мой первый день с ардуино, так что вот... Пока что не понятно почему Serial.available = 0
у меня почему то сом порт выдает 2 записи последовательно. еще когда с прошлым видео с числами игрался выдавало число, а потом еще какое то число, то отрицательное, то 0. а сейчас при посыле 1 или 5, сперва выдает первую строчку, потом мимо. при посыле другого числа, два "мимо" один за другим.
Приветствую! Делаю первые шаги по Вашим урокам. Сегодня, повторяя урок, не могу найти в чём у меня ошибка. А именно при использовании val, у меня выскакивает обе строки, сперва -Вы ввели 1 или 5 , а потом -Мимо или наоборот. Перепроверил несколько раз, переписал заново. Результат прежний. Подскажите, в чём причина?
В теории вроде бы, что то где то понятно, но не понятно)) так как еще незнаешь где это можно пременить. Когда то учился сайты собирать открывал в блокноте код хтмл сторонего сайта искал в нем джава скрипт или фрейм с русскими буквами или цифрами от div до /div заменял на свои. А здесь типо уравнений получается где не нужно весь код писать а кусочек условия... Интересная штука буду методом тыка изучать
Здравствуйте, программа, написанная по вашему видео, по какой-то причине выдаёт два ответа за раз. Вне зависимости от того, какая цифра была введена, за первым ответом следует второй - отрицательный. Добавил вывод числа в буфере и задержку, чтобы понять где что. Получается, в порт отправляется число, введённое с клавиатуры, выполняется команда, а по окончании в порт отправляется "0". Пробовал на двух ардуинках. Результат примерно такой при вводе 1234. Hello World! 1234 OK 0 error Листинг: byte val; void setup() { Serial.begin(9600); Serial.println("Hello World!"); } void loop() { if (Serial.available()) { int buff = Serial.parseInt(); Serial.println(buff); if (buff == 1234) { Serial.println("OK"); } else { Serial.println("error"); } Serial.setTimeout(4000); }
Добрый день! Все сделал по этому уроку (конспект 3.1). Выводит все правильно, независимо от ввода всегда выводит лишний раз "мимо", а если ввести что-то кроме 1 или 5, то выводит 2 раза "мимо" с задержкой в секунду. Подскажите, в чем может быть проблема?
Не поможешь с скетчем на 2 контактное реле? Проблема в том что перед выключением первого реле за пару секунд с начало включается второе вере а потом лишь выключается первое. Что в скетче не так? или это железо? int R2 = 7; int R1 = 8; void setup() { // put your setup code here, to run once: pinMode(R1, OUTPUT); pinMode(R2, OUTPUT); } void loop() { // put your main code here, to run repeatedly: digitalWrite(R1,1); delay(1000); digitalWrite(R1,0); delay(1000); digitalWrite(R2,1); delay(1000); digitalWrite(R2,0); delay(1000); }
Беру твой скетч из примера - работает. Переписываю под свои данные - не работает. Так и не смог достукивание пока написать. Он уже на стадии if(radio.write(&data, sizeof(data))) {} некорректно работает: устройство, которые принимает, успешно принимает данные и выводит на экран, значит они были отправлены, но условие не срабатывает
То самое ощущение, когда в 12-14 лет по наитию кодил в Pawn, пытаясь сделать годный сервер в SAMP, а теперь видишь всё это до боли знакомое, хоть сейчас садись делать умный дом… А Питона я так и не смог в универе освоить и понять…
Здоров, набираю согласно твоему коду на if или switch не важно и у меня после каждого действия обязательно выполняется команда если, не важно верно не верно введено значение в порт, все равно выводит если. допустим вводишь "1", он говорит да верно "ввели 1" и затем сразу пишет "неверно" не пойму прикола
Небольшое добавление по условиям. Существует и укороченная запись условий (a > b) ? c == true : c==false; Если А больше B то С равно истина, иначе С равно ложь..Так же имеет место запись присваивания переменной значения результата сравнения: c == (a > b);
Спасибо, твой вклад в развитие будет неотъемлемым, человечество тебя не забудет.(не троллинг)
тоже самое и про твой троллинг!!
+yevgen Zt какой ещё тролинг?? Я всерьёз, очень понравился урок сам сижу и повторяю на своей ардуинке.
Вы Kave Gonson верно? Если то идите в apergure scince или когда выйдет portal 3
Спасибо тебе, собрал несколько твоих устройств, теперь дошел до уроков, просто и понятно, жму руку.
Узнал о программировании на С++ больше, чем из курса по С++
Alter Moonsy ну как сказать C++ я программирую на java и там всё также!
@@superspinner2313 потому что джава C подобный
@@hdfroggit3051 все языки имеют почти одинаковую структуру и если ты понял хоть один язык то следующие учить почти не надо будет
Вот тут уже сложнее. Каждую команду и каждое выражение пересматриваю по несколько раз, чтоб догнать о чем речь идет. Но пока мой мозг хоть с трудом, но справляется. Спасибо большое за уроки. может когдато научусь ардуинить)))
Научился?
ждем-с
Пожалуйста больше уроков, единственный канал с прекрасными объяснениями!
Использовать boolean (bool) лучше со значениями true и false
C++ приравнивает ноль к false а любое число к true
К примеру:
bool x = 2;
if (x == 1) then {
Serial.println("истина");
} else {
Serial.println("ложь");
}
// В порт выведется слово истина, хотя присваивали двойку
Еще стоило указать возможность использования одновременно нескольких условий switch оператора:
switch (val) {
case 1:
case 2:
Serial.println("1 или 2");
break;
case 3:
Serial.println("3");
break;
}
+WakeUp4L1fe ого спасибо, это не знал. Допишу в пособие, все равно его почти все смотрят)
понимаю что еще рано, но очень жду что кто-то внятно расскажет про все интерфейсы подключений. UART I2C SPI.
Никакого смысла в типе boolean тут нет, один хрен он целый байт занимает. Проще запомнить, что всё что не равно нулю это true, а ноль это false.
Огромадная благодарность за отличные уроки !
Спасибо, лчень рада тому, что любой сможет постичь ардуино через ваши уроки)
🥵🥵🥵🥵🥵🥵🥵🥵
Случайно давным-давно попал на основной канал, так - посматривал. Зашёл сегодня сюда - и вот он, далёкий 88 год, компьютер Электроника не помню какой и почти Basic в пояснениях ))) Славное дело делаете, Алексей! Успехов вам!
супер курсы у вас , вы молодец, все максимально подробно и неторопясь и доходчиво
как же офигенно интересно, давно облизывался что бы начать и вот, всё офигенно понятно по крайней мере если хоть отдалённо есть представление о с++
спасибо за подробные объяснения!))
Прошу урока меню на OLED + Энкодер!
Кто за?
я
Друг скинул проект для светового фейер шоу в цирке на Ардуинке. Сижу разбираюсь.) Классные уроки. Спасибо тебе огромное за доступность.)
Все круто и понятно!
спасибо)
Большое тебе спасибо все ясно и понятно
Спасибо автору за хорошее объяснение!
Нужны практические примеры. Без примеров это сухая теория, которую трудно понять
Полностью согласен с тобой
Круто, спасибо тебе Гувер
int val;
void setup()
{
Serial.begin(9600);
}
void loop()
{
if ( Serial.available() )
{
val = Serial.parseInt();
Serial.println(val);
}
}
Ввожу в COM порте значение переменной. Значение отображается, затем в следующей строке появляется ноль. Почему ?
Спасибо Алекс.
Учусь можно сказать на твоих уроках)
Больше похоже на твою дипломную конечно.
Хотелось бы углубленный курс, за вменяемый прайс)
Удобней конспектировать по роликам в тюб, чем из книг, аля с кул преподом, ЛОЛ=)))
Моя дипломная - космический спутник зондирования земли) учу людей только на канале, есть уроки на сайте, лично ни с кем не занимаюсь
Спасибо за полезный видос. Лайк!
Мой "палец вверх в вашей копилке". Спасибо за образование. У вас педагогический талант.
+Олег Абдусаламов спасибо) здесь решающую роль играет сценарий, который тщательно прорабатывается
Ждем новых видео с нетерпением, в переди большая работа)
Почему при использовании Serial.parseInt() после ввода цифры и нажатия Enter автоматом через 1-2 секунды вводится ноль?
3:02 "давайте получим данные спорта" ... в голове забурлили варианты того зачем могут быть нужны спортивные данные.
Ахахах лол
Тоже самое :D
Таймкод 3:35 что нужно сделать, чтобы при повторном вводе 1 или 5, в порте не отображалась повторно надпись "Вы ввели 1 или 5" ? Чтобы внезависимости от того чтобы ты не нажимал, высвечивались по очереди фразы верно/мимо ?
String mess = "верно";
void setup(){
Serial.begin(9600);
}
void loop() {
String worD = "";
while (Serial.available() > 0){
delay(2);
worD += String(char(Serial.read()));}
if (not(worD == "")){
Serial.print(worD +' ');
Serial.println(mess);
if (mess == "верно"){
mess = "мимо";
}else{
mess = "верно";
}
}
}
@@dancing_master поздно)
@@ПавелКрасильников-л8м , а почему не так : -поздно коллега))ахахаха)
Ладно це жарт! На цілий місяць відстаю від Вас ,буду продовжувать навчання.
Люди знакомые с Java или C#. Привет) Скипаем видос...
Привет
Посмотрев несколько видео я понял что этот язык очень похож на java, я давно хотел изучить программирование на arduino и теперь я думаю мне будет легче освоить, так как я учу java и много чего уже знаю, очень жаль что вы не делаете уроки по программированию на java так как вы все расставляете по полочкам и все очень понятно, я для себя не могу найти понятных уроков для java, по этому я скачиваю библиотеки, проекты и пытаюсь разобраться как это работает но если что то совсем не понятно или нужно освоить какие то функции просто ищу в интернете, для меня это удобно по тому что я от начала и до конца изучаю код и запоминаю а так же добавляю какие то свои функции.
Мне лично кажется, что Ардуино схож по синтаксису и с C,C++,C#,Java. Сам учу C# и за исключением небольших отличий там все тоже самое.
Супер, очень нравится.
Спасибо за видео и советы
Здравствуйте ! Я обучаюсь по вашим видео, очень крутой контент . Спасибо тебе землянин ) !
Подскажите, операторами if, else , else if возможно построить меню или только switch подходит ?
проверял ваши примеры, всегда в ответе получаю на 2 ответа, на if и на else. может у меня неисправный ардуино. Пример Ваш переписал один к одному.
Ниже пишут, что в мониторе порта надо внизу в первой вкладке выбрать "Нет новой строки". У тебя похоже стоит "NL (Новая строка)". Мне помогло
@@Volka0071 мне тоже помогло! От души!
открой фигурную скобку после if и закрой ее перед else тоже самое с else то что должно исполняться в фигурные скобки
Такая же проблема
@@Volka0071 огромное спасибо, помог!
для новичка в програмировании осень сложно в книге изучаем ардуино: инстременты и методы технического волшебства всё также подробно но легче усваивается
Урок супер! Спасибо тебе! Все законспектировал, жду новые уроки
Какая операция обрабатывается быстрее if или switch ? У меня в коде переменная А равна число от 0 до 9, и в зависимости от переменной выполняется определенная операция. Выполнено с оператором if и else if. Так как код выполняет динамическую индикацию на семисегментром дисплее, мне интересен, если использовать структуру switch/case, получится увеличить скорость динамической индикации или нет?
Какая разница? Это ведь не одно и тоже!
Как всегда круто и познавательно! спасибо!!!
if(serial.available()) {
val = serial.parseInt()
list = [1,2,3]
if (list.includes(val)){
Serial.println("Вы ввели ${val}")
} else {
Serial.println("Мимо")}
}
Правильнее будет писать так и работать это будет быстрее, не серчай если тут есть ошибки, привёл грубый пример на JS , но концепция я думаю понятна
Какую программы ты используешь чтобы быстро переводить набранное на английском в русский. И какие кнопки ты нажимаешь для быстрого построения выражения и авто задания отступов. Знаешь ли какие нибудь фишечки синтаксического сахара у Arduino IDE?
Такой вопрос, как соединить 2 скетча? Один на то, чтобы включать светодиод и после выключать. Другой - мигание светодиода путём автоматического включения и выключения быз кнопки. В общем, чтобы через кнопку включать мигание, а после выключить?
Премного благодарен.
2:30 раз мы берем от 200 до 400, то может надо" >= 200 &&
Да, верно, 200 и 400 будут игнорироваться, так как 200 > 200 - ложь, и 400 > 400 - ложь.
Привет! Спасибо тебе за замечательный курс, очень доходчиво все объясняется! Есть вопрос - Начал учиться на плате RobotoDyn Uno v3 возможно плата неисправна и не верно интерпретирует код. В окне com порта после ввода цифры 1, или 5 (выполняется условие if), но следом сразу же выполняется команда else, т.е. в порте сначала появляется текст "Вы ввели число 1 или 5
", а через секунду появляется "Мимо!"
Вот мой код:
byte val;
void setup() {
Serial.begin(9600); //Вывод на монитор порта
}
void loop() {
if (Serial.available()) {
val = Serial.parseInt();
if (val == 1 || val == 5) {
Serial.println ("Вы ввели число 1 или 5");
} else {
Serial.println ("Мимо!");
}
}
}
У меня абсолютно такая же проблема, нашлось решение?
@@randomguyjustpassingby зае***ли почитайте комментарии к видео - найдёте ответ - главное 2-3 ответа , а вопрос один и тот же задали уже раз 50 наверное!
@@Алексей-п4й7у именно так и сделал и нашёл ответ, проблема решена. А если вам было не лень залезать сюда и жаловаться на это, то проблема уже ваша
Алекс спасибо за очередной урок!
спасибо тебе, очень помог
Просто топ!!!
Спасибо брат
Такой вопрос, как через If сравнивать состояние выхода?
Пример: if (61
Через if или switch всегда приходят два ответа. Если верное значение, пишет его и то что в default, если попадает значение в default, то он два раза прихоит. Куда копать?
Небольшое дополнение:
в си и си++ любое число не равное 0 считается как истина, и только 0 - это ложь соответственно.
Вообще, использование большого числа конструкций if не очень хорошо, если есть вариант обойтись без него, в частности, при проектировании того же меню. Согласен, использование конструкций if это первое, что скорее всего приходит в голову, при проектировании меню, но это далеко не лучшее решение.
+Kirill Petrakov но я же сказал что свитч лучше подходит для этих целей. Правильно?
в каких-то случаях конечно конструкция switch интереснее if, но что касается именно меню, то чтобы проектировать полноценное древовидное меню с практически неограниченной вложенностью нужно использовать структуры. Конечно, если нужно отслеживать 2 или 3 состояния программы это из пушки по воробьям, и можно действительно обойтись более тривиальными решениями нежели использование структур.
Конструкции ветвления - это неотъемлемая часть программ, однако линейный ход программы проще воспринимается. Огромные каскады вложенных друг в друга if-ов очень сложно читать и отследить, что куда зачем и почему, что порой может запутать разработчика, я уже молчу про то как это воспринимается другим человеком, который смотрит на подобные вещи).
структуры, это которые struct?
The Daniil можешь дать вк?
Привет Alex, вот вбил в голову себе вопрос, какая разница между if и while, по сути они одинаковые, выполняют то что в скобках при верном условии, но всетаки, что и в каких случаях лучше использовать
Почему в мониторе при вводе например "1" пишет "вы ввели 1" и сразу же "мимо". Т.е. два ответа на 1 запрос...
тоже с этим столкнулся, щас понял, в мониторе порта нужно выбрать "нет конца строки"
@@genatin12 спс, попробую.
@@genatin12 спасибо, очень помог!!!
Добрый день, вопрос будет ли работать если использовать вот так вот переменную в принте через точку? if (val > 19) {
Serial.println("Вы ввели ".val);
else
Serial.println("Мимо");
}
подскажите пожалуйста! такая проблема при работе с портом, он считает энтер за число, поэтому при вводе например 1 или 5, мне выдает: "вы ввели 5" потом на другой строке сразу же "мимо"
почему у меня после ввода числа и его вывода выводится еще один ноль? Делал все по примеру c предыдущего урока. То же самое и с выводом "вы ввели..." или "Мимо " выводится еще лишний раз "Мимо"
то же самое и с switch/case. При любом ответе еще добавляет "Мимо"
@@vladsmolnik8685 в мониторе порта нужно выбрать "нет конца строки" и все будет ок
Alex, привет. Помоги с советом, как думаешь, почему при выполнении кода:
int val = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available()){
val = Serial.parseInt();
if (val == 1 || val == 3){
Serial.println("1 или 3");
} else {
Serial.println("другое");
}
}
в мониторе порта при отправке 1 или 3 выводится "1 или 3" и сразу же "другое". Если отправляю 4, то выводится "другое" и еще раз "другое"? Спасибо.
Вы не узнали еще ответ на свой вопрос? Та же хрень просто. Поделитесь пожалуйста
@@ЗахарПлатонов-р8с нет, к сожалению все ещё мучаюсь
У самого такая же проблема, но я нашёл из-за чего выводится. Допишите после каждого вывода ещё и вывод самой переменной: Serial.println(val);
И увидите, что почему-то после считывания цифры ком-порт считывает 0, хотя его не вводят. А вот откуда берётся 0 - вопрос уже к знатокам)
Моя проблема решилась, попробуйте, мб у вас из-за этого же происходит. В мониторе порта, в правом нижнем углу 3 кнопки. Очистка, скорость и ещё одна (левая из них). Поставьте там вместо "новая строка" (у меня так было) - "нет конца строки".
Видимо, ошибка была в том, что после нажатия "отправить" монитор отдельно отправлял ещё знак перевода строки - воспринимался как 0, который не проходит при проверке условия и выдавалась "ошибка".
@@ckop9449 спасибо, обязательно попробую)
Алекс, у меня проблема: ввожу в COM цифру 1, оно выдаёт "Вы ввели 1" и после этого само по себе выдаёт "Мимо", что не так я делаю?
че, нашел решение? та же фигня
В мониторе порта (COM,) в самом низу окна, выбери "Нет конца строки"
@@qbden5880 Спасибо тебе! А то думаю, ну че вот за херня, делаю все как он сказал, а на деле не так :( недоговаривает :)
@@qbden5880 спасибо
всё понятно круто от меня подписка лайк комент и колокольчик
А как сделать так, чтобы после первого ответа "вы написали 2" (к примеру) ты о5 пишешь 2 и он отвечает уже другое, ну что-то вроде "вы опять ввели 2" ??
Кто подскажет, все сделал как на видео, но после ввода любого значения через полсекунды вводит пустое поле? с предыдущим уроком было также...
спасибо за подробное разжевывание материала ...
я вообще в школе учил бейсик потом паскаль ...
в си вот эти моменты мне немного были не понятны ..
продолжайте пожалуйста с той же точностью передавать материал ...
а будет урок по созданию например собственной библиотеки и ее написания
для чего-нибуть экзотического !? :)
+igor podol спасибо) написание библиотеки очень комплексная задача, поэтому урок про это будет одним из последних
спасибо ..понятно ... возможно даже несколько уроков-циклов ...
Разве есть принципиальная разница между паскалем, бейсиком, си в плане написания кода?
операторы и команды просто обозначаются по-разному. Логика работы одинаковая же
между "окой" и "фурой с прицепом" тоже нет принципиальной разницы.и там,и там-транспорт.однако переход с одного на другое-сложноват. сможете сходу накодить управление шаговиками и вывод на 7 сегментник на бейсике? :)
Разве в паскале не джава?
Алекс доброго времени суток, хотел давно задать тебе один вопрос. Вот во всех своих поделка ты используешь ардуино, канал «заметки ардуинщика» открыл, но эту платформу часто ругают в интернете не считая ее серьезной для разработок. Скажи каково твое мнение на этот счет? Стоит ли всерьез заняться ардуиной ?
+Иван Мормышев доброй ночи. Так пишут только суровые программисты, которые занимаются разработкой всяких хитровыебанных систем. Естественно с высоты своего опыта работы с мощными контроллерами они видят, что ардуино слабая и медленная платформа. Но для наших, бытовых целей ей просто нет равных. Плевать что упрощенный язык очень неэффективно использует ресурсы микроконтроллера. Зато он простой и удобный, как конструктор. Если ардуино вдруг станет мало, то переучиться на более мощную платформу будет немного проще чем с нуля. Но в то же время под управлением ардуино летают квадрокоптеры с gps.
Лично я считаю всех этих людей зазнавшимися хейтерами, которые не могут поставить себя на место обычного человека, который хочет сделать своему любимому цветку в горшке систему автополива . И не хочет для этого учить ассемблер и часами залипать в даташиты.
Мне порой очень хочется снять видео, где я буду просто бомбить по этому поводу и очень негативно высказываться в адрес людей, которые говорят что ардуино - ерунда. Но делать я этого, конечно, не буду
Заметки Ардуинщика огромное спасибо за ответ, теперь мне есть над чем работать.
Иван Мормышев
Скажу больше, у меня на предприятии работает сеть телеметрии на ардуино! дёшево и сердито!
привет!мне очень нравиться как обьясняешь но хотел бы тебя попрасить о помощи ,я хочу сделать что бы при нажатии на кнопку 1 или же на букву что бы загорался свето диод, как можно это сделать ?вот на видео мы указываем переменную и если она равно чему то,то будет выполнент код а как можно сделать что бы указал именно пин моде?вот допустим int val=pinMode(2,INPUT); и что бы тогда переменя понимала чтоя обрщаюсь именно к пин моду,,,можно сделать что то подобное ?извини за вопрос просто очень нужно мне
У меня вопрос, в видео есть строчка. val = Serial.parseint(); это как я понимаю объявление переменной, в уроке она так и работает но у меня пишет ошибку если я не установлю тип данных Пример : int val = Serial.parseint(); почему так? И еще у меня в Com порте сразу после вывода ответа появляется в следующей строке появляеться надпись мимо даже если я указываю значение в нужном диапазоне. Как её убрать?
не знаю актуально еще или нет. Автор незаметно тихо))) в процессе написания добавил перед строкой void.setup() строку byte val;. После этого все стало работать корректно
Привет прошу сделай урок про погружение ардуино в глубокий сон.
Алекс, сделай пожалуйста обзор работы мультисерво шита на 20+ серв. Желательно на примере гесапода или, лучше, октапода.
Побольше выпусков и подробностей, с нетерпением жду, ты наверное единственный кого даже приятно слушать, и я бы хотел с тобою как-то связаться, я новичок в этой сфере, очень хочу осуществить проект умного дома, как раз строем дом, если будет возможность рассмотри программу "Blynk"
Алекс есть вопрос о Serial.available. Я так понимаю обьем 64байта и Serial.available долна возвращать число. В общем я попытался его узнать, но каждый раз выбивало ошибку при загрузке на ардуино. Тогда я написал следующий код:
if (Serial.available()) {
Serial.print ("Ok");
}else{
Serial.print ("Not Ok");
}
Ответ был Not Ok. Хотя я ничего в память не грузил и кроме этого когда никаких переменных не вводилось. Может я что-то не так понял или не правильно код написал? Это мой первый день с ардуино, так что вот... Пока что не понятно почему Serial.available = 0
у меня почему то сом порт выдает 2 записи последовательно. еще когда с прошлым видео с числами игрался выдавало число, а потом еще какое то число, то отрицательное, то 0. а сейчас при посыле 1 или 5, сперва выдает первую строчку, потом мимо. при посыле другого числа, два "мимо" один за другим.
Такая-же фигня
Все вслушиваюсь в музыку, знакомая, но не могу понять откуда. Приятная. Может из игры Bobby Carrot, но не факт
Приветствую! Делаю первые шаги по Вашим урокам. Сегодня, повторяя урок, не могу найти в чём у меня ошибка. А именно при использовании val, у меня выскакивает обе строки, сперва -Вы ввели 1 или 5 , а потом -Мимо или наоборот. Перепроверил несколько раз, переписал заново. Результат прежний. Подскажите, в чём причина?
В мониторе порта (COM,) в самом низу окна, выбери "Нет конца строки"
В теории вроде бы, что то где то понятно, но не понятно)) так как еще незнаешь где это можно пременить. Когда то учился сайты собирать открывал в блокноте код хтмл сторонего сайта искал в нем джава скрипт или фрейм с русскими буквами или цифрами от div до /div заменял на свои. А здесь типо уравнений получается где не нужно весь код писать а кусочек условия... Интересная штука буду методом тыка изучать
Доброго времени суток! У меня возвращается 2 раза "Мимо!". И даже после "Вы ввели 1 или 5". При получении цифр тоже были лишняя цифра "10"
В мониторе COM порта поставьте "Нет конца строки".
Здравствуйте, программа, написанная по вашему видео, по какой-то причине выдаёт два ответа за раз. Вне зависимости от того, какая цифра была введена, за первым ответом следует второй - отрицательный. Добавил вывод числа в буфере и задержку, чтобы понять где что. Получается, в порт отправляется число, введённое с клавиатуры, выполняется команда, а по окончании в порт отправляется "0". Пробовал на двух ардуинках. Результат примерно такой при вводе 1234.
Hello World!
1234
OK
0
error
Листинг:
byte val;
void setup() {
Serial.begin(9600);
Serial.println("Hello World!");
}
void loop() {
if (Serial.available()) {
int buff = Serial.parseInt();
Serial.println(buff);
if (buff == 1234) {
Serial.println("OK");
} else {
Serial.println("error");
} Serial.setTimeout(4000);
}
}
Не могли бы вы подсказать, в чём ошибка?
Добрый день! Все сделал по этому уроку (конспект 3.1). Выводит все правильно, независимо от ввода всегда выводит лишний раз "мимо", а если ввести что-то кроме 1 или 5, то выводит 2 раза "мимо" с задержкой в секунду. Подскажите, в чем может быть проблема?
в терминале нужно поставить "нет конца строки"
@@evgeshmyname Спасибо! Помогло)
Не поможешь с скетчем на 2 контактное реле?
Проблема в том что перед выключением первого реле за пару секунд с начало включается второе вере а потом лишь выключается первое.
Что в скетче не так? или это железо?
int R2 = 7;
int R1 = 8;
void setup() {
// put your setup code here, to run once:
pinMode(R1, OUTPUT);
pinMode(R2, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(R1,1);
delay(1000);
digitalWrite(R1,0);
delay(1000);
digitalWrite(R2,1);
delay(1000);
digitalWrite(R2,0);
delay(1000);
}
Полезный урок. Спасибо.
Напиши про nRF24l01 еще! В плюсах ты писал, что есть функции достукивая до приемника и тд и тп, как это все реализуется?
+Дмитрий Патрушев там в настройках все прописано уже) считай в моих скетчах по умолчанию достукивание стоиь
Беру твой скетч из примера - работает. Переписываю под свои данные - не работает. Так и не смог достукивание пока написать. Он уже на стадии if(radio.write(&data, sizeof(data))) {} некорректно работает: устройство, которые принимает, успешно принимает данные и выводит на экран, значит они были отправлены, но условие не срабатывает
Если интересно, radio.write() возвращает первые 3 раза единицу, а потом ноль. Адрес переписывал в разных вариантах, но баг присутствует до сих пор.
Спасибо, очень здорово. Жду про математические функции (в часности про constrain) иногда путаница в них возникает)
Что делать если не отображаются цифры в КОМ порте как у тебя? Вводишь в строке цифру и ноль эмоций? Версия IDE 2.0.3
круто! спасибо большое! Даешь следующий урок!)))
То самое ощущение, когда в 12-14 лет по наитию кодил в Pawn, пытаясь сделать годный сервер в SAMP, а теперь видишь всё это до боли знакомое, хоть сейчас садись делать умный дом…
А Питона я так и не смог в универе освоить и понять…
Подскажите пожалуйста, как включить отображение нумерации строк кода?
Чувак,запили видос про меню!Хотя бы простенький пример,с 2-3 кнопками и lcd дисплеем!
+Serg Gorelii после цикла уроков
Круто!Спасибо)))
С сенсорным TFT дисплеем тоже было бы интересно посмотреть, например, построение многоуровневого меню.
еще и на веб морде - почему не назвать урок - как запилить пару кнопок на вебморде да еще и с MQTT))?????
@@ArduNotes и прошло 3 года 🤣😆
if мы уже видели в ранних роликах)
Здоров, набираю согласно твоему коду на if или switch не важно и у меня после каждого действия обязательно выполняется команда если, не важно верно не верно введено значение в порт, все равно выводит если. допустим вводишь "1", он говорит да верно "ввели 1" и затем сразу пишет "неверно" не пойму прикола
То же такая проблема!
Добрый день! А как исправить проблемы с кодировкой? У меня вместо сообщений "Вы ввели 1 или 5" и "Мимо!" вылазиют иероглифы.
Покажи пожалуйста как написать програму на лампу настроения?
Небольшое добавление по условиям. Существует и укороченная запись условий (a > b) ? c == true : c==false; Если А больше B то С равно истина, иначе С равно ложь..Так же имеет место запись присваивания переменной значения результата сравнения: c == (a > b);
+Alexei Belousov спасибо, добавлю в пособие
(a > b) ? c == true : c==false ! Это называется тернарный оператор
опять же как и с кейсом, если у тебя идет условия, вложенные в условия, то: -что свитч кейс не читабелен; -что ()?: не читабельно...
А что тройного равно как в php нету? Для проверки на равенство и соотношения типов.
А платы по ссылке ещё и спаивать надо???
Скажите почему else выполняется всегда у меня?
void loop() {
if (Serial.available()){
val = Serial.parseInt();
if (val == 1 && val == 5 ){
Serial.println("val = 1 or var =5");
}else{
Serial.println("miss");
}
}
}
ввожу 5 или 1 выводит: val = 1 or var =5 и сразу miss , т.е. else сработало, почему-то?
Serial.println("val = 1 or var =5"); Убери ковычки в скобках.
Блин как же приятно понимать о чем тут говорят ! Спасибо шарпику..
Тот момент когда работаешь с JavaScript и смотришь в х2 скорости что бы не упустить что в С чего не знал.
после функции if через секунду срабатывает else, уже под копирку переписал всё с экрана, всё равно. што делать, куда смотреть?
Тоже самое, не могу понять почему..., а ответа не вижу ((
Нашли ответ?
Большое спасибо! Всё понятно
В школе C# изучаем. Рад что пригодилось)))
Эх мне бы такого учителя по физике
согласен
Помогите пожалуйста как сделать
Чтоб если 1 кнопка нажата то если 2 кнопка нажата (сделать что то)
Почему лайки пропадают? Я зашёл сегодня- его нет. Еще зашёл. И опять лайк пропал!
что такое VAL?
как мне понять ардуинку если ты рассказываешь с первых уроков для тех кто уже вкурсах про это всё??