单片机来控制LED实现呼吸灯的效果
个人感觉应该是控制电压的不同,在一个范围内电压线性变化应该可以实现
PSW技术啦
通过改变占空比来实现的
我用单片机做过,很简单,就是改变延时。要程序我也有。
核心技术PWM脉冲调制
用PWM技术,实现DA转换,呼吸灯并不是采用线性处理,而是指数处理
1、PWM技术
2、把最小亮度电压前面那部分除掉
3、后面的做成非线性表格
挺有创意啊 哥们
/**************************************************************
呼吸灯:
模拟呼吸 控制等的亮暗速率
循环 类似人体呼吸
控制一个LED 仅供参考 QQ:864274470?
*****************************************************************/
#include <reg52.h>
#define N 2 //控制速率
#define T 700 //设定T的值,
sbit LED=P1^0;
int t=0;
char sign=0; //亮暗标志
void delay(int time) //延时
{
while(time>0)
time--;
}
void designed() //控制函数
{
if(sign==0)
t+=(N+1); //灯亮的时间较快
else
t-=N; //灯灭的时间 较慢
}
void wake() //判断函数
{
if(t>T)//如果t超过了做大值T
{
t=T;
sign = 1;//控制变量
}else if(t<0)
{
t=0;
sign = 0;
}
}
void main ()//主函数
{
for(;;)
{
designed();
wake();
LED = 0; //灯亮
delay(t);
LED = 1;//灯灭
delay(T-t);
}
}
这是利用占空比来控制LED两端的电压大小,从而实现呼吸效果。
大神,求赐教。能不能发给我程序和电路图及其它相关的学习资料(到2946018691@qq.com),只有程序也行,我想学学,求赐教,谢谢啦
学习学习学习谢谢