给激光加了简单调制,准备做无级调光
我的激光买了快一年了,今天才想起用上面的调制,由于时间仓促就草草做了个89c2051最小系统板加在了激光的调制端,随便写了几句程序进去就成了,发现虽然平均亮度降低了,但单个脉冲的功率不降低的,下面发几张图片看一下效果: 改变以下脉冲的占空比就可以调整平均输出功率,所以程序稍微改一下就可以做成无级调光了 好想法,顶 激光照片,钠灯亮如黄昏 :lol :lol回复 #4 LEDLASER 的帖子
好眼力,竟然看出是钠灯,天刚擦黑拍的 我试过了呵,调光#include <reg51.h>
#include <intrins.h>
#define HIGH 0xFE
#define LOW 0x0C
unsigned char TickCount = 0;
unsigned char Round = 0;
unsigned char TickCount_Update = 0;
sbit CTL_1ms = P1^0;
sbit CTL_2ms = P1^1;
sbit CTL_10ms = P1^2;
sbit CTL_100ms = P1^3;
sbit CTL_Effect = P1^4;
void Timer0() interrupt 1
{
TH0 = HIGH;
TL0 = LOW;
if (++TickCount == 100)
{
TickCount = 0;
Round++;
if (Round == 200) Round = 0;
if (Round < 100)
{
TickCount_Update = 2+(Round/5) * 4;
}else
{
TickCount_Update = 2+80 - ((Round-100)/5) * 4;
}
}
CTL_1ms = !CTL_1ms;
if (TickCount % 2 == 0)
{
CTL_2ms = 0;
}else
{
CTL_2ms = 1;
}
if (TickCount % TickCount_Update == 0)
{
CTL_Effect = 0;
}else
{
CTL_Effect = 1;
}
if (TickCount % 10 == 0)
{
CTL_10ms = 0;
}else
{
CTL_10ms = 1;
}
if (TickCount == 0 || TickCount == 50)
{
CTL_100ms = 0;
}else
{
CTL_100ms = 1;
}
}
void main()
{
EA = 1;
ET0 = 1;
TH0 = HIGH;
TL0 = LOW;
TR0 = 1;
for (;;);
}
P1.4不断变亮变暗
回复 #7 magicbear 的帖子
好东西!还是用在中断写的,什么时候弄个振镜扫描的看看效果,我一直想弄,但一直在计划中,从来没实施过 :funk: 吊车 13782558769 在振镜的作用下先得到一幅完整的光幕,如果能精确的控制点在光幕任一位置的亮暗就能当单色投影机用了。lz计算过没,你的激光调制电路能达到这种速度吗? 这个大概最高可以到100k-500kHz :)振镜要弄很高难度呢
回复 #10 wys111 的帖子
你说的那种扫描方式控制简单,能够做出任何图形,但是对激光器的调制速度要求很高,并且整幅图的亮度很低.如果用画图的方式进行扫描,对调治速度要求就低多了,亮度也高就是只能画简单图形并且控制复杂一些 看来想实现单束激光扫描成图像还真麻烦,画图的方式可以试试看看.
页:
[1]