Перейти к содержанию

Лабораторная работа 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 );

}

}
Также микроконтроллер позволяет воспользоваться уже встроенным в пла- ту потенциометром. Всего на плате имеется шесть потенциометров. В коде про- граммы идёт обращение к первому встроенному потенциометру, он подключен к А10 пину.

Схема подключения:

К данной рабочей программе используется следующая схема подключения (Рисунок 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 );

}

}

Список контрольных вопросов:

  1. Что такое фоторезистор?
  2. Что влияет на показания датчика фоторезистора?
  3. Какие характеристики есть у фоторезистора? В чем они измеряются?
  4. Как фоторезистор обозначается на электрических схемах?
  5. Какие средние значения освещенности имеет учебная комната в днев- ное время суток?
  6. Как работает оператор ветвление if
  7. Как работает оператор ветвления if, else?
  8. Как и для чего используется конструкция else if?

Список дополнительных задач:

  1. Изменить программу так, чтобы она работала без потенциометра.
  2. Изменить программу так, чтобы яркость свечения светодиода в зависи- мости от света в комнате или поворота ручки потенциометра.
  3. Изменить программу и подключить вместо светодиода пьезодинамик с возможностью регулировки частоты звука от фоторезистора и потенциометра.

Center-nav

← Назад | Оглавление | Вперёд →