我连接了光敏电阻,我正在读取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);
}
答案 0 :(得分:1)
您正在读取电压(analogRead(lightPin))。您可以通过此过程将ADC读数转换为电压:
percent = (adcNumber / MaxADC)
voltage = percent * MaxVoltage
所以对你来说
voltage = (data1/ 1023.0)* 5.0
您正在读取电压,但电压正在发生变化,因为光敏电阻的“电阻”正在发生变化。
如果您使用的是分压器,那么这个等式
vout = R1/(R1+R2) * vin
但如果没有关于电路的更多信息,我无法给你一个计算电阻或电流的公式。