Arduino 使用光刻胶和analogRead()值
我连接了一个光刻胶,读取的值在0-1023之间,很好。但是,这是一个什么标准呢?它与电阻、电流或电压成正比吗?我有它读大约1020与环境光(这是,对我来说,暗)。当我用红色激光击中它时,它下降到210左右 硬件详细信息: 我并没有关于光刻胶的数据表——我是从一盏坏了的夜灯里拔出来的。 电路中的电阻为220欧姆 示意图: R=220欧姆,PR=PhotositorArduino 使用光刻胶和analogRead()值,arduino,Arduino,我连接了一个光刻胶,读取的值在0-1023之间,很好。但是,这是一个什么标准呢?它与电阻、电流或电压成正比吗?我有它读大约1020与环境光(这是,对我来说,暗)。当我用红色激光击中它时,它下降到210左右 硬件详细信息: 我并没有关于光刻胶的数据表——我是从一盏坏了的夜灯里拔出来的。 电路中的电阻为220欧姆 示意图: R=220欧姆,PR=Photositor 5V--R--A0pin --PR--GND 我正在使用,这是我的代码: int lightPin = 0; in
5V--R--A0pin
--PR--GND
我正在使用,这是我的代码:
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);
}
您正在读取电压(模拟读取(lightPin))。您可以通过以下过程将读数转换为电压:
percent = (adcNumber / MaxADC)
voltage = percent * MaxVoltage
那你呢
voltage = (data1/ 1023.0)* 5.0
您正在读取电压,但电压在变化,因为光刻胶的“电阻”在变化
如果你使用的是分压器,那么这个方程
vout = R1/(R1+R2) * vin
但是如果没有关于电路的更多信息,我不能给你一个公式来计算电阻或电流。这完全取决于你的ADC。值0-1023表示10位ADC,范围是ADC转换的最小到最大数量。有了光电电阻器,你很可能会产生电流并读取电压。是的,基本上我们需要知道光电电阻器是R1(接地)还是R2(供电),另一个可能是固定电阻器。如果你想把它转换成光的形式,我们需要数据表中光电阻器的曲线(和公差)。好的,这是有意义的。当传感器完全被覆盖时,值以~4V的电压输入。当被激光击中时,电压降到1V。用硬件细节更新问题。请记住,光强度和电压可能不是线性关系,即使在相同的强度下,不同的波长也可能产生不同的电压。如果没有数据表,如果没有校准的光照水平,可能很难判断。