АЛГОРИТМ РАБОТЫ СВЕТОВЫХ СИГНАЛОВ



 

Каждый проект начинается на бумаге. И наш не исключение. Давайте представим схему работы световых сигналов в виде последовательности действий (Рисунок – 3.1).

 

Рисунок – 3.1 Схема работы световых сигналов.

 

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

 

Структурная схема и составляющие световых сигналов

 

- Светодиод красный (Рисунок 3.2 ) 1 шт.

Наименование: АЛ102Б

Цвет свечения: красный

Сила света (IV): 100 мккд

Прямой ток (Iпр): 20 мА

Прямое напряжение (Uпр): 2.8 В

Длина волны (λ): 690 нм

Максимальное постоянное обратное напряжение VR (Uобр): 2 В

Корпус: АЛ102

Примечание: Две красные точки

 

Рисунок 3.2 – Корпус АЛ102

 

 

- Светодиод желтый (Рисунок 3.3) 1 шт

Цвет свечения: желтый

Сила света (IV): 400 мккд

Прямой ток (Iпр): 10 мА

Прямое напряжение (Uпр): 2.8 В

Длина волны (λ): 560 нм

Максимальное постоянное обратное напряжение VR (Uобр): 2 В

Корпус: АЛ307А

Примечание: Черная точка на корпусе

 


Рисунок 3.3 – Корпус АЛ307А

 

- Светодиод зеленый (Рисунок 3.4 ) 1 шт

Наименование: АЛ307В

Цвет свечения: зеленый

Сила света (IV): 400 мккд

Прямой ток (Iпр): 20 мА

Прямое напряжение (Uпр): 2.5 В

Длина волны (λ): 560 нм

Максимальное постоянное обратное напряжение VR (Uобр): 2 В

Корпус: АЛ307А

Примечание: Черная точка на корпусе

 

Рисунок 3.4 – Корпус АЛ307А

 

 

- Резистор на 220 Ом 3 шт (Рисунок 3.5)

Цветовая маркировка резистора: красный, красный, черный, черный, коричневый

220Ом +- 1%

 

 

Рисунок 3.5 – - Резистор на 220 Ом

 

- Макетная плата 1 шт

- Соединительный провода 7 шт.

- ArduinoUNO (Рисунок 3.6) 1 шт

Наименование: Arduino Uno

Микроконтроллер: ATmega328

Тактовая частота: 16 МГц

Размер программной памяти (Flash) (Программная память): 32 кБ

Память данных (EEPROM): 1024 Б

Память ОЗУ (SRAM) (RAM): 2048 Б

Количество цифровых линий ввода-вывода (Цифровых I/O): 14

Аналоговых входных каналов: 6

ШИМ каналов: 6

Рабочее напряжение: 5 В

Напряжение питания (min) (Uпит (min)): 7 В

Напряжение питания (max) (Uпит (max)): 12 В

Ток I/O вывода (max): 40 мА

 

 

Рисунок 3.6 – ArduinoUNO

 

Рисунок 3.7 – Структурная схема

 

Реализация световых сигналов

 

Собираем наши световые сигналы по схеме (Рисунок 3.8). Главное, соблюсти полярность светодиодов. У светодиода анод - это плюс, а катод - это минус. Длинную ножку (анод), подключить к пинам (Пин - это вывод или контакт, кому как нравится.) Еще нужно подключить светодиоды именно пинам 13, 12 и 11. Зеленый к 13, Желтый к 12, Красный к 11.

Собранный экземпляр наглядно. (Рисунок 3.9)

 

 

Рисунок 3.9 – Собранная схема световых сигналов

 

Рисунок 3.8 Схема сборки световых сигналов

Код проекта

 

Прописываем программу. For - это так называемый цикл со счетчиком. Этот цикл повторяет действия ,заключенные в скобки, заданное количество раз. Сколько раз повторить - задается внутри круглых скобок.

В общем виде его можно записать так:

for(Переменная;Условие;Изменение)

{Код, который нужно повторять}

Переменная - переменная, созданная только для цикла for. Нужна для того, чтобы "инициализировать" цикл. То есть сравнить переменную с условием цикла.

Условие - условие, при истинности которого будут выполняться действия в фигурных скобках.

Изменение - правило, по которому изменяется переменная. Изменение производится после проверки условия. После этого проверяется измененная переменная.

 

// Для лучшей читаемости, нужно давать, так называемые, макроопределения.

// Макроопределение работает так, как и Вордовское "Найти и заменить".

 

#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);

 

}

// Теперь наш код стал компактнее и читабельнее.

// Но запомни, тебе следует давать осмысленные имена переменным и макроопределениям.Это улучшает читабельность.

// Если ты через месяц откроешь свой код, ты поймешь о чем я говорю.

 

 

ЗАКЛЮЧЕНИЕ

 

Заключение В рамках курсового проэкта были выполнены основные этапы:

1)Изучены возможности платформы Arduino;

2)Основные решения проектирования простых устройств на базе микроконтроллеров;

3)Была написана программа для управления световыми сигналами.

В дальнейшем планируется усовершенствовать примеры описанные в курсовой работе, а так же написать новые более функциональные и сложные примеры, для прошивки платформ Arduino.

 


Дата добавления: 2018-11-24; просмотров: 317; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!