编号:LDR
[code]
const int ldrPin = A0; //定义与光敏电阻相连的管脚为A0管脚
unsigned int algData; //读入A0管脚的原始数据
float vltg; //A0管脚的电压值
float ldrRstr; //光敏电阻的电阻值,单位为千欧
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
algData = analogRead(ldrPin); //读取管脚的电压转换值
vltg = algData*5.0/1023; //计算出实际的电压值
ldrRstr = 10*(5-vltg)/vltg; //计算出光敏电阻的电阻值
Serial.print("读取电压转换值:");
Serial.println(algData);
Serial.print("计算出的电压值");
Serial.println(vltg);
Serial.print("光敏电阻阻值:");
Serial.println(ldrRstr);
Serial.println("======================");//加入一行分隔符
delay(1000);
}
[/code]
=========================================================================
编号:LDR_a1
[code]
const int ldrPin = A0; //定义与光敏电阻相连的管脚为A0管脚
const int lmtLvl = 550; //设定的光强过弱告警阈值
const int warnLed = 13; //告警指示灯
unsigned int algData; //读入A0管脚的原始数据
float vltg; //A0管脚的电压值
float ldrRstr; //光敏电阻的电阻值,单位为千欧
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(warnLed, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
algData = analogRead(ldrPin); //读取管脚的电压转换值
vltg = algData*5.0/1023; //计算出实际的电压值
ldrRstr = 10*(5-vltg)/vltg; //计算出光敏电阻的电阻值
Serial.print("读取电压转换值:");
Serial.println(algData);
Serial.print("计算出的电压值");
Serial.println(vltg);
Serial.print("光敏电阻阻值:");
Serial.println(ldrRstr);
Serial.println("======================");//加入一行分隔符
if(algData < lmtLvl){ //光线强度弱于设定的阈值
digitalWrite(warnLed, !digitalRead(warnLed)); //警示灯闪烁
}else
{
digitalWrite(warnLed, HIGH); //警示灯长亮
}
delay(500);
}
[/code]