🚀 Как написать первую программу для Arduino? Простой урок для начинающих
Вставка
- Опубліковано 8 жов 2016
- Мы впервые познакомимся со структурой программ на Arduino, а так же разберем пару примеров по работе со светодиодом и кнопкой и их подключением.
ВК: lrazum
Instagram: / viktor_osin_
Ссылки для заказа необходимых компонентов: labrazum.ru/komponentyi/
======================================================
ОПИСАНИЕ:
Очередной выпуск из серии Arduino для начинающих, в котором мы впервые познакомимся со структурой программ на Arduino, а так же разберем пару примеров по работе со светодиодом и кнопкой и их подключением.
======================================================
Остальные выпуски курса "Arduino для начинающих": • ОБРАЗОВАТЕЛЬНОЕ: Уроки...
======================================================
Код и материалы видеоролика вы найдете здесь: github.com/viktor-osin/YouTub... - Наука та технологія
Единственный человек на ютубе кто понятно объясняет с самого азов для начинающих, молодец парень, спасибо тебе большое, главное не торопись и объясняй каждую команду в коде и приводи примеры их использования в других случаях, а так всё супер, только видио хочется по чаще))
а мне наоборот слишком растянуто, как по мне все 5 видео можно было бы сжать в одно и еще бы осталось :)
Не надо тут про единственного , Алекс Гайвер давным-давно сделал подобный понятный курс по ардуино
Смотрю с первого выпуска и всегда с нетерпением жду следующего. Очень давно хотел научится программировать под ардуино, но всегда никак не мог начать. Спасибо за твои видео! В особенности за то, что они очень подробные для тех, кто никогда не связывался с программированием. Хоть я и знаком с подобнымми функциями, я понимаю что не все их будут знать, и то что ты их объясняешь, это очень хорошо! В общем еще раз спасибо за видео и продолжай в том же духе)
Большое спасибо!
Смотрел много разных курсов, но на вашем - я начал понимать логику программирования !!!
Большая вам за это благодарность !!! 👍👍👍👍👍👍👍
Друг, очень хорошо объясняешь! Голос приятный, тебе на ТВ работать))) Даже проматывать не хочется))
Более доступного видео я еще нигде не нашел. нету слов молодец !
Спасибо БОЛЬШОЕ ТЕБЕ!
Приятно смотреть такие уроки! Все понял с первого раза!!! Ждем следующих уроков!!!
Спасибо за уроки! Все доступно и понятно доносишь информацию. С нетерпением жду новых выпусков. Продолжай в том же духе. Всем Добра!
Виктор, добрый день! Спасибо за уроки, считаю их лучшими в рунете! Доходчивая подача, грамотный русский язык без чрезмерного употребления англицизмов! Так держать!
Большое спасибо!
Привет из 2022г. ))) Все так же полезно и доходчиво. Самый лучший канал для начинающих.
Круто. Более доступного видео я еще не нашел.
Спасибо!
Великолепные уроки! Молодцы! Если ещё уберёте мешающие шумы (якобы музыкальное сопровождение) то будет просто гениально. Можно будет действительно учиться. Ведь для обучения нужно сосредоточиться, а посторонние шумы, не несущие информацию, только отвлекают и не позволяют хорошо запомнить.
Удивительно, но я начинаю понимать, заходя постепенно в дремучий лес. Спасибо.
Спасибо! Мне 54 года, и даже я понял что да как. Более того я использовал плату Ардуино Мега2560. Немного поработав над исходным скетчем я получил от светодиода эффект стробоскопа.
херасе
Приятное оформление видео. Размер шрифта в скетче хотелось бы крупнее, в остальном просмотр комфортный.
Спасибо, учту в следующих выпусках
Качественная, продуманная и доступная подача материала - ваш канал будет примером для многих :)
Как начинающий я могу ошибаться, но в первом примере перед функцией void setup() нужно добавить следующую строчку:
int LED_BUILTIN = 13; //Присваиваем переменной LED_BUILTIN значение 13
Без нее непонятно откуда ардуинка будет знать что LED_BUILTIN это 13 пин
Да, вы правы, но LED_BUILTIN прописана на уровне самой программы, как я говорил, по задумке разработчиков, поэтому ее можно не объявлять. В любом другом случае эта строчка потребуется
хорошие видео оч доходчиво и понятно..
Оформление видео на высоте. Посмотрел и решил освоить ардуино) Очень все интересно. Спасибо
Просто отличное видео. Случайно наткнулся на ролик о проекте на основе Ардуино и заинтересовался. Долго искал что-то более-менее систематизированное по этой теме начиная с азов, но везде показывается готовый результат и что надо сделать для его достижения. А как реализовывать свои проекты - непонятно. В этом видео все очень доходчиво, и главное, подробно объясняется. Большое СПАСИБО.
Это просто ну оооооочень годно, большое спасибо за твой труд!
Мне нравится как подаётся инфа - не торопясь и с расстановкой. Сам я не программист такого уровня, но молодёжь сооблазнила )) И я решил таки попробовать. Великого программиста с меня не получиться конечно, но для развития думаю не помешает. Спасибо Вам за Ваш труд.
2:36 Вот здесь я немножко несогласен. Код на С++ должен выглядеть примерно так:
(Давно не писал на С++, поэтому не уверен в правильности кода)
#include
setup ()
{
// Ваш код
}
loop()
{
// Ваш код
}
int main (void)
{
setup();
while (1)
{
loop();
}
}
Молодец(цы) продолжайте выкладывать подобные видео, очень всё подробно и доходчиво. ) Рад таким видео.
спасибо за прекрасное изложение материала!
Спасибо -очень подробно и понятно!
Лучшие уроки!
Полностью согласен с мнением большинства.!!!! Очень доходчиво и понятно.
Ты умница. Спасибо! просто и понятно. Учусь.
Две тысячи лайков!!! Спасибо огромное! Хорошо , что видео назад мотнуть можно. Лично ты бы устал мне объяснять про эти транзисторы!!! Вопрос всей моей жизни!)) СПАСИИБО ОГРОМНОЕ!!!!!!
Отличное видео, супер понятно.
Офигеть! Просмотрел кучу видосов про программирование Arduino, но везде объясняется так, что хрен что поймёшь, а здесь первое нормальное объяснение! Сколько времени искал подобное видео! Всё объяснено доступно, доходчиво и понятно! Класс!!!👍 мне только неясно, зачем нужно каждый раз писать "void" в начале (void loop, void setup и т. д.)? Объясните, пожалуйста! Спасибо!
Отличная подача материала.
Наконец нашел нормальное объяснение зачем и как подключать резистор
ТолкоВый канал👌
качественная работа, спасибо=))
Приятно смотреть молодец...
Добрый день, Виктор! Последовательно и академично излагаете материал, классно монтируете и оформляете видео. Приятно смотреть, спасибо за ваш труд! По поводу резисторов чуть поправлю: если на "+", то "подтягивающий", если на "землю", то "стягивающий".
Спасибо за отзыв и уточнение!
просто и очень доступно
Спасибо за видео
Отлично!
а как можно подключить внутренний резистор к минусу питания? при подключении внешнего светодиода, встроенный на 13 пин должен ли гореть постоянно?
Подскажите пожалуйста какой как будет выглядеть код для двух и более кнопок управляемых соответственно двумя или более реле?Я начинающий и что то не получается
Отлично.
я не понял почему надписи имени LED -Biultin не описывается в setup как присвоение 13 пину явно, т к может она и пину 6 или 3 присвоена. ил я что то пропустил ?
как сделать чтобы при потере связи между nrf2401.отключался моторчик на l298n
Здравствуйте, может я забегаю вперед, вообщем то я подсоединил еще две лампочки, добавил новые записи, все работает, лампочки последовательно мигают с определенной частотой, но почему то две последующие мигают слабее, я думал может дело в подсоединение, но увы и в этом не нашел промаха. В чем дела не подскажите, буду очень благодарен.
Я правильно понял подскажите.
pinMode - єто режим работи для порта, команда OUTPUT значит что пін может видать сквозь себя 5в или 0в,(HIGH | LOW) и наоборот команда pinMode INPUT значит что порт может принять сквозь себя 5в или 0в( HIGH | LOW), а командой digitalWrite уже может подать сквозь пін нужний нам сигнал 5в или 0в( HIGH | LOW)
Спасибо!
Огромное спасибо
Доброго времени..В данном примере используем кнопку без фиксации..и гараздо удобнее, если б при первом нажатии процесс запускался, а при повторном останавливался..а то держать не совсем удобно..))..если не трудно..как будет выглядеть скетч..?
15:02 а надо ли вместо pinMode (3, INPUT) поменять на pinMode (3, INPUT_PULLUP)?
Вообще в реальных проектах так и надо делать . А ещё лучше физически подтягивать входной порт к питанию через резистор 10к
всё здорово, только у меня почему то диод моргает все время.. как только загружу программа в ардуинку, без подачи на вход 1 цы думал нерабочая микросхема, так нет, меняю частот мигания, реагирует в чем может быть дело ? написано как и у тебя , все не раз проверил..
у меня почему то наоборот работает. Если подать не VCC а GND на pinMode(3) то перестает мигать светодиод. Скетч проверил, все верно. Но вот если заменить if (digitalRead(3)==1) на if (digitalRead(3)==0) то работает правильно. В чем может быть дело?
Спасибо за видео! У меня вопрос! Как лучше, для стабильности кнопки использовать отдельный подтягивающий резистор, или встроенный в ардуино? Я считаю что встроенный, т. к. написать одну строчку легче, чем устанавливать дополнительный резистор. Или я не прав?
Вопрос в живучести встроенного резистора.. Как вы понимаете, он гораздо меньше размеров внешнего, а значит, теоретически, менее надежен. С точки зрения простоты подключения он выигрывает, но с точки зрения надежности, на мой взгляд, нет.
Разобрался. Без стягивающего резистора на 3 пине был потенциал в 0,6...1В. Поэтому он (микроконтроллер) думал что я нажал кнопку. Поставил резистор и все заработало. Видео отличное.
Тоже самое было.
Спасибо за подробное видео.
У меня такие вопросы: 1) почему при включении Ардуино происходит хаотичное мигание 13го светодиода ? - а через несколько секунд начинает уже работать код. Это заметно при больших временных задержках.
2) Если не обозначин пин на нём при включении изменяется напряжение от 0,9V до 1,5V - счем это связано? - и не опасно это для микроконтроллера?
Спасибо.
Здравствуйте ардуиншики. У меня одна проблема. Когда делаю проекты порты ардуино принимают сигналы ХАЙ с моей руки как на видео 13:43 минута. Как избавиться от этого? Спасибо
Спасибо за видео. Вопрос: подтчгивающий резистор всегда на pin Graund ставим? как понять какой емкости ставить ? для светодиода 220 для кнопки 10. как правильно работать со схемой и платой? т.е. я подключил схему к usb и накидываю компоненты на плату? или сначала накидал подключил к кому через usb? боюсь спалить детали постоянно включая и выключая питание на плате выдергивая шнур.
Любые действия с любой электрической схемой нужно выполнять при выключенном питании, от частых вкл/выкл микроконтроллеру ничего не будет. Подтягивающие резисторы есть двух видов, к земле (gnd) и к питанию (+5v) об этом я рассказал в видео. Номиналы - для светодиода 220 Ом, для подтягивающего резистора 10 000 Ом = 10 кОм, об этом я так же говорил в видео.
И я в процессинге никогда не программируя, сел и написал простую прогу. Всё скомпилираволось и работает.
Помогите зарегестрироваться в том сайте где находится код программы
Почему когда я ставлю вместо 13 пина на D5 на ардуино нано. То пишет что такого пина нету....
Покажите схему подключения с подтягиванием к полюсу с внутренним резистором , не могу сообразить .
скажите пожфдуста как можно програмироват что цткл продалжался 10 раз
Почему при загрузке программы работы с кнопкой с антидребезгом сразу зажигается светодиод, хотя кнопка еще не нажималась?
Почему слетает прошивка на китайской Ардуине, при отключении/включении питания?
Работали ли вы с CNC Shield? Никак не могу понять как установить подтягивающие резисторы на кнопки Hold, Resume.. Спалил один шилд, есть идеи?)
Почему у меня при подключении к USB светодиод начинает сразу моргать? После нажатия кнопки Reset мигание пропадает, но потом начинается снова.
У меня кнопка вообще не работает. Если просто замыкаю цепь проводами, то диод горит. С кнопкой - не работает(не горит). Подскажите в чем может быть проблема?
Если честно про домашнее задание не понял, как понять от минусового полюса питания от GND ?
🔥🔥🔥
Спасибо огромное за уроки. 15:03 Уточните пож-та, зачем пишется digitalWrite(3, HIGH) в сэтапе? Я не пойму никак. Эту схему я собрал. все работает. Но не пойму зачем в стапе digitalWrite(3, HIGH). Можно пару подробнотей)
Не проще ли использовать имеющийся резистор на плате который активируется
pinMode(3, INPUT_PULLUP);
Проще, но тогда вы подвергаетесь риску, что маломощный резистор, находящийся в схеме микроконтроллера, может попросту выгореть из-за внешних наводок.
Здравствуйте! Куда Вы пропали? Давно нет новых выпусков(((
А будет видео про nrf24
Подскажите, а как организовать постоянное считывание сигнала с кнопки? К примеру идет цикл мигания диодов на 3-5 секунд, а потом нужно переключить на какую-либо другую последовательность мигания. Как вот сделать это, не дожидаясь окончания текущего цикла, т.е. что бы опрос кнопки шел параллельно с циклом мигания?
Вам нужно использовать прерывания, о которых я планировал рассказать в 11 выпуске. Можете что нибудь самостоятельно поискать на эту тему.
Спасибо.
Отлично подаёте материал. Успехов Вам.
Контроллер очень интересен - можно собрать цифровой аналог такого промышленного устройства как "Диск-250"
было бы интересно узнать кто уже пробовал такое!?
setup выполняется и при нажатии на reset же, да?
Нажимая на сброс, вы, по сути, стартуете работу микроконтроллера с самого начала. Поэтому, да, снова выполняется setup и прочее.
Добрый вечер! У меня возник вопрос. После загрузки программы для кнопки, светодиод все равно продолжает мигать, хотя по идее должен дождаться нажатия кнопки. В чем может быть проблема? Я так же менял длительность мигания светодиода (и это работало), но светодиод все так же мигает без нажатия кнопки.
Проблема может быть в неправильной настройке портов, считывании 1 вместо 0 в условии if и неправильном подключении кнопки. Проверьте еще раз схему и код, загружаемый в микроконтроллер. Если вы делаете подтяжку кнопки резистором к плюсу питания, то и пример кода нужно брать соответствующий, где управляющий сигнал это 0. Для проверки работоспособности кода без кнопки, можете использовать провод, которым можно подавать либо +5В на порт подключения кнопки (единицу), либо GND (ноль). А потом уже подключать кнопку.
я сделал простенький выключатель. То же самое подключение, только код такой:
int lamp = 10;
int but = 8;
void setup() {
// put your setup code here, to run once:
pinMode(lamp, OUTPUT);
pinMode(but, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if (digitalRead(but) == HIGH) {
delay(500);
while (true) {
digitalWrite(lamp, HIGH);
if ( digitalRead(but) == HIGH) {
delay(500);
digitalWrite(lamp, LOW);
break;
}
}
}
}
Ребят,все отлично,только вот ,что за понятие такое вы выкопали"подтягивающий резистор"!? вобще-то это называется "ШУНТИРОВАНИЕ" иногда добавляют уточнение "на массу"
Шунтирование, все таки, обозначает сам процесс подключения шунта, а вот уже подтягивающий резистор - "pull-up-резистор" - понятие, указанное во всех даташитах к зарубежным микроконтроллерам, и оно указывает на конкретный элемент, который это выполняет. Есть также, как уточнил один из подписчиков, стягивающие резисторы - это когда происходит подключение резистора к земле. По крайней мере я не слышал что бы кто-то сказал вместо подтяжки - шунтирование, хоть это тоже будет правильным выражением.
вроде бы резистор который снимает напряжение называется "стягивающий"?
Стягивающий и подтягивающий, смотря куда подключен - к плюсу или минусу
Подскажите пожалуйста где можно посмотреть как подключать двухканальное реле (точнее написать под него скетч) при алгоритме: сначала включается одно реле - работает 1 секунду, потом отключается на 10 минут (к примеру). Через две секунды после включения первого реле включается второе на 1 секунду и отключается на 10 минут. Мне нужен подобный алгоритм работы, но не хватает знаний, чтобы втиснуть включение второго реле в интервал LOW для первого реле (((.
Забыл добавить - интервал работы реле должен быть цикличным.
Смотри всё с самого начала.Материал должен излагатся последовательно От простого сложного Гугл в помощь. В инете полно литературы. накачал уже на 5 000
Здорово. Спасибо продолжайте в том же духе. На счёт резистора, не отрицательный потенциал а низкий правильнее будет. А вот вопрос из сложного. Никак не могу понять такую строку millis() / *** % 2 (***-цифра) . не ясно % что значит возвращает остаток. Все объяснения в интернете пишут одно и тоже без объяснения происходящего
А вы попробуйте прописать эту строку на вывод в Serial порт и посмотреть как она будет меняться при изменении двойки на другое число :)
А можно словами. А то не пойму что в сериал то выводить. Я просто могу что то простое писать. Смотрю канал Дмитрия Осипова. Он тоже описывает каждую строку кода, а это просто упоминает, что это строка задержки. Меня и заинтересовал %
Извиняюсь за долгий ответ. %2 от четного числа выдаст 0, а от нечетного 1, то есть это проверка на четность. Другими словами, это наличие или отсутствие остатка от деления на 2. У любого нечетного числа остаток будет, поэтому мк выдаст 1. Ваша запись millis() / число % 2 означает проверку выражения millis() / число на четность, либо нечетность. millis() - это функция, возвращающая количество миллисекунд с момента запуска мк.
Или это все можно програмировать на низких уровнях?
В строке условного оператора после скобки разве не нужно ставить ";"? По-моему раньше Вы говорили, что нужно каждую строку заканчивать именно так, иначе строки сольются...
Сегодня только начал изучать Arduino - так интересно! )))
Да, для одиночных команд строки нужны, но в данном случае у нас не обычная команда, а условие, то есть такая конструкция, которая предусматривает фигурные скобки, для таких конструкций ";" не нужна.
все круто, чувак, вроде понятно, но вот мне было бы более понятнее, если код появлялся анимационно, типа во время ролика автор попутно пишет код. // комментарии можно не анимировать. Так по моему проще понимать, что за буковки появляются и что они означают...
Обьясни у меня ошибка выбивает yava
доброе время суток! пытаюсь не смотря на возраст понять что к чему... в пятой части споткнулся на смешном ... что такое двойное равно... прогуглил и все равно ненашел! помогите как его набрать пожалуйста! Владимир.
Владимир, одиночное равно - это оператор присвоения, т.е. задание переменной какого-либо значения , например, a = 3. А двойное равно это просто оператор сравнения.
У меня не мигает, вылезает какая то ошибка, подскажите как вообще проверить работает ли моя ардуино?
Когда подключаете ардуино к компьютеру, на ней должен 3 раза поморгать светодиод под буквой L. Также в меню «инструменты» - «порт» - должен появиться СОМ порт с какой нибудь цифрой, но не СОМ1, он всегда там есть.
Какая ошибка появляется? Скопируйте сюда
Ничего не понимаю. Запись точно такая же, как на видео, но при этом он у меня почему то просто моргает и не реагирует на кнопки. Кто может помочь?
Проверьте, подключены ли кнопки подтягивающими резисторами, попробуйте разбить ваш код на несколько блоков и проверить каждый по отдельности, так же пользуйтесь командой Serial.print в тех местах кода, где нужна отладка.
Шум Шум Шум как з-ла ваша т.н музыка
Я всегда подключаю к другим пинам чтобы сразу развиваться быстрее
а еще другие цвета ЛЭДов использую))))))))))) и собираю на брэдбоард
Klas
это реальный мен, доступний и качественний контент и к гадалке не ходи))) а где можно найти Этот язык программирования (вайрик, wyrick, viric ...) чтобы выучить нюансы данного языка программирования, хотя утверждено на официальном сайте, что язиком для ардуино является С / С ++ с AVR библиотеками,как это понимать?((
Все круто, спасибо за выпуск. Правда не совсем понятны ваши цели:(
Вы имеете ввиду цель - разработка какого-либо конкретного устройства к концу серии? Я не ставлю этого перед собой, поскольку хочу по мере продвижения на каждую тему приводить разные примеры, а не крутиться все время только возле одного. По окончанию серии выпусков вы сможете самостоятельно реализовать то устройство, которое вам понравится, будь это "умный дом", метеостанция или робот :)
Я имею ввиду каких либо определенных, корыстных целей. Например, набрать подписчиков для канала, сделать платные выпуски, есть ли у вас инвесторы? и т.д. P/s Мне очень нравятся ваши труды!!! И эти глупые вопросы просто так, для любопытства.:)
Андрей Федоренко, аа, вы об этом) Нет, корыстных целей не имею, как и инвесторов.. Главная цель - сделать, по-возможности, не плохой курс для совсем начинающих :) Если кому-то он поможет - я уже буду рад
Без обид конечно, но вы говорите прям как депутаты. Не бережете вы себя, отдохнуть вам нужно, а вы все о курсах думаете...:)
Андрей Федоренко Немного не понял что вы имели ввиду
Где новый урок?!!
Его текст написан еще на прошлой неделе, но у меня ангина, как только пройдет горло - буду записывать.
+Программирование микроконтроллеров
Это вполне уважительная причина) Виктор, выздоравливайте скорее!
Vladislav55rus Спасибо :)
+Программирование микроконтроллеров Чуть не забыл, Вы в каком-то из уроков рекомендовали книгу для изучения Ардуино. Так вот я сразу не записал, а сейчас по описаниям посмотрел - не нашел. Подскажите пожалуйста автора и название.
Vladislav55rus это была книга по программированию AVR микроконтроллеров, то есть, без Ардуино :) Ее я советовал для тех, кто хочет отойти от простоты Ардуино и познать все прелести программирования на Си и Ассемблере. А книга эта называется: "Белов А.В. Микроконтроллеры AVR. От азов программирования до создания практических устройств"
а для того чтоб програмировать надо наверно знать английский? явот до 5 выпуска смотрю и я потерялся. А вот сначало как видео задача что надо сделать а потом как если англиским не точто плохо а с английским вообще ни как ВОПРОС что делать таким чайникам как я 40 летним?
Английский знать не обязательно, достаточно знать названия функций, операторов и т.д., с которыми вы работаете. Если сами будете писать код, то это быстро запомнится, а там, глядишь, если захотите, начнете потихоньку в английский втягиваться :)
Спасибо Все начилось мне нужен пид регулятор. Вопрос можно начать на ардуино мега? Или обязательно на УНО? Наверно пид регулятор можно собрать что на платформе мега и на платформе уно
Да А КАК разобратсяв функциях
молодец, тока кушай побольше
Вообще то родной язык программирования АРДУИНО это Proccessing
Нет, у Ардуино вообще нет как такого отдельного языка программирования. Официальный источник говорит, что это Wiring, по сути, являющийся надстройкой языка C++. Например: robocraft.ru/blog/arduino/25.html
Почему мне 40 лет и я такой тупой, а он такой молодой и такой Голова!?:D
Каким же уродом надо быть что бы поставить дизлайк.Автор молодец.