Уроки Ардуино #1.1 - действия с переменными и константы
HTML-код
- Опубликовано: 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 лет после выпуска видео,а я досихпор смотрю и учусь Алекс низкий поклон тебе 🎉🎉🎉🎉
По вашим просьбам сделал "конспект" в формате PDF, ссылка в описании под видео. Под каждым уроком будет ссылка на отдельный урок (для печати), и на общий сборник всех уроков (пополняемый!). Спасибо.
К ардуинке прилепить SD карту и дисплей с джостиком. Все учебные материалы сруктурировать и загнать на карту. настроить хождения по веткам и каталогам. И выводить материалы на дисплей. Ардуинка, которая помогает прогать на ардуинке.
Забавный агрегат получится)))))) ЫЫЫЫ
дичь то какая, товарисч... Но мне нравится, после завершения цикла уроков может и сделаю =)
Краем затронул размер переменных, а это краеугольный камень. Переполнение очень частая проблема у начинающих.
Спасибо за уроки по arduino. Я давно хотел научиться программировать на ней. И вот отличный шанс это сделать. Алекс, спасибо тебе.
Спасибо, Алекс!
Ты делаешь действительно годный контент)
Мы тебе благодарны!
:3
В 6 утра смотрю и думаю - как же ты все охренительно объяснил… я думал дальше диода не уйду😂
Этим Бейсиком же в школе все хотелки отбили …
Рэспэкт))
Спасибо за науку; как всегда - отличный и наглядный урок!
Как только мне начинает казаться, что я уже что-то понимаю в Ардуино, я смотрю очередной урок и выясняется, что до победы мне, как до Луны...
Хочу высказать слова благодарности за создание столь информативных видео. Спасибо.
Огромная благодарность за "define" !
внятно , а самое главное , понятно .
Спасибо огромное! Какой тяжелый труд - просто о сложном)))
Убедительная просьба не смотреть этот ролик перед сном и когда вы хотите спать
А то что
@@serjo-3742 а то башка взорвётся (+не заснешь )
В прошлом видео ничего не понял, а в этом все понятно) спасибо, лайк однозначно
Ты просто мега мозг! Прошу делай уроки дальше👍☺
Про дефайн реально круто, я когда бродил по англоязычному сайту ардиуны, недобдел. Спасибо Алекс ^^
Саня, спасибо, о, мудрейший наставник!
Крутые уроки, благодарю.
Как все таки красива и приятна структурщина на Си!!!
на PLSQL лучше и понятнее для человека, но на С++ лаконичнее
бальзам на душу!!!! Это ж с++++. наконец то я пойму что делать с этим кодом, управлять хоть чем то!!!!!
спасибо, многое уложилось в голове, хотя пришлось пересматривать и переснушивать..
но все понял в данном видео.. спасибо большое
спасибо, очень доступно объяснил про define
Гдеж ты был пару лет назад. когда это только начинал изучать. но всё равно приятно посмотреть
жесть 6 минут вынос мозга ,мне нравится !!)
Про тип даных дефинет я только тут и услышал! Понимаеш Санек что это значит. Учить и то мало кто может!
Благодарю за труд! я подписан на Твой канал и голосовал как лучший изобретатель года!
Молодец!
Препроцессор выполняет предварительные операции с файлами перед их передачей компилятору.
Директива define - это не тип данных, а указание препроцессору, подставить значение во все места исходного кода, где эта директива встречается.
Спасибо за эти уроки)
Огромное спасибо!
на этот раз максимально понятно
Спасибо большое 👍
Спасибо, что тратите свое время на "чайников" и объясняете "на пальцах". Заказал на Али Ардуинку и подписался на канал.
Красава) Знаю С++, и Java, решил немного поигратся с електроникой) Пока все понятно (чистое програмирование на с++))) ) Буду смотреть дальше)
Спасибо за видео и советы
хорошо что я знаком с js) пожалуй закажу себе какой нибудь набор с ардуином
спасибо очень доходчиво
первое видео, где ты действительно задумался о том, а понятен ли твой текст
и постарался, чтобы тебя поняли
так что надо переписывать те готовые 11 сценариев
и делай больше простых! вещей с удалённым контролем (это самое интресное), с bluetooth and esp8266 модулями
я не задумывался понятен ли текст, я просто прочитал комментарии и сделал работу над ошибками. Сценарии все давно озвучены и правке не подлежат
это первый человек, который вообще задумался понятно или нет для новичков. Хотя и другие его видео очень понятные.
с таким подходом ты слона не продашь ). я написал что ты" постарался", но у тебя как обычнно ничего не получилось, ты так и необъяснил зачем нужна именно переменная, так как для всех тех операций удобства с пинами удобней именно "определение", а не переменная. но дело конечно твоё
1) я сказал что define лучше и обосновал это
2) в 99% уроках в интернете пины объявляют через переменные, никто не использует define
3) это первый комментарий, гласящий "ничего нипанятна давай по новой"
подход: "99% так делают неизвестно почему и я тогда тоже так сделаю" так себе
ты молодец. я просто предъявляю к тебе повышенные требования )
дело твоё
Очень хорошо обьяснил
Про define очень полезное замечание...
Конечно для людей с опытом не очень информативно, но вот про define не знал. Отличные видео.
канал создан в целях обучения с нуля, вещи посложнее будем трогать уже после базового цикла уроков по языку
Спасибо!
молодец, хорошие уроки!
очень полезные уроки!!!
купил два ардуино уно у роботдина, несколько датчиков, реле и других модулей, а они уже пол года лежат, потому что я застрял на обучении в написании кодов
Я очень признателен вашему обучению, такак не которые личности ни указали про значение распиловки при укозинии, и у меня вылез костыль и за этого решения не разрешения такак я об этом не знал А на видео уроках не упаменули не каким образом. И Я бился головой об стол даже при прочтени книге тожи не указали что надо делоть имено так, не тебе решения ни разрешения,,,, 😢😢😢😢😢 буть как есть.... Большое вам спасибо за вклад и изучени с++ .......
Ребята, я когда смотрел это в первый раз, не зная программирования, тоже ничего не понимал. Вам гораздо проще будет сначала пройти курс на степике, а потом возвратится сюда и изучать как программировать именно МК.
Thank you!!!
про глобальные и локальные переменные не знал) спасибо.
Не знаю как тут, только начал вникать в это всё, но в php 3 области видимости переменных: глобальные, локальные и статические.
Хорошие уроки, понимать конечно же я не буду.
@Мозг
Аахаха))
будешь
В предыдущем видео так подробно описал числовые типы и границы их значений, а здесь прям в начале:
Int value = 100500;
Это при том что максимальное значение int 32767
)))
Пошутил, наверное, но "чайники" потом будут путаться.
Но за тему спасибо!
В программировании я разбираюсь, а вот в железках не очень. Думаю канал поможет в этом.
Очень забавно слушать про оптимальный и эффективный код в контексте ардуины)
ты просто МЕГА МОЗГ!!!
С десятилетним опытом программирования тяжко смотреть ролики))))) Вроде шелуха а досмотреть хочется))))
Совершенно согласен! Я думаю про себя "зачем я это смотрю, ведь я это кучу лет назад изучал и до сих пор знаю и использую", но так и не смог закрыть видео или перемотать ((((=
повторение мать учения) аналогично, работаю больше 10 лет программистом, каждый день в работе использую, но все равно досмотрел, хотя без тяжести.. даже интересно.
Ну смотришь и в конце думаешь - ага, я так и думал. тоже самое все. И все, ты спокоен )
))))))
Ахахаха, то самое)))
Алекс никого не слушай , твои уроки очень полезны , локаничны и понятны.
Спасибо тебе за твою работу .
Добрый день! Я закупил пакет ардуинщика и теперь как ученик пойду по вашим урокам!
Да, да. столько лет прошло а ваши уроки побеждают среди других более новых выпусков! Так что делайте каждый выпуск с нервами и терпением! мы это оценим!
Ну как успехи? Вы уже разработчик на СТМ 32?))
@@alexpetrov521 еще нет, сейчас я плотник беседку строю а зимой ваш ученик :)
@@sergeygordich Понятно. Да не мой ученик, вы ученик автора канала. Я тут просто мимо проходил)
@@sergeygordich как успехи? Какой набор брали, а-то хотелось бы тоже начать)) спасибо
@@rapida7162 Поккпал kit набор 2 года на зад.
создавал скетчи для настройки и проверки серво приводов, потом пробовал научить ходить паука ( набор продают а мне подарили ) но модель такая тяжелая что паук мог только 2 серво двигать хорошо из 8.
Сейчас планирую сделать новогоднюю елочку а вот на лето план создать систему управления для освещения беседки. Видео уроков смотрел много.
Спасибо огромное! Начал смотреть этот канал т.к. хочу на ардуино леонард сделать себе игровой руль с педалями и КПП. Жду следующих видео!
Прошло 3 года. Как успехи ? :). Честно интересно.
@@user-mr1lo5mc2wа теперь еще интереснее :)
Советую почитать файл
"c:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\Arduino.h"
В нем можно найти полезные define-ы, которые можно использовать в скетчах
Спасибо
Блин, после питона и впрямь удобно!
Нихуя не понял, но интересно!
Круто, все как в С++, я его еще в 10 классе по книге учил, а в школе бейсик изучали, я ржал
Алекс, благодарю за релиз. Хорошее видео, однако для первого урока сложновато. Я прошел курс на другом канале и понимаю о чем идет речь, но если б пришел с нуля было б тяжко =).
Кому интересно но ленивая жопа, чтоби посмотреть мануал с++:
значит:
*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;*
Хвала гайверу, я победил на этом языке переменные.
ну вот, совсем другое дело.. бородатые программисты одобряют!
ПС: по поводу "изяществ" от С++ типа x +=a; по мне так это снижает читабельность кода, что важно.. когда разбираешь большие и сложные участи кода особо чужого, каждое такое "изящество" мозг интуитивно отрицает.. гораздо красивее все же x = x+a; тем более при компиляции получится ровно один и тот же участок в бинарном виде.
+Alexei Belousov я сам пишу х = х + а =)
Согласен, х = х + а намного "читабЕльнее"))
Супер канал! Я на alexgyver тож подписан! Было бы неплохо если бы уроки выходили хотя бы 2 раза в неделю. Вот я собираюсь сделать электрический замок на ардуино с помощью rfid rc522. Думаю все получится. Удачи вам всем! Желаю дальнейшего развития!
+095 TV спасибо, я выпускаю видео по мере возможности сразу после монтажа. Нету времени, нету
Сходу, не понимаю бОльшую часть. Ищу ответы в комментариях, а там одни программисты все понимают - остальные как я :)
Все что называется переменными, операторами, портами и т.п. требует подробного разъяснения новичкам. Да, это долго, но быстро и без подробностей, врятли получится обучить тех кто впервые знакомится с программированием. Попробую найти материал с более подробным описанием, а потом вернусь сюда и еще раз посмотрю :)
Define тоже занимает место как символ использованный n раз, но не в оперативной, а в основной памяти. Так что если вы повторяете define "переменную" больше 4 раз, то памяти она займет больше Инта. Но пользы от нее куча, главное понять где ее использовать
Да это однозначно лайк, рекомендую даже тем кто уже в теме, хорошо освежает память. Я вот для себя подчеркнул про переменные в нутри циклов-не знал что можно давать одинаковые имена,
Спасибо)
ну а как же цикл for? Мне кажется по стандарту все ставят счётчиком букву i, и не задумываются о том, что у них таких циклов может быть несколько, а i одна на всех =)
Ну так то да, просто когда не было подробных уроков все учились на пальцах и "i' воспринималась скорее не как переменная а как постулат, по принципу увидел-попробовал (но не факт что понял) -работает-бездумно применил (но ведь работает!!!)) А сейчас уже хочется понимания, а для этого порой стоит с нуля перелопатить азы.
+The Daniil ну да, выгружается из оперативки. Я дописал в пдфку
впринципе все понял аналогия как дерево папок в виндовс, могут быть одинаковые имена но разные папки
прочитал pdf- получилась целая шпаргалка, классная мысль!!!
Когда делаешь уроки и создаешь плейлист, обязательно в конце видео ставь ссылку на следующее видео обязательно. Так как некоторые смотрят видео на телефоне, например я, и в конце видео чтоб перейти к следующему видео, приходится убирать телефон с полноэкранного режима, открывать список видео и нажать на следующее видео. Например, в предыдущем видео ты отлично сделал: были ссылки на пред. и след. видео, в этом - только на предыдущее
._.
О, великий гуру
Напоминает Betabasic для ZX_Spectrum.
Спасибо за проделанную работу.
Я так понимаю что префиксный инкремент/декремент (++a; --a) также разрешен
Переменная - ссылка на область памяти, выделяемую под неё согласно её типу. И также она имеет имя чтобы к ней можно было обратиться.
я люблю играться с lua и java (даже не смотря на то, что с ними я играюсь ещё с 9-10 лет), , так что переменные мне знакомы.
Спасибо!!!! Ты говоришь: ""Не думал, что всё так плохо....". На самом деле ещё хуже ))))). Некоторые, например, здесь не знают английского. Например я ))).
Спасибо, подписка!
А #define можно внутри setup. И loop использовать? И какие особенности применения?
Elvis Presley в setup можно а в loop не желательно, потому что переменная должна объявляться только один раз, зачем тысячу раз в секунду сообщать ардуинке переменную??
Где можно узнать как обозначаются пины на конкретной плате? И какие имеются еще вшитые альтернативы типа led_builtin?
на сайте не все ссылки на магазины работают, можешь их обновить?
красаучык
ррр
Всем привет! Подскажите как на ардуино собрать радиомикрофон? Куда что подключать?
Насколько это элементарно когда знаешь хоть один язык программирования, в моем случае java, синтаксис один в один. Небольшие различия в типах данных. Как я понимаю здесь нет интерфейсов, модификаторов доступа, наследования, инкапсуляции и прочих атрибутов ООП, собственно нет классов. Огонь, проекты с ардуино моё новое хобби)
можешь в описании под видео оставлять папку со шпоргалкой
Здравствуйте. Может покажется глупым вопрос.
Можно просто взять микросхему AVR и сделать из неё ардуиносовместимый девайс?
Есть много Atmega128, и было бы здорово иметь возможность программировать их из среды ардуино.
В общем что бы понять, надо купить и делать) очень хочу вставить светомузыку в акустику, но к сожалению вариант с пультом не для неё. Там надо кнопки. А как их туда встроить и настроить чтобы вместо пульта работали?
Насколько я знаю, любые числа и строки, в т.ч. дефайны - это те же константы и так же занимают место в памяти. Так что условный дефайн, напечатанный 100 раз в коде займёт почти в 100 раз больше места, чем глобальная константа, напечатанная те же 100 раз. Но это прям копейки, и на самом деле заморачиваться на эту тему не стоит.
Alex подскажи пожалуйста, есть ли библиотеки под Arduino для работы с полиномами? Если точнее- для вычисления корней полинома.
с использованием Python эту задачу можно решить в одну строчку - воспользоваться функцией roots() из библиотекой numpy, но увы и ах, Arduino не понимает Python, а на C++ это будет адский код на много-много строчек либо упрощать до тупого цикла жертвуя точностью. Как быть?
Саня ты это объясняешь более менее подкованным людям, те, которые от тебя только узнали про паскаль и с++ нихера не поймут, ты объясни так: что бы заработал вентилятор от датчика дыма надо писать вот это, и вот так, так легче всё запоминатся будут команды, да народ заинтересуется, а то что в твоих обучениях их только отпугнёт, столько всего, и сука очень сложного. Ну и это возможно будущие твои подписчики, так что смотри сам менять формат обучалок, или оставить как есть.
Присоединяюсь!!!
Че тут может быть непонятного? Переменные с пятого класса проходят в школе.
ЭТО - азы. Тем кто не поймет, что язык нужно учить, потолок - повторять чужие примеры. А если в примере 1 ошибка (очепятка) - всё! Схема - не рабочая, программа - гавно...
Сегодня только тестировал плату LED&KEY на TM1638. Сначала посмотрел видео в ЮТубе. Автор: "плата неисправная, 4 правые кнопки не работают". И у меня не работали. Пока не исправил 1 строку кода в примере из библиотеки ...
для такого юзай ArduBlock, а тут алекс учит именно писать код
То чувство когда в начале первого урока говорилось что всё просто, а теперь выясняеться что понятен только первый урок
Про define популярно объяснил. Нету этой воды типа от си осталось в с++
Есть проблемка, подключил к телефону по otg друидо (леонардо), на одном из сайтов предостерегли - не подавать не в коем случае питание на телефон при отг режиме ибо спалю контроллер, а мне так и хочется подключить к друидо внешнее питание либо 12v через внутренний преобразователь либо 5v от блока, вопрос - не пойдет ли питание на юсб, не поджарю ли я себе телефон запитавшись внешне?
0:16 Алекс, не просто плохо, но и гораздо хуже, чем ты подумал ))). Автор начинает уточняющий урок с int value = 100500; забыв про свой же первый урок, согласно которому int лежит в диапазоне от -32768 до 32768. "Ох уж эти..." (с) ;)
6:28
то есть.
если я назначу время таймеру в 5 секунд, то путём блуждающих токов это значение может уплыть куда-
то?
вот вопрос: допустим у меня к плате подключен какой либо датчик, допустим тепла и я хочу что бы через каждые 3 секунды значение переменной менялось на температуры и использовать это, допустим в отоплении как мне сделать так что-бы после каждого обновления датчика менялось и значение переменной?
После js все понятно
Как хорошо что я изучал c#!! Языки почти одинаковые
+
Несколько раз загружать прошивку можно??
Хорошо,что я знаю c++
в общем сначала спросил, потом досмотрел =))
Alex, я правильно поняла, что через define определяются именно константы, не переменные? То есть, мы не можем менять значение, присвоенное через define?
Вопрос снят)) Не дослушала до конца прежде чем его задавать)
Добрый вечер, правильно ли я поняла что в Ардуино можно писать код на любом доступном языке, например там python,java и тд?
Какое количество чисел может содержать директива define?
Не совсем понятно что даёт переменная "boolean val = digitalRead (sound_sensor_pin)" Как это применяется на практике при написании скетча?
по моему пропущено самое главное, что для чего и как это все работает, эти уроки не для чайников которые первый раз взяли в руки ардуино и не имеют понятия, что такое ардуино и язык программирования С++ , и разобрать в этом практически не реально, а ребенку и подавно. Я и сам ничего не понял. как мне это ребенку объяснить???
Алекс, когда ты пишешь sound_sensor_pin*4 - это умножение на 4 или я что-то не так понял?
да, я показываю что это обычная переменная и её значение можно просто умножить