用发光二极管和光敏电阻怎样组成一组光电开关啊,能在

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-01
用发光二极管和光敏电阻怎样组成一组光电开关啊,能在什么环境下使用啊?急求使用avr电路与程序,谢谢

常用的是将光敏电阻放在三极管基极,和另一上拉电阻分压,根据光线的强弱不同可导通和接至。如果用AVR单片机的话感觉有点点浪费,不过还是给你设计下下,用的mega8:
#include
#include
#define uchar unsigned char
#define uint unsigned int
/*********定义AD转换通道*********/
#define ADC0 0x00 //ADC0通道
/*********定义档位指示灯及电源指示和新风指示********/
#define LED1_ON PORTC &=~BIT(1)
#define LED1_OF PORTC |= BIT(1)
/**********全局变量定义************/
uchar adc_time = 0 ; //定义累加时间
uchar adc_num = 0 ; //用于AD通道选择的计数
uchar vlo_eer = 0 ; //用于检测光敏电阻的电灯点
unsigned int voltage;
unsigned int voltage1;
//端口初始化
void port_init(void)
{
PORTB = 0x00;
DDRB = 0xFF;
PORTC = 0xFE;
DDRC = 0xFE;
PORTD = 0x00;
DDRD = 0xFF;
}
// 定时器0分频: 8
// 定时初值 : 100uSec
// 真实定时值 : 100.000uSec (0.0%)
void timer0_init(void)
{
TCCR0 = 0x00;//停止定时器
TCNT0 = 0x9C;//初始值
//OCR0 = 0x9B;//匹配值
TIMSK |= 0x01;//中断允许
TCCR0 = 0x02;//启动定时器
}
#pragma interrupt_handler timer0_ovf_isr:10
void timer0_ovf_isr(void)
{
TCNT0 = 0x9C; //重装100us定时初值
adc_time++;
if(adc_time==10) //控制AD转换的速度
{
adc_time=0; //清零AD计数时间
ADCSRA=0xEE; //打开AD使能
ADMUX = ADC0 ; //选择ADC0通道

else
{
ADCSRA= 0x00; //关闭AD转换,这样做的目的是防止
} //AD转换过频而导致系统堵塞
}
// ADC初始化
// 转换时间 : 52uS
void adc_init(void)
{
//adc转换初始化
ADCSRA= 0x00;//禁止AD转换
SFIOR |= 0x00;
ACSR= 0x80; //禁止模拟比较器
}
unsigned int adc_calc(void)
{
//计算实际电压
unsigned long value=0;
unsigned int voltage1=0; //电压单位为(mV)
value=ADCL; //首先读低位
value|=(int)ADCH << 8; //然后读高位
voltage1=(value*5000)/1023;
return voltage1;
}
#pragma interrupt_handler adc_isr:12
void adc_isr(void)
{
//转换完成后中断处理,对电压值进行区间划分
voltage=adc_calc();voltage=adc_calc();
if(voltage<XXX){vol_eer=0;} //欠压
if(vol_eer>XXX){vol_eer=1;} //过压
//其中XXX是你自己测试的电压值,什么时候亮LED就看他了。
if(vlo_eer==1) LED1_ON;
else LED1_OF;

}
//初始化服务函数
void init_devices(void)
{
CLI(); //禁止中断
port_init();
timer0_init();
adc_init();
MCUCR = 0x00;
MCUCSR = 0x80;//禁止JTAG
GICR = 0x00;
SEI(); //开中断
}
void main(void)
{
init_devices();
while(1)
{
;
}
}

你看看这个图 主要是根据光敏电阻受到光射后电阻变化 具体 我再看看 这个你先考虑下 追问 不是这个,这个没有整合电路和A/D转换。单片机接受光敏电阻过来的信号,控制的是另外两个发光二极管的发光和关闭

以下这个既简单有可靠地光控LED电路图,我已经根据它改装了100多个手机充电器称为小夜灯,无需调试:

三极管:9014

LED:一个或两个3V20mA的白色或七彩渐变灯珠。



  • 灰度传感器的主要组成部分包括发光二极管和
    答:灰度传感器的主要组成部分是发光二极管和光敏电阻。灰度传感器通俗的来说就是模拟传感器。灰度传感器利用不同颜色的检测面对光的反射程度不同,光敏电阻对不同检测面返回的光其阻值也不同的原理进行颜色深浅检测。在环境光干扰不是很严重的情况下,用于区别黑色与其他颜色。灰度模拟器还有比较宽的工作电压范围...
  • 这个电路可行么?三极管+光敏电阻+发光二极管
    答:变亮 变暗
  • 用光敏电阻调节发光二极管的亮度,白天很亮,逐渐到晚上变成微亮,电路...
    答:左图应该可以做到要求效果,右图效果相反,周边光度越暗,LED越亮。
  • 求一个关于光敏电阻,发光二极管和单片机的光控灯电路图
    答:你看看这个图 主要是根据光敏电阻受到光射后电阻变化 具体 我再看看 这个你先考虑下 追问 不是这个,这个没有整合电路和A/D转换。单片机接受光敏电阻过来的信号,控制的是另外两个发光二极管的发光和关闭
  • 光耦合器工作的原理是什么
    答:光耦合器工作原理光耦合器是一种用于在光通信系统中转换光信号为电信号或者将电信号转换为光信号的器件。它的工作原理是基于光学耦合的原理。光耦合器由两个光纤组成,通常是一根输入光纤和一根输出光纤。在光耦合器中,两根光纤之间会有光学耦合,导致一部分的光信号从输入光纤传输到输出光纤。在光耦合器...
  • 有一种光控LED小夜灯,光敏电阻和3个LED就直接安装在插头上。价格才3元...
    答:估计不会复杂,买一个拆开来一看就应该明白的。
  • ...发光二极管天黑自动亮白天自动关闭用光敏电阻怎么做呀,请指教,我QQ...
    答:一个滑动变阻器R2(约500K),一个光敏电阻R1,两个1K电阻,一个9012,一个9013;连接如图
  • 这个电路能否实现光敏电阻控制二极管发光?还有是否能控制延时,不能的话...
    答:因图片模糊,数据看不清楚,我给你说说原理性的分析,具体数据你自己计算。从电路来看,你可以这样分析:1、把光敏二极管在有光照的情况下,看作一个小阻值的电阻或者短路直通,那么你的电路就是一个反向放大器,输出就是与交流信号源反向的波形。由于负载是发光二极管,所以输出的正半周,会通过发光...
  • 光耦合器原理及作用
    答:(2) 作为固体开关应用 在开关电路中,往往要求控制电路和开关之间要有很好的电隔离,对于一般的电子开关来说是很难做到的,但用光电耦合器却很容易实现。(3) 在触发电路上的应用将光电耦合器用于双稳态输出电路,由于可以把发光二极管分别串入两管发射极回路,可有效地解决输出与负载隔离地问题。(4) ...
  • 发光二极管,纽扣电池和光敏电阻的问题
    答:不行,光敏电阻的阻值很高,允许通过的电流很小,不能点燃LED,所以必须加放大电路。