使用Photoresistor和analogRead()值

时间:2013-05-22 01:59:11

标签: arduino

我连接了光敏电阻,我正在读取0-1023之间的值。但是,什么是衡量标准的?它与电阻或电流或电压成正比吗?我用环境光(对我来说,暗黑色)阅读大约1020。当我用红色激光打它时它会下降到210左右。

硬件细节: 我没有关于光敏电阻的数据表 - 我把它拉出破碎的夜灯。 电路中的电阻为220欧姆。

示意图: R = 220欧姆,PR =光刻胶

5V--R--A0pin
       --PR--GND  

我正在使用SimPlot,这是我的代码:

int lightPin = 0;
int buffer[20];

void setup() {
 Serial.begin(19200);
}

void loop() {
 int data1;
 int light = analogRead(lightPin);
 data1 = light;
 plot(data1);
}

void plot(int data1)
{
  int pktSize;

  buffer[0] = 0xCDAB;             //SimPlot packet header. Indicates start of data packet
  buffer[1] = 1*sizeof(int);      //Size of data in bytes. Does not include the header and size fields
  buffer[2] = data1;

  pktSize = 2 + 2 + (1*sizeof(int)); //Header bytes + size field bytes + data

  //IMPORTANT: Change to serial port that is connected to PC
  Serial.write((uint8_t * )buffer, pktSize);
}

1 个答案:

答案 0 :(得分:1)

您正在读取电压(analogRead(lightPin))。您可以通过此过程将ADC读数转换为电压:

percent = (adcNumber / MaxADC)
voltage = percent * MaxVoltage

所以对你来说

 voltage = (data1/ 1023.0)* 5.0

您正在读取电压,但电压正在发生变化,因为光敏电阻的“电阻”正在发生变化。

如果您使用的是分压器,那么这个等式

vout = R1/(R1+R2) * vin

但如果没有关于电路的更多信息,我无法给你一个计算电阻或电流的公式。