Уроки Ардуино #1.1 - действия с переменными и константы
ฝัง
- เผยแพร่เมื่อ 30 ม.ค. 2017
- В этом уроке Arduino я продолжу свой сказ о переменных, и на этот раз подробнее рассмотрим объявление переменных и констант в Ардуино и действия с ними, а также познакомимся с директивой define и целой кучей математических операторов.
В следующем уроке Arduino будет рассмотрена базовая работа с последовательным портом через монитор.
▼ Текстовая версия ▼
alexgyver.ru/lessons/compute/
▼ Огромный стартовый набор GyverKIT ▼
kit.alexgyver.ru/
▼ Уроки Arduino на сайте ▼
alexgyver.ru/lessons/
▼ Модули и датчики с Али ▼
alexgyver.ru/arduino_shop/
▼ Страница "Заметок Ардуинщика" ▼
alexgyver.ru/arduino_lessons/
Теги: #arduino #уроки #ардуино #alexgyver
●●●●●●●●●●●●●●●●●●●●
► Основной канал: / alexgyvershow
► Поддержать автора alexgyver.ru/support_alex/
► Официальный сайт: alexgyver.ru/
► Почта: alex@alexgyver.ru - วิทยาศาสตร์และเทคโนโลยี
Внимание, ошибка! Возвести число в квадрат можно командой sq(x), в видео ошибка, в пособии исправил! Спасибо.
Заметки Ардуинщика нужно ли добавлять библиотеки #include для выполнения команд 1.1.0 или они заранее записаны в коде программы
Мисье, хочу заметить у вас шикарные уроки
@@DimaKutcenko нихрена, понятно только тем кто матиматик или програмер, а тем кто доучился до 9 класа и пошёл работать сварщиком 15 лет без продоху такое уже нихрена не понятно.
@@smaddweh9674 Я не математик и не программер и тоже закончил всего 9 классов :)
Я вообще в 7 классе и более менее понимаю))
сложная задача за 6 мин обучить "чайника" и основам программирования на языке С++ и микро электронике. но :"даже длиный путь в 1000 лее начинается с первого шага". Alex низкий поклон за труды и удачи во всех начинаних.
@@mikhailgermanaleksandrovic7589 ну я более менее знаком в программировании и эти уроки как дополнение к основному обучению.
ну и как получилось что то из этого обучения я тоже чайник в этом не знаю стоит ли побывать разобраться в этом
я для начала взял себе esp32, установлю на нее драйвера и буду пробовать@@user-wj1ze7mw9g
я знаю js, в принципе программирование на ардуино не очень сложное, все языки программирования довольно-таки схожи. микро электронника немного сложновата но это не страшно
Начил учится программированию,некоторые аредставления уже имел.за труды спасибо огромное,буду учить дальше,Но!!!уроки не для чайников,хотя и рассказывоются как для чайников.для чайников нужно было и этот урок растянуть,так как в уроке приходится сильно напречься что бы понять точно о чем в даную сикунду говорят.
Других разжованых уроков нет,придется разжовывать это.
Еще раз огромное спс
Прошло 6 лет после выпуска видео,а я досихпор смотрю и учусь Алекс низкий поклон тебе 🎉🎉🎉🎉
Спасибо, Алекс!
Ты делаешь действительно годный контент)
Мы тебе благодарны!
:3
Спасибо за науку; как всегда - отличный и наглядный урок!
Как только мне начинает казаться, что я уже что-то понимаю в Ардуино, я смотрю очередной урок и выясняется, что до победы мне, как до Луны...
Хочу высказать слова благодарности за создание столь информативных видео. Спасибо.
В 6 утра смотрю и думаю - как же ты все охренительно объяснил… я думал дальше диода не уйду😂
Этим Бейсиком же в школе все хотелки отбили …
Рэспэкт))
Как все таки красива и приятна структурщина на Си!!!
на PLSQL лучше и понятнее для человека, но на С++ лаконичнее
По вашим просьбам сделал "конспект" в формате PDF, ссылка в описании под видео. Под каждым уроком будет ссылка на отдельный урок (для печати), и на общий сборник всех уроков (пополняемый!). Спасибо.
К ардуинке прилепить SD карту и дисплей с джостиком. Все учебные материалы сруктурировать и загнать на карту. настроить хождения по веткам и каталогам. И выводить материалы на дисплей. Ардуинка, которая помогает прогать на ардуинке.
Забавный агрегат получится)))))) ЫЫЫЫ
дичь то какая, товарисч... Но мне нравится, после завершения цикла уроков может и сделаю =)
Краем затронул размер переменных, а это краеугольный камень. Переполнение очень частая проблема у начинающих.
Спасибо за уроки по arduino. Я давно хотел научиться программировать на ней. И вот отличный шанс это сделать. Алекс, спасибо тебе.
Огромная благодарность за "define" !
внятно , а самое главное , понятно .
Спасибо огромное! Какой тяжелый труд - просто о сложном)))
Гдеж ты был пару лет назад. когда это только начинал изучать. но всё равно приятно посмотреть
Ты просто мега мозг! Прошу делай уроки дальше👍☺
В прошлом видео ничего не понял, а в этом все понятно) спасибо, лайк однозначно
Про дефайн реально круто, я когда бродил по англоязычному сайту ардиуны, недобдел. Спасибо Алекс ^^
Крутые уроки, благодарю.
Саня, спасибо, о, мудрейший наставник!
Про тип даных дефинет я только тут и услышал! Понимаеш Санек что это значит. Учить и то мало кто может!
Благодарю за труд! я подписан на Твой канал и голосовал как лучший изобретатель года!
Молодец!
Препроцессор выполняет предварительные операции с файлами перед их передачей компилятору.
Директива define - это не тип данных, а указание препроцессору, подставить значение во все места исходного кода, где эта директива встречается.
Спасибо за эти уроки)
спасибо, очень доступно объяснил про define
спасибо, многое уложилось в голове, хотя пришлось пересматривать и переснушивать..
но все понял в данном видео.. спасибо большое
жесть 6 минут вынос мозга ,мне нравится !!)
бальзам на душу!!!! Это ж с++++. наконец то я пойму что делать с этим кодом, управлять хоть чем то!!!!!
Убедительная просьба не смотреть этот ролик перед сном и когда вы хотите спать
А то что
@@serjo-3742 а то башка взорвётся (+не заснешь )
Спасибо, что тратите свое время на "чайников" и объясняете "на пальцах". Заказал на Али Ардуинку и подписался на канал.
Огромное спасибо!
Спасибо за видео и советы
на этот раз максимально понятно
Красава) Знаю С++, и Java, решил немного поигратся с електроникой) Пока все понятно (чистое програмирование на с++))) ) Буду смотреть дальше)
хорошо что я знаком с js) пожалуй закажу себе какой нибудь набор с ардуином
Спасибо большое 👍
В предыдущем видео так подробно описал числовые типы и границы их значений, а здесь прям в начале:
Int value = 100500;
Это при том что максимальное значение int 32767
)))
Пошутил, наверное, но "чайники" потом будут путаться.
Но за тему спасибо!
В программировании я разбираюсь, а вот в железках не очень. Думаю канал поможет в этом.
спасибо очень доходчиво
очень полезные уроки!!!
купил два ардуино уно у роботдина, несколько датчиков, реле и других модулей, а они уже пол года лежат, потому что я застрял на обучении в написании кодов
молодец, хорошие уроки!
Про define очень полезное замечание...
Очень хорошо обьяснил
Thank you!!!
первое видео, где ты действительно задумался о том, а понятен ли твой текст
и постарался, чтобы тебя поняли
так что надо переписывать те готовые 11 сценариев
и делай больше простых! вещей с удалённым контролем (это самое интресное), с bluetooth and esp8266 модулями
я не задумывался понятен ли текст, я просто прочитал комментарии и сделал работу над ошибками. Сценарии все давно озвучены и правке не подлежат
это первый человек, который вообще задумался понятно или нет для новичков. Хотя и другие его видео очень понятные.
с таким подходом ты слона не продашь ). я написал что ты" постарался", но у тебя как обычнно ничего не получилось, ты так и необъяснил зачем нужна именно переменная, так как для всех тех операций удобства с пинами удобней именно "определение", а не переменная. но дело конечно твоё
1) я сказал что define лучше и обосновал это
2) в 99% уроках в интернете пины объявляют через переменные, никто не использует define
3) это первый комментарий, гласящий "ничего нипанятна давай по новой"
подход: "99% так делают неизвестно почему и я тогда тоже так сделаю" так себе
ты молодец. я просто предъявляю к тебе повышенные требования )
дело твоё
Очень забавно слушать про оптимальный и эффективный код в контексте ардуины)
Конечно для людей с опытом не очень информативно, но вот про define не знал. Отличные видео.
канал создан в целях обучения с нуля, вещи посложнее будем трогать уже после базового цикла уроков по языку
Спасибо!
ты просто МЕГА МОЗГ!!!
Добрый день! Я закупил пакет ардуинщика и теперь как ученик пойду по вашим урокам!
Да, да. столько лет прошло а ваши уроки побеждают среди других более новых выпусков! Так что делайте каждый выпуск с нервами и терпением! мы это оценим!
Ну как успехи? Вы уже разработчик на СТМ 32?))
@@alexpetrov521 еще нет, сейчас я плотник беседку строю а зимой ваш ученик :)
@@sergeygordich Понятно. Да не мой ученик, вы ученик автора канала. Я тут просто мимо проходил)
@@sergeygordich как успехи? Какой набор брали, а-то хотелось бы тоже начать)) спасибо
@@rapida7162 Поккпал kit набор 2 года на зад.
создавал скетчи для настройки и проверки серво приводов, потом пробовал научить ходить паука ( набор продают а мне подарили ) но модель такая тяжелая что паук мог только 2 серво двигать хорошо из 8.
Сейчас планирую сделать новогоднюю елочку а вот на лето план создать систему управления для освещения беседки. Видео уроков смотрел много.
про глобальные и локальные переменные не знал) спасибо.
Не знаю как тут, только начал вникать в это всё, но в php 3 области видимости переменных: глобальные, локальные и статические.
Советую почитать файл
"c:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\Arduino.h"
В нем можно найти полезные define-ы, которые можно использовать в скетчах
Спасибо огромное! Начал смотреть этот канал т.к. хочу на ардуино леонард сделать себе игровой руль с педалями и КПП. Жду следующих видео!
Прошло 3 года. Как успехи ? :). Честно интересно.
@@user-mr1lo5mc2wа теперь еще интереснее :)
Алекс никого не слушай , твои уроки очень полезны , локаничны и понятны.
Спасибо тебе за твою работу .
Алекс, благодарю за релиз. Хорошее видео, однако для первого урока сложновато. Я прошел курс на другом канале и понимаю о чем идет речь, но если б пришел с нуля было б тяжко =).
Хорошие уроки, понимать конечно же я не буду.
@Мозг
Аахаха))
будешь
Спасибо за проделанную работу.
Я так понимаю что префиксный инкремент/декремент (++a; --a) также разрешен
Блин, после питона и впрямь удобно!
С десятилетним опытом программирования тяжко смотреть ролики))))) Вроде шелуха а досмотреть хочется))))
Совершенно согласен! Я думаю про себя "зачем я это смотрю, ведь я это кучу лет назад изучал и до сих пор знаю и использую", но так и не смог закрыть видео или перемотать ((((=
повторение мать учения) аналогично, работаю больше 10 лет программистом, каждый день в работе использую, но все равно досмотрел, хотя без тяжести.. даже интересно.
Ну смотришь и в конце думаешь - ага, я так и думал. тоже самое все. И все, ты спокоен )
))))))
Ахахаха, то самое)))
Спасибо
Когда делаешь уроки и создаешь плейлист, обязательно в конце видео ставь ссылку на следующее видео обязательно. Так как некоторые смотрят видео на телефоне, например я, и в конце видео чтоб перейти к следующему видео, приходится убирать телефон с полноэкранного режима, открывать список видео и нажать на следующее видео. Например, в предыдущем видео ты отлично сделал: были ссылки на пред. и след. видео, в этом - только на предыдущее
._.
Здравствуйте. Может покажется глупым вопрос.
Можно просто взять микросхему AVR и сделать из неё ардуиносовместимый девайс?
Есть много Atmega128, и было бы здорово иметь возможность программировать их из среды ардуино.
Спасибо, подписка!
А #define можно внутри setup. И loop использовать? И какие особенности применения?
Elvis Presley в setup можно а в loop не желательно, потому что переменная должна объявляться только один раз, зачем тысячу раз в секунду сообщать ардуинке переменную??
Alex подскажи пожалуйста, есть ли библиотеки под Arduino для работы с полиномами? Если точнее- для вычисления корней полинома.
с использованием Python эту задачу можно решить в одну строчку - воспользоваться функцией roots() из библиотекой numpy, но увы и ах, Arduino не понимает Python, а на C++ это будет адский код на много-много строчек либо упрощать до тупого цикла жертвуя точностью. Как быть?
Круто, все как в С++, я его еще в 10 классе по книге учил, а в школе бейсик изучали, я ржал
Да это однозначно лайк, рекомендую даже тем кто уже в теме, хорошо освежает память. Я вот для себя подчеркнул про переменные в нутри циклов-не знал что можно давать одинаковые имена,
Спасибо)
ну а как же цикл for? Мне кажется по стандарту все ставят счётчиком букву i, и не задумываются о том, что у них таких циклов может быть несколько, а i одна на всех =)
Ну так то да, просто когда не было подробных уроков все учились на пальцах и "i' воспринималась скорее не как переменная а как постулат, по принципу увидел-попробовал (но не факт что понял) -работает-бездумно применил (но ведь работает!!!)) А сейчас уже хочется понимания, а для этого порой стоит с нуля перелопатить азы.
+The Daniil ну да, выгружается из оперативки. Я дописал в пдфку
впринципе все понял аналогия как дерево папок в виндовс, могут быть одинаковые имена но разные папки
прочитал pdf- получилась целая шпаргалка, классная мысль!!!
Супер канал! Я на alexgyver тож подписан! Было бы неплохо если бы уроки выходили хотя бы 2 раза в неделю. Вот я собираюсь сделать электрический замок на ардуино с помощью rfid rc522. Думаю все получится. Удачи вам всем! Желаю дальнейшего развития!
+095 TV спасибо, я выпускаю видео по мере возможности сразу после монтажа. Нету времени, нету
Define тоже занимает место как символ использованный n раз, но не в оперативной, а в основной памяти. Так что если вы повторяете define "переменную" больше 4 раз, то памяти она займет больше Инта. Но пользы от нее куча, главное понять где ее использовать
Где можно узнать как обозначаются пины на конкретной плате? И какие имеются еще вшитые альтернативы типа led_builtin?
Ребята, я когда смотрел это в первый раз, не зная программирования, тоже ничего не понимал. Вам гораздо проще будет сначала пройти курс на степике, а потом возвратится сюда и изучать как программировать именно МК.
Нихуя не понял, но интересно!
Хвала гайверу, я победил на этом языке переменные.
В общем что бы понять, надо купить и делать) очень хочу вставить светомузыку в акустику, но к сожалению вариант с пультом не для неё. Там надо кнопки. А как их туда встроить и настроить чтобы вместо пульта работали?
на сайте не все ссылки на магазины работают, можешь их обновить?
Всем привет! Подскажите как на ардуино собрать радиомикрофон? Куда что подключать?
Добрый вечер, правильно ли я поняла что в Ардуино можно писать код на любом доступном языке, например там python,java и тд?
Есть проблемка, подключил к телефону по otg друидо (леонардо), на одном из сайтов предостерегли - не подавать не в коем случае питание на телефон при отг режиме ибо спалю контроллер, а мне так и хочется подключить к друидо внешнее питание либо 12v через внутренний преобразователь либо 5v от блока, вопрос - не пойдет ли питание на юсб, не поджарю ли я себе телефон запитавшись внешне?
6:28
то есть.
если я назначу время таймеру в 5 секунд, то путём блуждающих токов это значение может уплыть куда-
то?
ну вот, совсем другое дело.. бородатые программисты одобряют!
ПС: по поводу "изяществ" от С++ типа x +=a; по мне так это снижает читабельность кода, что важно.. когда разбираешь большие и сложные участи кода особо чужого, каждое такое "изящество" мозг интуитивно отрицает.. гораздо красивее все же x = x+a; тем более при компиляции получится ровно один и тот же участок в бинарном виде.
+Alexei Belousov я сам пишу х = х + а =)
Согласен, х = х + а намного "читабЕльнее"))
Alex, я правильно поняла, что через define определяются именно константы, не переменные? То есть, мы не можем менять значение, присвоенное через define?
Вопрос снят)) Не дослушала до конца прежде чем его задавать)
Напоминает Betabasic для ZX_Spectrum.
Сходу, не понимаю бОльшую часть. Ищу ответы в комментариях, а там одни программисты все понимают - остальные как я :)
Все что называется переменными, операторами, портами и т.п. требует подробного разъяснения новичкам. Да, это долго, но быстро и без подробностей, врятли получится обучить тех кто впервые знакомится с программированием. Попробую найти материал с более подробным описанием, а потом вернусь сюда и еще раз посмотрю :)
Алекс, когда ты пишешь sound_sensor_pin*4 - это умножение на 4 или я что-то не так понял?
да, я показываю что это обычная переменная и её значение можно просто умножить
можешь в описании под видео оставлять папку со шпоргалкой
вот вопрос: допустим у меня к плате подключен какой либо датчик, допустим тепла и я хочу что бы через каждые 3 секунды значение переменной менялось на температуры и использовать это, допустим в отоплении как мне сделать так что-бы после каждого обновления датчика менялось и значение переменной?
Переменная - ссылка на область памяти, выделяемую под неё согласно её типу. И также она имеет имя чтобы к ней можно было обратиться.
Скажите пожалуйста в чем отличие 4601 от 4801? Я отличий технических не нашел
. Может по приему в городе хуже? Или еще что?
О, великий гуру
Здравствуйте! Я совершенно не знаком с электроникой... Тем не менее жизнь, иногда, заставляет интересоваться даже возможностью жизни, на Марсе.))) В связи с этим у меня к Вам вопрос...
Скажите пожалуйста, можно ли на Ардуино построить регулятор вращения электродвигателя вентилятора печки автомобиля по следующему алгоритму:
1. Летний вариант.
Температурный диапазон регулирования +18...+30. При температуре воздуха +30 и выше, в салоне автомобиля, вентилятор вращается на максимальных оборотах. При снижении температуры вентилятор снижает обороты (можно дискретно, через каждые 2 градуса). При достижении температуры, в салоне, до установленной (минимально возможная установленная температура +18) Обороты вентилятора снижаются до 15%, от максимальных оборотов.
В случае повышения температуры вентилятор снова должен увеличить скорость вращения, пропорционально увеличению температуры. Таким образом Ардуино должен повышать-понижать скорость вращения вентилятора "вокруг" установленной температуры.
2.Зимний вариант.
Температурный диапазон регулирования +18...+30. Пи температуре воздуха +18 и ниже, в салоне автомобиля, вентилятор вращается на максимальных оборотах. При повышении температуры вентилятор снижает обороты (можно дискретно, через каждые 2 градуса). При достижении температуры, в салоне, до установленной (максимально возможная установленная температура +30) Обороты вентилятора снижаются до 15%, от максимальных оборотов.
В случае понижения температуры вентилятор снова должен увеличить скорость вращения, пропорционально снижению температуры.Таким образом Ардуино должен повышать-понижать скорость вращения вентилятора "вокруг" установленной температуры.
Такой вариант применения Ардуино интересен, для меня, в качестве некоего "суррогата" климат-контроля, для автомобиля, оборудованного только кондиционером.
Буду дико благодарен за конкретные рекомендации, на данную тему!!!
Скажите, можно ли скачать готовый код, далее прогнать его через эту прогу и загрузить в контроллер ?чтоб без заморочек с ручным вводом этого текста и т.п. поймите ,желание быть программистом нету.я больше паяльщик) Но очень хочется собрать одно устройство .а оно на ардуине.Ответьте пожалуйста .
На сайте есть
То чувство когда в начале первого урока говорилось что всё просто, а теперь выясняеться что понятен только первый урок
Кому интересно но ленивая жопа, чтоби посмотреть мануал с++:
значит:
*a++* ето инкремент увеличение значения на 1 *(но ето же действие можно записать так а = а+1 или же а+=1)*
*а--* ето декремент уменьшение значения на 1 *(но ето же действие можно записать так а = а-1 или же а-=1)*
а еще такая инфа: инкремент/декримент бивает префиксной ++а и постфиксной а++
*int y = (++x)
;*
можно записать, как
*x = x + 1
;*
*int y = x
;*
В то время, как
*int y = (x++)
;*
эквивалентно
*int y = x
;*
*x = x + 1;*
Не совсем понятно что даёт переменная "boolean val = digitalRead (sound_sensor_pin)" Как это применяется на практике при написании скетча?
я люблю играться с lua и java (даже не смотря на то, что с ними я играюсь ещё с 9-10 лет), , так что переменные мне знакомы.
А что за переключалка клавиатуры?
Спасибо!!!! Ты говоришь: ""Не думал, что всё так плохо....". На самом деле ещё хуже ))))). Некоторые, например, здесь не знают английского. Например я ))).
Какое количество чисел может содержать директива define?
Несколько раз загружать прошивку можно??
а что-нибудь просто AVR-ках будет?
Подскажи кабель от смартфона подойдет к нано или покажи нанку раземом на камеру
У Нано разъем мини-УСБ, у смартфонов микро-УСБ, так что скорее всего не подойдет.
+al xy у тебя гугл отключили?
А вот если есть несколько библиотек на одно и то же устройство от разных авторов и одна из них скачана, установлена и подключена а примеры скудные или вообще отсутствуют, то как посмотреть какие команды вписывать в код если в разных библиотеках на одно и то же устройство команды по разному пишутся?
Про define популярно объяснил. Нету этой воды типа от си осталось в с++
Насколько это элементарно когда знаешь хоть один язык программирования, в моем случае java, синтаксис один в один. Небольшие различия в типах данных. Как я понимаю здесь нет интерфейсов, модификаторов доступа, наследования, инкапсуляции и прочих атрибутов ООП, собственно нет классов. Огонь, проекты с ардуино моё новое хобби)
Доброго времени суток, как при увеличении или уменьшения значения “value” установить его «value +=k» или «value -=k «максимум и минимум? Чтобы при достижении этих значений не возможно было их увеличить скажем больше 60 и понизить ниже 0. Спасибо за ответ
Использовать условие if
вот в обычном с++ надо включить библиотеку math.h для всех этих pow, sqrt и т.п. тут такого нет?
В Arduino IDE при написании скетча сразу подключается файл Arduino.h, в котором уже есть следующие "библиотеки"
#include
#include
#include
#include
красаучык
ррр