WordPress database error: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC

0

Arduino UNO — Ночник. Урок 8

Для нашего следующего проекта мы будем использовать фоторезистор. А рассмотрим мы реализацию ночника в спальню, который будет автоматически включаться когда темно и выключаться когда становится светло.

Сопротивление фоторезистора зависит от света, попадающего на него. Используя фоторезистор в связке с обычным резистором 4.7 кОм, мы получаем делитель напряжения, в котором напряжение проходящее через фоторезистор, изменяется, в зависимости от уровня освещенности.

Напряжение с делителя, мы подаем на вход АЦП Arduino. Там мы сравниваем полученное значение с определенным порогом и включаем или выключаем светильник.

1

Принципиальная схема делителя показана ниже. Когда освещенность увеличивается, сопротивление фоторезистора падает и соответственно на выходе делителя (и входе АЦП) напряжение увеличивается. Когда освещенность падает все наоборот.

2

На фото ниже, показана собранная схема на макетной плате. Напряжения 0В и 5В берутся с Arduino. Ножка А0 используется как вход АЦП.

3

Ниже показан скетч Arduino. В данном уроке мы просто включаем и выключаем LED, который встроен в плату Arduino. Более яркий LED-светодиод, вы можете подключить к ноге 13 (через резистор ~220 Ом). Если будете подключать более мощную нагрузку, такую как лампу накаливания, то ее следует подключать через реле или тиристор.

В коде программы есть закомментированные участки, они служат для отладки. Можно будет контролировать значение АЦП (от 0 до 1024). Также, необходимо в коде изменить значение 500 (порог включения и выключения) на то, которое вы подберете опытным путем, изменяя освещенность.

1
2
3
4
5
6
Siete
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/*
** Ночник
**
** www.hobbytronics.co.uk
*/
int sensorPin = A0; // устанавливаем входную ногу для АЦП
unsigned int sensorValue = 0; // цифровое значение фоторезистора
void setup()
{
pinMode(13, OUTPUT);
Serial.begin(9600); // старт последовательного вывода данных (для тестирования)
}
void loop()
{
sensorValue = analogRead(sensorPin); // считываем значение с фоторезистора
if(sensorValue<500) digitalWrite(13, HIGH); // включаем
else digitalWrite(13, LOW); // выключаем
// Для отладки раскомментируйте нижеследующие строки
//Serial.print(sensorValue, DEC); // вывод данных с фоторезистора (0-1024)
//Serial.println(""); // возврат каретки
//delay(500);
}

Оригинал здесь

Перевод от cxem.net

administración

Deja una Respuesta

Your email address will not be published. Required fields are marked *