Курс молодого бойца мира Arduino Arduino. Начало Доброго времени суток! Мы начинаем курс молодого бойца мира Arduino. Это первый уровень. Он предназначен для тех, кто только-только попал в мир DIY электроники и хочет разобраться, что к чему, не корпя часами над учебниками. Без теории, конечно, не обойтись, но мы будем тут же подкреплять ее практикой. Как начать Чтобы начать курс обучения нужно: Скачать среду разработки Ардуино. Завести себе плату Arduino или ее аналоги. Научиться подключать плату к компьютеру. Приобрести себе рассыпухи. Все нужные детали будут в описании. Не бояться совершать ошибки. Без ошибок не будет развития. Иметь желание познать дзен DIY, конечно. Если ты полон сил, у тебя есть необходимые компоненты, и ты готов открыть для себя мир электроники, добро пожаловать! Аксиомы нашего курса Если что-то не так, лучше вынуть кабель питания, и только после этого, менять схему. Код нужно писать самому, а не копировать пример. Так ты запомнишь много, а если будешь копировать – совсем чуточку. Не обязательно соблюдать цвета проводов, как на схемах. Цвет может быть любым, он не влияет на функциональность схемы. Во всех наших экспериментах( 1 Уровня) мы будем использовать ArduinoUNO и макетную плату. В компонентах, необходимых для проведения урока они не будут описываться. Опишу я их только в первом уроке. Все решения, показанные в нашем курсе, не являются единственно верными. Если ты нашел другое, более рациональное решение для той или иной задачи, не думай, что ты не прав. Помни, что я показываю основы работы с Arduino и способы для решений типовых задач. А дальше, ты сам можешь усложнять/ упрощать код или схемы на свое усмотрение. Твори, что тебе вздумается (в пределах разумного, конечно) Первое устройство Нашим первым небольшим проектом будет крайне полезная на дороге вещь - светофор. Кто-нибудь думал о том, как устроен светофор? Там нет сложнейших схем и огромного числа электроники всего-то таймер да небольшая плата управления. Мы попытаемся сделать небольшой светофор. Это будет идеальным началом для знакомства с Arduino. Алгоритм работы светофора Каждый проект начинается на бумаге. И наш не исключение. Давайте представим схему работы светофора в виде последовательности действий. На рисунке видно, что после одного цикла действий мы начинаем его снова и снова. Действия идут в строгом порядке и не могут быть выполнены , пока не подойдет их очередь. Вот и мы должны писать нашу программу строго по алгоритму. Так, с алгоритмом разобрались. Теперь нам нужно собрать наш светофор. Детали для светофора - Светодиод красный 1 шт - Светодиод желтый 1 шт - Светодиод зеленый 1 шт - Резистор на 220 Ом 3 шт - Макетная плата 1 шт - ArduinoUNO 1 шт - Соединительные провода "Папа-Папа" 7 шт Сборка Собираем наш светофор по схеме. Главное, соблюсти полярность светодиодов. У светодиода анод - это плюс, а катод - это минус. Длинную ножку (анод), подключить к пинам (Пин - это вывод или контакт, кому как нравится.) Еще нужно подключить светодиоды именно пинам 13, 12 и 11. Зеленый к 13, Желтый к 12, Красный к 11. Кодим Отлично. У нас есть мини-светофор. И теперь нам надо заставить его работать. Для этого нам нужно запрограммировать плату. Не надо пугаться, эта задача не сложная. Нужно лишь чуток внимательности и все получится.Рабочий код будет прикреплен к статье.Если интересно узнать, что значат функции ,и почему мы пишем их именно так, можно зайти на arduino.ru. Посмотрим на код: //Впоследствии мы научимся делать код более компактным и читабельным, но для начала нам нужно разобраться с этим. void setup() { pinMode(13, OUTPUT); // Это наш зеленый светодиод,его мы обозначили как выход. pinMode(12,OUTPUT); // Это желтый pinMode(11,OUTPUT); //Это красный } //Теперь наш алгоритм, записанный на бумаге, нужно перевести в программу. void loop() { digitalWrite(11, HIGH); //Включаем красный светодиод delay(5000); //Ждем, пока он горит. digitalWrite(12, HIGH); //Вместе с красным зажигаем и желтый. delay(1000); //Ждем немного digitalWrite(11, LOW); //Теперь надо выключить красный и желтый, digitalWrite(12, LOW); digitalWrite(13, HIGH); //И включить зеленый delay(5000); //Жем, пока горит зеленый digitalWrite(13, HIGH); // Теперь моргаем зеленым,Эту часть можно сделать меньше.Я расскажу об этом чуть позже. delay(800); digitalWrite(13, LOW); delay(800); digitalWrite(13, HIGH); delay(800); digitalWrite(13, LOW); delay(800); digitalWrite(13, HIGH); delay(800); digitalWrite(13, LOW); //Включаем желтый и гасим зеленый digitalWrite(12, HIGH); delay(1000); digitalWrite(12, LOW); //Гасим желтый delay(10); //Цикл повторяется бесконечное число раз. } Теперь у нас есть рабочий светофор. Меньше кода Теперь давайте увеличим читаемость нашего кода и попробуем его сделать компактнее. Посмотрим на наш код. // Более правильный код. // Для лучшей читаемости, нужно давать, так называемые, макроопределения. // Макроопределение работает так, как и Вордовское "Найти и заменить". #define GREEN 13 // Обозначим 13 пин как Зеленый. #define YELLOW 12 // 12 - как Желтый. #define RED 11 // 11 - как красный. // Нам нужно создать переменные, для упрощения работы при настройке параметров программы и лучшей читаемости. int main_delay = 5000; // Время горения красного и зеленого int mini_delay = 1000; // Время горения желтого int blink_delay = 800; // Время моргания зеленого void setup() { pinMode(GREEN, OUTPUT); pinMode(YELLOW, OUTPUT); pinMode(RED, OUTPUT); } void loop() { digitalWrite(RED, HIGH); delay(main_delay); digitalWrite(YELLOW, HIGH); delay(mini_delay); digitalWrite(RED, LOW); digitalWrite(YELLOW, LOW); digitalWrite(GREEN, HIGH); delay(main_delay); digitalWrite(GREEN, LOW); // Теперь моргаем зеленым.Им можно моргать с помощью так называемого цикла со счетчиком. for(int i = 0; i < 3; i = i+1) { delay(blink_delay); digitalWrite(GREEN, HIGH); delay(blink_delay); digitalWrite(GREEN, LOW); } digitalWrite(YELLOW, HIGH); delay(mini_delay); digitalWrite(YELLOW, LOW); delay(mini_delay); } // Теперь наш код стал компактнее и читабельнее. // Но запомни, тебе следует давать осмысленные имена переменным и макроопределениям.Это улучшает читабельность. // Если ты через месяц откроешь свой код, ты поймешь о чем я говорю. Пояснения For - это так называемый цикл со счетчиком.Этот цикл повторяет действия ,заключенные в скобки, заданное количество раз. Сколько раз повторить - задается внутри круглых скобок. В общем виде его можно записать так: for(Переменная;Условие;Изменение) { Код, который нужно повторять} Переменная - переменная, созданная только для цикла for. Нужна для того, чтобы "инициализировать" цикл. То есть сравнить переменную с условием цикла. Условие - условие, при истинности которого будут выполняться действия в фигурных скобках. Изменение - правило, по которому изменяется переменная. Изменение производится после проверки условия. После этого проверяется измененная переменная. Итог урока Теперь код более читабельный и компактный. Сегодня ты научился делать светофор. Это только начало. Тебе стоит отдохнуть и переварить полученную информацию. Но если ты горишь желанием продолжить, приступай к следующей статье. Список радиоэлементов Источник: http://cxem.net/arduino/arduino183.php http://cxem.net/arduino/images/arduino183-2.png

Теги других блогов: электроника Arduino DIY