Эксперимент Маячок


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



бет10/45
Дата13.02.2023
өлшемі1,82 Mb.
#67503
түріЗакон
1   ...   6   7   8   9   10   11   12   13   ...   45
Задания для самостоятельного решения

  1. Уберите из программы чтение датчика освещенности и пропищите азбукой Морзе позывной SOS: три точки, три тире, три точки

  2. Измените код программы так, чтобы с падением освещенности звук становился ниже (например, падал от 5 кГц до 2,5 кГц)

  3. Измените код программы так, чтобы звук терменвокса раздавался не непрерывно, а 10 раз в секунду с различимыми паузами


Эксперимент 5. Ночной светильник


← Терменвокс | Оглавление | Пульсар →

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


Список деталей для эксперимента


  • 1 плата Arduino Uno

  • 1 беспаечная макетная плата

  • 1 светодиод

  • 1 фоторезистор

  • 1 резистор номиналом 220 Ом

  • 1 резистор номиналом 10 кОм

  • 1 переменный резистор (потенциометр)

  • 10 проводов «папа-папа»

Для дополнительного задания


  • еще 1 светодиод

  • еще 1 резистор номиналом 220 Ом

  • еще 2 провода

Принципиальная схема



Схема на макетке



Обратите внимание


  • В этом эксперименте мы устанавливаем фоторезистор между питанием и аналоговым входом, т.е. в позицию R1 в схеме делителя напряжения. Это нам нужно для того, чтобы при уменьшении освещенности мы получали меньшее напряжение на аналоговом входе.

  • Постарайтесь разместить компоненты так, чтобы светодиод не засвечивал фоторезистор.

Скетч


p050_night_light.ino
#define LED_PIN 13
#define LDR_PIN A0
#define POT_PIN A1
void setup()
{
pinMode(LED_PIN, OUTPUT);
}
void loop()
{
// считываем уровень освещённости. Кстати, объявлять
// переменную и присваивать ей значение можно разом
int lightness = analogRead(LDR_PIN);
// считываем значение с потенциометра, которым мы регулируем
// пороговое значение между условными темнотой и светом
int threshold = analogRead(POT_PIN);
// объявляем логическую переменную и назначаем ей значение
// «темно ли сейчас». Логические переменные, в отличие от
// целочисленных, могут содержать лишь одно из двух значений:
// истину (англ. true) или ложь (англ. false). Такие значения
// ещё называют булевыми (англ. boolean).
boolean tooDark = (lightness < threshold);
// используем ветвление программы: процессор исполнит один из
// двух блоков кода в зависимости от исполнения условия.
// Если (англ. «if») слишком темно...
if (tooDark) {
// ...включаем освещение
digitalWrite(LED_PIN, HIGH);
} else {
// ...иначе свет не нужен — выключаем его
digitalWrite(LED_PIN, LOW);
}
}


Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   ...   45




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет