找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机pwm呼吸灯 效果呢 呼吸的不均匀感觉有点抖 而且感觉好像只有从暗到亮 求解决

查看数: 6536 | 评论数: 10 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-7-15 16:50

正文摘要:

本帖最后由 ckeai 于 2018-7-17 17:47 编辑 单片机源程序如下: #include<reg52.h> #include<intrins.h> #define uintunsigned int #define ucharunsigned char sbit pwm =P2^1; uintcount=0,timer1=0,val ...

回复

ID:376769 发表于 2018-7-21 19:49
呼吸灯只有是线性变化才可以保证能够取到各个阶段有效电压值,亮度主要是由有效电压确定的,都的原因是有些有效电压之没有取到,可以减少占空比步幅实现
ID:370913 发表于 2018-7-17 18:17
JYLI 发表于 2018-7-15 22:30
感觉有点抖的原因是因为人眼对光的亮度的感觉和占空比的均匀增加不是同步的,就是人眼感觉pwm波控制的灯亮 ...

那如何在程序是线性的情况下,使它不抖
ID:370913 发表于 2018-7-17 17:47
imxuheng 发表于 2018-7-17 11:54
驱动电路是怎样的

已上传
ID:151348 发表于 2018-7-17 11:54
驱动电路是怎样的
ID:370913 发表于 2018-7-17 11:51
HC6800-ES-V2.0 发表于 2018-7-16 08:14
我的这个程序,可以从这到暗,再从暗到亮。
#include       

有平方根的倒数关系?能详细说一下吗?不太理解
ID:370913 发表于 2018-7-17 11:30
437374033 发表于 2018-7-15 17:10
你写一个从亮到暗的不就好了

我这个是有由暗到亮的程序的,但是不知道为什么没显示
ID:328714 发表于 2018-7-16 11:29
建议你拿示波器看一下波形,是不是正弦波或者三角波
ID:164602 发表于 2018-7-16 08:14
我的这个程序,可以从这到暗,再从暗到亮。
#include<reg51.h>       

#define LED P2

unsigned int T=0,Tt=500,i=0,Ii=100,j=0;

bit A=1;

void TimeConfig();

void main(void)
{
        TimeConfig();
        while(1)
        {
                if (T>=Tt)
                {
                        T=0;
                }
                if (i>=Ii)
                {
                        i=0;
                        if (A==1)
                        {
                                j++;
                        }
                        else
                        {
                                j--;
                        }
                }
                if (j==Tt)
                {
                        A=0;
                }
                if (j==0)
                {
                        A=1;
                }
                if (T<=j)
                {
                        LED=0x00;//LED灯亮               
                }
                else
                {
                        LED=0xff;
                }
        }
}

void TimeConfig()
{
    TMOD = 0x01;
    TH0 = 0xff;       
    TL0 = 0xff;
    EA = 1;               
    ET0 = 1;       
    TR0 = 1;       
}

void Time0() interrupt 1
{
        TH0 = 0xff;       
    TL0 = 0xff;
        T++;       
        i++;
}

/*
此占空比的变化,数据是线性关系,但显示出来的视觉不是线性关系。因为占空比是功率换算,
有平方根的倒数关系,所以这要进步算法才行。
*/

ID:372204 发表于 2018-7-15 22:30
感觉有点抖的原因是因为人眼对光的亮度的感觉和占空比的均匀增加不是同步的,就是人眼感觉pwm波控制的灯亮度不是线性的,比如占空比从20%增加到30%与从90%增加到100%人眼会感觉前者的亮度变化比较大。

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

ID:372056 发表于 2018-7-15 17:10
你写一个从亮到暗的不就好了

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表