0

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

硬件细节:我没有关于光敏电阻的数据表——我把它从一个坏掉的夜灯中拉出来。电路中的电阻为 220 欧姆。

原理图:R = 220 ohm,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);
}
4

1 回答 1

1

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

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

所以对你来说

 voltage = (data1/ 1023.0)* 5.0

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

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

vout = R1/(R1+R2) * vin

但是如果没有关于电路的更多信息,我不能给你一个计算电阻或电流的方程。

于 2013-05-22T02:26:32.360 回答