-
ЗНАКОМСТВО С TINKERCAD 2
-
Лекция1.1
-
Лекция1.2
-
-
ОСНОВЫ ЭЛЕКТРОНИКИ 10
-
Лекция2.1
-
Лекция2.2
-
Лекция2.3
-
Лекция2.4
-
Лекция2.5
-
Лекция2.6
-
Лекция2.7
-
Лекция2.8
-
Лекция2.9
-
Викторина2.1
-
-
ЗНАКОМСТВО С ARDUINO 7
-
Лекция3.1
-
Лекция3.2
-
Лекция3.3
-
Лекция3.4
-
Лекция3.5
-
Лекция3.6
-
Викторина3.1
-
Пробы пера
Традиционно в качестве первой программы для Arduino рассматривают процесс мигания тестовым светодиодом. Поступим и мы таким же образом. Для этого:
- Зайдите в свое рабочее пространство TinkerCad.
- Создайте новое электронное устройство.
- На рабочее поле добавьте плату Arduino UNO и перейдите в режим написания программы в виде текстового кода
- Среда TinkerCad автоматически уже создала тестовый пример кода.
- Запустив симуляцию, мы сможем наблюдать мигание тестового светодиода на плате.
Разберемся, почему же светодиод мигает? Ниже приведен тестовый код с комментариями.
Исходный код | Комментарии |
void setup() | Функция setup выполняется один раз при запуске микроконтроллера и используется в основном для конфигурации портов |
{ | Начало функции setup |
pinMode(13, OUTPUT); | Настраиваем пин 13 в режим вывода, т.е. в режим источника напряжения |
} | Конец функции setup |
void loop() | Функция loop выполняется постоянно и начинается после выполнения функции setup |
{ | Начало функции loop |
digitalWrite(13, HIGH); | Подаем на пин 13 «высокий сигнал» (англ. «HIGH») – это заставит светодиод светиться |
delay(1000); | Пауза в 1 секунду (1 с = 1000 мс) |
digitalWrite(13, LOW); | Подаем на пин 13 «низкий сигнал» (англ. «LOW») – это заставит светодиод погаснуть. |
delay(1000); | Пауза в 1 секунду |
} | Конец функции loop |
Примечания:
- Цифровые пины могут быть установлены в режимы работы как вход или выход: INPUT или OUTPUT. Установка производится функцией pinMode():
- Пины, установленные в режим INPUT, находятся в высокоимпедансном состоянии. Это означает то, что пин дает слишком малую нагрузку на схему, в которую он включен.
- Пин, установленный в режим OUTPUT, находится в низкоимпедансном состоянии. Он может пропускать через себя довольно большой ток, до 40 mA, достаточный для запитывания внешней цепи, например, светодиода.
- Возможны только два значения для считывания или записи на цифровой пин: HIGH и LOW:
- Если пин сконфигурирован в режим выхода, то значению HIGH соответствует постоянное напряжение 5 В.
- Если пин сконфигурирован в режим входа и с него считываются значения, то значению HIGH соответствует напряжение ≥ 3 В или выше на указанном пине.
- Если пин сконфигурирован в режим входа, то значению LOW будет соответствовать постоянное напряжение 0 В.
- Если пин сконфигурирован в режим входа и с него считываются значения, то значению LOW соответствует напряжение ≤ 2 В.
- Язык программирования плат Arduino является С-подобным, что позволяет при написании программ для устройств использовать многие его возможности.
Arduino + схемотехника
Рассмотрим еще один пример: необходимо создать асинхронное мигание двух светодиодов с периодом в 4 секунды. Для этого:
- Зайдите в свое рабочее пространство TinkerCad.
- Создайте новое электронное устройство.
- На рабочее поле добавьте макетную плату, плату Arduino UNO, светодиоды и резисторы. С помощью проводников создайте замкнутую электрическую цепь.
- Перейдите в режим написания программы в виде текстового кода и создайте следующую программу:
Исходный код | Комментарии |
int ledRed = 4; | Сообщаем программе, какой пин будет соответствовать красному светодиоду, объявив вспомогательную переменную ledRedи присвоив ей значение 4 |
int ledGreen = 12; | Сообщаем программе, какой пин будет соответствовать зеленому светодиоду, объявив вспомогательную переменную ledGreen и присвоив ей значение 12 |
void setup() | |
{ | |
pinMode(ledRed, OUTPUT); | Настраиваем пин для красного светодиода в режим вывода |
pinMode(ledGreen, OUTPUT); | Настраиваем пин для зеленого светодиода в режим вывода |
} | |
void loop() | |
{ | |
digitalWrite(ledRed, HIGH); | включаем красный светодиод (подаем «высокий сигнал» на соответствующий пин) |
digitalWrite(ledGreen, LOW); | выключаем зеленый светодиод (подаем «низкий сигнал» на соответствующий пин) |
delay(2000); | Пауза в 2 секунды |
digitalWrite(ledRed, LOW); | выключаем красный светодиод |
digitalWrite(ledGreen, HIGH); | включаем зеленый светодиод |
delay(2000); | Пауза в 2 секунды |
} |
- Запустив симуляцию, мы сможем убедиться в правильности нашего кода.
Примечание:
- Использование в программе переменных ledRed и ledGreen, хранящих в себе номера управляемых пинов, является хорошим тоном в программировании, хоть и не является
обязательным. Такой подход позволяет легко изменять программу только в одном месте при изменении структуры программируемого устройства.
Задания: |
Задание 11. Создайте модель светофора на перекрестке (при решении задания рекомендуется выдерживать временной цикл работы светофора).
Замечание. Необходимо смоделировать работу “двойного” светофора, как в представленном видео-фрагменте.
Предоставьте общий доступ к своему виртуальному устройству и отправьте ссылку на решения с помощью формы.
Предыдущий
Что такое Arduino?
Следующий
Аналоговые и цифровые сигналы