Эксперимент 3. Светильник с управляемой яркостью

В этом эксперименте мы меняем яркость светодиода, вращая ручку переменного резистора.

Схема

Код

#define LED_PIN 9

#define POT_PIN A0

void setup()

{

pinMode(13, OUTPUT);

pinMode(LED_PIN, OUTPUT);

pinMode(POT_PIN, INPUT);

}

void loop()

{

digitalWrite(13, HIGH);

int rotation, brightness;

rotation=analogRead(POT_PIN);

brightness=rotation/4;

analogWrite(LED_PIN, brightness);

}

Вопросы для проверки себя

Можем ли мы при сборке схемы подключить светодиод и потенциометр напрямую к разным входам GND микроконтроллера?

Не имеет значения к одному или к разным входам GND подключены элементы.

В какую сторону нужно крутить переменный резистор для увеличения яркости светодиода?

В зависимости к какой ножке подключены +5В, меняется направление вращения.

3.Что будет, если стереть из программы строчку pinMode(LED_PIN, OUTPUT)? строчку pinMode(POT_PIN, INPUT)?

Ничего не произойдет, схема будет работать как обычно.

Зачем мы делим значение, полученное с аналогового входа перед тем, как задать яркость светодиода? что будет, если этого не сделать?

Микроконтроллер с потенциометра считывает напряжение, и выдает его в виде числа от 0 до 1023, поскольку pin 9 на выходе может принимать только целочисленные значения от 0 до 255, то число полученное с потенциометра нужно разделить на 4.

Задания для самостоятельного решения

Отключите питание платы, подключите к порту 5 еще один светодиод. Измените код таким образом, чтобы второй светодиод светился на 1/8 от яркости первого

#define LED_PIN 9

#define LED_PIN2 5

#define POT_PIN A0

void setup()

{

pinMode(13, OUTPUT);

pinMode(LED_PIN, OUTPUT);

pinMode(LED_PIN2, OUTPUT);

pinMode(POT_PIN, INPUT);

}

void loop()

{

digitalWrite(13, HIGH);

int rotation, brightness;

rotation=analogRead(POT_PIN);

brightness=rotation/4;

analogWrite(LED_PIN, brightness);

analogWrite(LED_PIN2, brightness/8);

}

Эксперимент 4. Терменвокс

В этом эксперименте мы имитируем действие музыкального инструмента терменвокс: изменяем высоту звучания бесконтактным путем, больше или меньше закрывая от света фоторезистор.

Схема

Код

#define BUZZER_PIN 3

#define LDR_PIN A0

void setup()

{

pinMode(13, OUTPUT);

pinMode(BUZZER_PIN, OUTPUT);

}

void loop()

{

digitalWrite(13, HIGH);

int val, frequency;

val=analogRead(LDR_PIN);

frequency=map(val, 0, 1023, 3500, 4500);

tone(BUZZER_PIN, frequency, 20);

}

Вопросы для проверки себя

Каким сопротивлением должен обладать фоторезистор, чтобы на аналоговый вход было подано напряжение 1 В?

Сопротивление фоторезистора должно быть 2,5 КОм.

Можем ли мы регулировать яркость светодиода, подключенного к 11-му порту, во время звучания пьезопищалки?

Можем, нельзя давать команду другой пищалке.

Что изменится в работе терменвокса, если заменить резистор на 10 кОм резистором на 100 кОм? Попробуйте ответить без эксперимента. Затем отключите питание, замените резистор и проверьте.

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

Наши рекомендации