Лабораторная работа 5. Фоторезистор
Цель работы:
Знакомство с принципом работы фоторезистора, а также применение полученных навыков для создания программы по управлению яркостью светодиода по сигналу с фоторезистора.
Теоретическая часть
Фоторезистор – это полупроводниковый прибор, электрическое сопротивление которого меняется в зависимости от интенсивности падающего на него света. Чем интенсивней свет, тем больше создается свободных носителей зарядов и тем меньше становится сопротивление элемента. Фоторезистор работает только в определенном диапазоне длин волн света. Их условно разделяют на разные цвета, с которыми они работают. При подборе правильного фоторезистора нужно это учитывать. Также на значение датчика влияет температура. Фоторезисторы работают в определенном диапазоне температур. Это тоже нужно учитывать при подборе.
Для характеристики интенсивности света используют величину освещенности, которая для разных условий окружающих среды представлена в таблице 5.1. Интенсивность света измеряется в люксах [лк].
Окружающая среда | Освещённость (lx) |
---|---|
Полная луна | 0,1 |
Сумерки | 1 |
Аудитория | 10 |
Учебный класс | 30 |
Рассвет или закат | 400 |
Операционный зал больницы | 500 - 1000 |
Прямой солнечный свет | 10000 |
Таблица 5.1. Значение освещенности для различных условий окружающей среды
Обозначение фоторезистора на электрических схемах изображено на Рисунок 5.1.
Рисунок 5.1. Изображение фоторезистора на электрической схеме
В данной лабораторной работе необходимо разработать программу, которая будет управлять яркостью лампочки (светодиода). Далее идёт рассмотрение работы основных частей кода.
Практическая часть
Для разработки программы, позволяющей управлять яркостью светодиода с помощью фоторезистора, необходимо прежде научиться использовать операторы ветвления, такие как if, else.
Операторы ветвления if, else
Описание:
Оператор If используется вместе с операторами сравнения, проверяет выполнено ли условие. При выполнении условия, выполняются определенные операции внутри функции, в случае невыполнения условия, функция пропускается.
Синтаксис:
if ( условие )
{
Действия.
}
Порой, при невыполнении условия пропустить код недостаточно, не- обходимо провести различные операции и при выполнении условия, и при не выполнении. Для таких случаев добавляется дополнительная конструкция else.
Синтаксис:
if ( условие )
((условие выполнено))
{
Действия А.
}
else
((условие не выполнено))
{
Действия B.
}
Также можно использовать такие дополнительные конструкции, как else if. Они позволяют создать дополнительное условие при невыполнении главного условия оператора с выполнением определенных действий при выполнении этого дополнительного условия.
Синтаксис:
if ( условие 1 )
((условие выполнено))
{
Действия А.
}
else if (условие 2)
((условие 1 не выполнено, но условие 2 выполнено))
{
}
else
{
}
Действия B.
((ни одно из условий не выполнено)) Действия С.
Можно приступить к рассмотрению кода программы.
Схема подключения:
К данной рабочей программе используется следующая схема под- ключения (Рисунок 5.2). Для реализации проекта потребуются следую- щие компоненты: макетная плата, светодиод (1 шт), фоторезистор (1 шт), потенциометр (1 шт), резистор на 220 Ом (1 шт), резистор на 10 кОм (1 шт) и провода.
Рисунок 5.2. Схема подключения
После сборки схема имеет следующий вид (Рисунок 5.3):
Рисунок 5.3. Внешний вид схемы после сборки
Рабочая программа:
// Объявление переменной led_pin, ldr_pin и pot_pin, пин светодиода,
// фоторезистора и потенциометра соответственно.
// Запись значения номера для каждого пина.
int led_pin = 12;
int ldr_pin = A1; int pot_pin = A0;
void setup()
{
// Настройка пина светодиода на режим выхода
pinMode ( led_pin, OUTPUT );
}
void loop()
{
// Объявление местных переменных lightness (освещенность)
// и rotation (поворот)
int lightness, rotation;
// Считывание значения с потенциометра и запись в rotation
// Считывание значения яркости с фоторезистора в l
ightness rotation = analogRead ( pot_pin );
lightness = analogRead (ldr_pin );
// Использование ветвления «if, else», чтобы при значении
// яркости, меньше значения поворота рычага на потенциометре,
// светодиод горел, а при большем значении - нет
if ( lightness < rotation )
{
digitalWrite ( led_pin, HIGH );
}
else
{
digitalWrite ( led_pin, LOW );
}
}
Схема подключения:
К данной рабочей программе используется следующая схема подключения (Рисунок 5.4). Для реализации проекта потребуются следующие компоненты: ма- кетная плата, светодиод (1 шт), фоторезистор (1 шт), резистор на 220 Ом (1 шт), резистор на 10 кОм (1 шт) и провода.
Рисунок 5.4. Схема подключения
После сборки схема имеет следующий вид (Рисунок 5.5):
Рисунок 5.5. Внешний вид схемы после сборки
Рабочая программа:
// Объявление переменной led_pin, ldr_pin и pot_pin, пин светодиода,
// фоторезистора и потенциометра соответственно.
// Запись значения номера для каждого пина.
int led_pin = 12;
int ldr_pin = A1; int pot_pin = A10;
void setup()
{
// Настройка пин светодиода на режим выхода.
pinMode ( led_pin, OUTPUT );
}
void loop()
{
// Объявление местных переменных lightness (освещенность)
// и rotation (поворот).
int lightness, rotation;
// Считывание значения с потенциометра и запись в rotation
rotation = analogRead ( pot_pin );
// Использование ветвления «if, else», чтобы при значении
// яркости, меньше значения поворота рычага на потенциометре,
// светодиод горел, а при большем значении - нет
if ( lightness < rotation )
{
digitalWrite ( led_pin, HIGH );
}
else
{
digitalWrite ( led_pin, LOW );
}
}
Список контрольных вопросов:
- Что такое фоторезистор?
- Что влияет на показания датчика фоторезистора?
- Какие характеристики есть у фоторезистора? В чем они измеряются?
- Как фоторезистор обозначается на электрических схемах?
- Какие средние значения освещенности имеет учебная комната в днев- ное время суток?
- Как работает оператор ветвление if
- Как работает оператор ветвления if, else?
- Как и для чего используется конструкция else if?
Список дополнительных задач:
- Изменить программу так, чтобы она работала без потенциометра.
- Изменить программу так, чтобы яркость свечения светодиода в зависи- мости от света в комнате или поворота ручки потенциометра.
- Изменить программу и подключить вместо светодиода пьезодинамик с возможностью регулировки частоты звука от фоторезистора и потенциометра.
Center-nav