учитель детских курсов

Переход с языка Skretch на язык C++

Цель: начать осваивать программирование в среде Arduino. Научиться работать с цифровыми портами.

План урока

1. Описание среды Arduino
2. Основные функции

Теоретическая часть

1. Описание среды Arduino

Для программирования плат Arduino существует специальная интегрированная среда разработки IDE Arduino. Рассмотрим внешний вид программы(рис 1).

IDE Arduino

Рисунок 1 - Внешний вид IDE Arduino

Вверху, под строкой заголовка находится строка Меню, со следующими пунктами: Файл, Правка, Скетч, Настройки, Сервис.
Под строкой меню располагается строка инструментов, на которую вынесены частоиспользуемые команды:


проверить - Проверить
загрузить - Загрузить
Новый - Создать
сохранить - Сохранить
открыть - Открыть
Монитор порта - Монитор порта.


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

2. Основные функции

Программа, написанная в IDE Arduino называется скетчем. Каждый скетч должен состоять как минимум из двух функций:


void setup()
{
операторы;
}
void loop()
{
операторы;
}


В начале программы, перед функцией setup, обычно, объявляются переменные. После включения питания платы первой выполняется функция setup. Она выполняется только один раз. Обычно в ней инициализируются режимы работы портов: порты, к которым подключены различные датчики устанавливаются как входы, а порты с исполнительными устройствами как выходы.
Код, написанный в функции loop() начинает выполняться после выполнения функции setup(), и выполняется в бесконечном цикле снова и снова. В этой функции выполняется основная работа: различные вычисления, получение значений датчиков, вывод значений на порты.
В таблице ниже приведены в соответствия блоки из Skretch и их аналоги - функции из С++.

Блок из Skretch

Аналог в С++

Описание

всегда

 

void loop()
{
/*действия, которые будут выполняться постоянно, пока включено питание платы*/
}

 

Одна из обязательных функций. Внутри располагаются действия, которые будут выполняться постоянно, пока включено питание.
digital on

 

digitalWrite(10, HIGH);

 

Посылает на заданный порт значение HIGH
digital off

 

digitalWrite(10,LOW);

 

Посылает на заданный порт значение LOW
sensor value

 

digitalRead(2);

 

Возвращает значение ИСТИНА, если на порте значение HIGH и ЛОЖЬ, если LOW.
value of sensor

 

analogRead(0);

 

Возвращает аналоговое значение с заданного порта
analog value

 

analogWrite(5,255);

 

Посылает на порт аналоговое значение от 0 до 255. Функция в С++ может посылать аналоговое значение и на дискретные и на аналоговые порты.
ждать секунд

 

delay(100);

 

Задержка в миллисекундах.
если

 

if (/*условие*/)
{ /*
дейсвия, выполняемые, если выполняется условие */
};

 

Выполняет действия, указанные между фигурных скобок, если условие истинно. Если выполняемое действие одно, то оно может не заключаться в фигурные скобки. Условие записывается с помощью следующих операторов отношения: == - проверка на равенство, < - меньше, > - больше, <= - меньше или равно, >= больше или равно, != - не равно.
если или

 

if (/*условие*/)
{ /*
дейсвия, выполняемые, если выполняется условие */
}
else { /*
действия, выполняемые, если условие не выполняется */
};

 

Выполняется аналогично предыдущей функции, но после слова else указываются действия, которые должны выполняться, если условие ложно.

 

Практическая часть

Пример программы, которая “моргает” светодиодом.

 

Скрипт в Skretcs

Программа  на C++

Скрипт для мигания светодиодом

 

void setup()
{
pinMode(10, OUTPUT);
}
void loop()
{
digitalWrite(10, HIGH);
delay(1000);
digitalWrite(10,LOW);
delay(1000);
}

 

 

 

Пример программы, которая зажигает светодиод при нажатой кнопке.

 

Скрипт в Skretcs

Программа на C++

реакция на кнопку

 

void setup()
{
pinMode(10, OUTPUT);
}
void loop()
{
if (digitalRead(2)==HIGH)
{
digitalWrite(10, HIGH);
delay(1000);
}
else
{
digitalWrite(10,LOW);
delay(1000);
}
}

 

 

Задание.

Написать программу для управления тремя светодиодами и тремя кнопками:
1. При нажатии одной из кнопок начинает светиться соответствующий ей светодиод. Если кнопка не нажата, то светодиод не светится.
2. При нажатии первой кнопки три светодиода должны последовательно начать светиться и гаснуть ( первый зогорается, горит секунду, затем гаснет и одновременно с этим загорается второй и тд). При нажатии второй кнопки три светодиода одновременно моргают 3 раза с интервалом 1 с. При нажатии третьей кнопки светодиоды должны сначать последовательно все начать светиться, а затем в том же порядке погаснуть.


 

Учебная программа курса RoboKid


Похожие посты:

Программа для управления частотой пьезопищалки двумя кнопками

Проверка знаний по программированию в среде S4A

0
Комментировать
Введите код: