这次需要用到光敏电阻~
光敏电阻
光敏电阻(又称光导管)是一种通过光照强度变化来调节自身电阻值的电子元件,它的核心特性是“遇光阻值下降”。由半导体材料制成,与人眼的感光范围接近。无光照时电阻极高(可达1.5MΩ),几乎不导电。强光下电阻可降至1KΩ以下。
需要元件:
连接步骤:
将光敏电阻与20K欧姆电阻串联
光敏电阻另一端接控制板GND端口
电阻另一端接控制板5V端口
在光敏电阻与普通电阻连接处引出跳线接A0端口
LED阴极接地,阳极接1k欧姆电阻接数字端口8
加入代码运行:
原理:
光照充足时(不遮光):
光敏电阻阻值低,此时电路中大部分电压被光敏电阻“分压”,导致后续控制电路(如三极管、继电器或可控硅)无法导通,小灯保持熄灭。
光照不足时(遮光):
光敏电阻阻值升高,电路分压比例改变,控制电路被触发导通,小灯点亮。
简单理解,电阻顾名思义就是阻止电流通过,所以有光时有力量阻止更多电流通过,没光时就没用,所以能正常亮。
const byte LED=8;
void setup(){
//put your setup code here,to run once:
Serial.begin(9600);
pinMode(LED,OUTPUT);
}
void loop(){
// put your main code here,to run repeatedly:
int val=analogRead(A0);
Serial.println(val);
delay(500);
if(val>=600){
digitalWrite(LED,HIGH);
}else{
digitalWrite(LED,LOW);
}
}
代码解读:
const byte LED=8; //设置端口8为LED输出引脚
void setup(){
//put your setup code here,to run once:
Serial.begin(9600); //初始化端口
pinMode(LED,OUTPUT); //设置输出模式
}
void loop(){
// put your main code here,to run repeatedly:
int val=analogRead(A0); //A0端口接收变量val
Serial.println(val); //输出val值
delay(500); //延时500ms
if(val>=600){ //选600作为LED临界值(可调)
digitalWrite(LED,HIGH); //if判断是否点亮,>600,高电平,点亮
}else{
digitalWrite(LED,LOW);
}
}
补充:Fritzing和Proteus
补充:学习过程中遇到了两个平台Fritzing、Proteus,在此做一个简单记录:
通过两个表格快速了解其差别
结论就是现阶段初学,用Tinkercad就够了!一些教程会涉及其他软件,是因为老师厉害!
Fritzing主要画原理图,复杂的比Tinkercad画的好看。Proteus主要是模拟测试。
本次就到这啦~一起试试吧~