2016-11-11 5 views
0

Я работаю над проектом с Arduino и сталкиваюсь с чем-то, что я считаю увлекательным/запутанным. Итак, я должен был что-то проверить перед конструированием этого проекта. Я построил простую схему, состоящую только из светодиода и фоторезистора. То, что я должен был проверить, был ли фоторезистор способен определять яркость светодиода, который затемнялся через PWM. Мое первоначальное ожидание состояло в том, что это не сработало (фоторезистор либо прочитал бы 1023, либо 0, потому что PWM достигнут в цифровом виде). К моему удивлению, фоторезистор смог точно считывать яркость светодиода (точно до степени - это просто основано на сравнении кажущейся яркости светодиода PWM со светодиодом, установленным последовательно с определенным резистором)! Это именно то, что я хотел, но мне просто интересно, почему это работает. Я не уверен, что мои первоначальные сомнения были вызваны неправильным пониманием фоторезисторов или PWM. Любая помощь приветствуется. Спасибо!Arduino: Использование analogRead() на фоторезисторе для чтения светодиодов с PWM

Вот код, я бегу (я не использую функцию analogWrite(), потому что проект я работаю над требует от меня, чтобы иметь определенный уровень контроля над PWM):

const int LED_PIN = 9; 
const int PHOTO_PIN = 0; 

//These values have been altered and tested 
const int HIGH_TIME = 250; 
const int LOW_TIME = 2750; 

void setup() 
{ 
    pinMode(LED_PIN, OUTPUT); 
    pinMode(PHOTO_PIN, INPUT); 

    Serial.begin(9600); 
} 

void loop() 
{ 
digitalWrite(LED_PIN, HIGH); 
delayMicroseconds(HIGH_TIME); 
digitalWrite(LED_PIN, LOW); 
delayMicroseconds(LOW_TIME); 

Serial.println(analogRead(PHOTO_PIN)); 
} 

ответ

0

«фоторезистор» представляет собой переменный резистор. Это самый простой способ сказать это.

Представьте себе свой потенциометр, вы можете контролировать его сопротивление, поворачивая маленькую ручку, а затем analogRead. Фоторезистор с другой стороны изменяет его сопротивление в зависимости от интенсивности света. Из-за этого сопротивление будет увеличиваться и уменьшаться в зависимости от вашего светодиода.

Для «КАК» это действительно работает, см. here.

Теперь, есть несколько факторов, чтобы рассмотреть следующие вопросы:

1 - Окружающий свет вашей комнаты.

2 - расстояние между вашей LED

Так надеются, что я помог вам узнать немного больше о фоторезисторах!

0

Время отклика фоторезистора намного медленнее, чем частоты PWM, которые вы используете. Таким образом, он усредняет время включения и выключения светодиода и дает сопротивление, пропорциональное среднему значению. Если вы используете фотодиод с быстрым временем отклика, он сможет «видеть» светодиод включен и выключен.

Я предлагаю вам не пытаться записывать в последовательный порт каждый раз через цикл, так как он быстро отстает на скорости 9600 бод. Возможно, пишите каждые 500 раз через цикл.