Макетная плата

Используемый для курса стенд содержит макетную плату, все верхние контакты которой подключены к пину +5 В Arduino, нижние контакты – к пину Gnd (0 В) Arduino (используются для питания внешних датчиков и модулей), а остальные – соединены вместе по 5 контактов (см. рис.) и могут использоваться для создания различных схем путем втыкания в отверстия макетной платы элементов и проводных соединителей типа штырек/штырек

Верхние пины – питание, +5 В

Все остальные пины подключены по 5 контактов (выделены в качестве примеров, таким же образом соединены и все остальные)

Нижние пины – земля Gnd, 0 В

Практическое занятие 3:

1. достаньте из коробки 3 светодиода с припаянными резисторами. Используем светодиоды трех разных цветов – красный, желтый и зеленый для создания модели светофора

2. подключите светодиоды к макетной плате в соответствии с приведенным ниже рисунком. Плюс светодиодов подключен к резистору, поэтому к цифровым выходам контроллера подключается контакт светодиода с напаянным резистором. Проводным соединителем штырек-штырек соедините контакт макетной платы с цифровым пином Arduino: красного светодиода – с пином 11 желтого – с пином 7, зеленого – с пином 2. Используйте провода тех же цветов, что и цвета светодиодов

Примечание: не нужно гнуть светодиоды так, чтобы они смотрели в сторону

3. подключите второй контакт светодиодов (нижний, без резистора) к земле. Контакт зеленого светодиода к земле уже подключен, контакты двух других светодиодов соедините с нижней линейкой контактов в соответствии со схемой ниже. Для соединения с землей используйте провода синего или черного цвета

4. Напишем программу для управления светофором. Для начала – просто включение светодиодов по очереди. Алгоритм работы:

· включить красный светодиод

· подождать одну секунду

· выключить красный светодиод

· включить желтый светодиод

· подождать одну секунду

· выключить желтый светодиод

· включить зеленый светодиод

· подождать одну секунду

· выключить зеленый светодиод

5. Напишите в среде Arduino программу, написанную по данному алгоритму (выделенный полужирным текст, комментарии писать не обязательно)

int led_red = 11; // красный светодиод подключен к пину 11 int led_yellow = 7; // желтый светодиод подключен к пину 7 int led_green = 2; // зеленый светодиод подключен к пину 2 void setup() { // прописываем пины, к которым подключены светодиоды, как выходные pinMode(led_red, OUTPUT); pinMode(led_yellow, OUTPUT); pinMode(led_green, OUTPUT); } void loop() { digitalWrite(led_red, HIGH); // включить красный светодиод delay(1000); // подождать одну секунду digitalWrite(led_red, LOW); // выключить красный светодиод digitalWrite(led_yellow, HIGH); // включить желтый светодиод delay(1000); // подождать одну секунду digitalWrite(led_yellow, LOW); // выключить желтый светодиод digitalWrite(led_green, HIGH); // включить зеленый светодиод delay(1000); // подождать одну секунду digitalWrite(led_green, LOW); // выключить зеленый светодиод } // начать цикл loop снова

6. Загрузите написанную программу в контроллер и убедитесь, что светодиоды зажигаются в соответствии с написанным алгоритмом

Практическое занятие 4:

Напишем более сложный алгоритм работы и изменим программу таким образом, чтобы поведение светодиодов было похоже на настоящий светофор

· включить красный светодиод

· подождать три секунды

· помигать красным светодиодом 4 раза

· включить желтый светодиод

· подождать три секунды

· выключить желтый светодиод

· включить зеленый светодиод

· подождать три секунды

· помигать зеленым светодиодом 4 раза

В этом случае задачу «помигать красным светодиодом 4 раза» можно решить «в лоб» таким способом:

digitalWrite(led_ red, HIGH); // включить светодиод delay(500); // подождать полсекунды digitalWrite(led_ red, LOW); // выключить светодиод delay(500); // подождать полсекунды digitalWrite(led_ red, HIGH); // включить светодиод delay(500); // подождать полсекунды digitalWrite(led_ red, LOW); // выключить светодиод delay(500); // подождать полсекунды digitalWrite(led_ red, HIGH); // включить светодиод delay(500); // подождать полсекунды digitalWrite(led_ red, LOW); // выключить светодиод delay(500); // подождать полсекунды digitalWrite(led_ red, HIGH); // включить светодиод delay(500); // подождать полсекунды digitalWrite(led_ red, LOW); // выключить светодиод delay(500); // подождать полсекунды

Но такой вариант трудоемок, приводит к большому объему написанного кода и вследствие этого к трудности чтения программы. Для многократных повторений одной и той же части кода можно использовать цикл for:

for (начальное значение переменной счетчика, конечное значение переменной счетчика, на сколько прибавить счетчик){ код, который нужно повторить несколько раз }

С использованием цикла for код, выполняющий задачу «помигать красным светодиодом 4 раза» будет выглядеть так:

for(int i = 1; i <= 4; i = i + 1) { // начать цикл: от 1 до 4 – т.е. блок между // фигурными скобками { } повторится 4 раза, при i=1, i=2, i=3 и i=4 digitalWrite(led_red, HIGH); // включить красный светодиод delay(500); // подождать полсекунды digitalWrite(led_red, LOW); // погасить красный светодиод delay(500); // подождать полсекунды }

С использованием цикла for программа, реализующая написанный для светофора алгоритм, будет выглядеть так:

int led_red = 11; // красный светодиод подключен к пину 11 int led_yellow = 7; // желтый светодиод подключен к пину 7 int led_green = 2; // зеленый светодиод подключен к пину 2 void setup() { // прописываем пины, к которым подключены светодиоды, как выходные pinMode(led_red, OUTPUT); pinMode(led_yellow, OUTPUT); pinMode(led_green, OUTPUT); } void loop() { digitalWrite(led_red, HIGH); // включить красный светодиод delay(3000); // подождать три секунды for(int i = 1; i <= 4; i = i + 1) { // повторить 4 раза digitalWrite(led_red, HIGH); // включить красный светодиод delay(500); // подождать полсекунды digitalWrite(led_red, LOW); // погасить красный светодиод delay(500); // подождать полсекунды } digitalWrite(led_yellow, HIGH); // включить желтый светодиод delay(3000); // подождать три секунды digitalWrite(led_yellow, LOW); // выключить желтый светодиод digitalWrite(led_green, HIGH); // включить зеленый светодиод delay(3000); // подождать три секунды for(int i = 1; i <= 4; i = i + 1) { // повторить 4 раза digitalWrite(led_ green, HIGH); // включить зеленый светодиод delay(500); // подождать полсекунды digitalWrite(led_ green, LOW); // погасить зеленый светодиод delay(500); // подождать полсекунды } } // начать цикл loop снова

7. Напишите в среде Arduino программу, приведенную выше (выделенный полужирным текст, комментарии писать не обязательно)

8. Загрузите написанную программу в контроллер и убедитесь, что светодиоды зажигаются в соответствии с написанным алгоритмом


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: