Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 使用光刻胶和analogRead()值_Arduino - Fatal编程技术网

Arduino 使用光刻胶和analogRead()值

Arduino 使用光刻胶和analogRead()值,arduino,Arduino,我连接了一个光刻胶,读取的值在0-1023之间,很好。但是,这是一个什么标准呢?它与电阻、电流或电压成正比吗?我有它读大约1020与环境光(这是,对我来说,暗)。当我用红色激光击中它时,它下降到210左右 硬件详细信息: 我并没有关于光刻胶的数据表——我是从一盏坏了的夜灯里拔出来的。 电路中的电阻为220欧姆 示意图: R=220欧姆,PR=Photositor 5V--R--A0pin --PR--GND 我正在使用,这是我的代码: int lightPin = 0; in

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

硬件详细信息: 我并没有关于光刻胶的数据表——我是从一盏坏了的夜灯里拔出来的。 电路中的电阻为220欧姆

示意图: R=220欧姆,PR=Photositor

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。用硬件细节更新问题。请记住,光强度和电压可能不是线性关系,即使在相同的强度下,不同的波长也可能产生不同的电压。如果没有数据表,如果没有校准的光照水平,可能很难判断。