找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3232|回复: 20
收起左侧

单片机该用什么函数或方法将超声波和PWM结合?

[复制链接]
ID:407566 发表于 2018-11-14 22:18 | 显示全部楼层 |阅读模式
各位大神,关于pwm和超声波
请问该用什么函数或方法将超声波和PWM结合,实现,比如小于30cm灯灭这种效果呀
回复

使用道具 举报

ID:164602 发表于 2018-11-15 08:57 | 显示全部楼层
最直接的办法是:
用超声波测出的距离,改变PWM的占空比。
比如:小30cm时,占空比为零,则灯灭;大于30cm时,占空比变化,灯的亮度随之变化。这要看你的PWM占空比是怎么设置的。
我做的设置比较简单,就是改变定时器中断的次数,次数多,占空比大。
回复

使用道具 举报

ID:326783 发表于 2018-11-15 11:43 | 显示全部楼层
这种开关量和PWM有关系么?
回复

使用道具 举报

ID:164602 发表于 2018-11-16 12:28 | 显示全部楼层
LanSeXinQing 发表于 2018-11-15 11:43
这种开关量和PWM有关系么?

超声波传感器不是开关量
回复

使用道具 举报

ID:427656 发表于 2018-11-16 12:52 | 显示全部楼层
如果只是要灯灭,可以用运放电路,不用用到软件。如果要渐变式的灯灭,无非是做软件轮训渐变。
回复

使用道具 举报

ID:407566 发表于 2018-11-26 17:05 | 显示全部楼层
那具体代码该怎么入手,一脸迷茫,求教授
回复

使用道具 举报

ID:407566 发表于 2018-11-26 17:06 | 显示全部楼层
HC6800-ES-V2.0 发表于 2018-11-15 08:57
最直接的办法是:
用超声波测出的距离,改变PWM的占空比。
比如:小30cm时,占空比为零,则灯灭;大于30c ...

那具体代码应该怎么实现呢?求赐教
回复

使用道具 举报

ID:407566 发表于 2018-11-26 19:36 | 显示全部楼层
HC6800-ES-V2.0 发表于 2018-11-15 08:57
最直接的办法是:
用超声波测出的距离,改变PWM的占空比。
比如:小30cm时,占空比为零,则灯灭;大于30c ...

emmm,具体代码该怎么实施呢
回复

使用道具 举报

ID:433764 发表于 2018-11-26 21:45 | 显示全部楼层
#define LED_ON() ...
#define LED_OFF() ...
#define D_LENGTH 30
void mian(void)
{
    init();
    while(1){
        (get_length() > D_LENGTH)?(LED_ON()):(LED_OFF());
    }
}
回复

使用道具 举报

ID:358930 发表于 2018-11-26 22:03 来自手机 | 显示全部楼层
过过过儿 发表于 2018-11-26 19:36
emmm,具体代码该怎么实施呢

先写好PWM调光的按键加减程序,可找到例程,最好是有液晶显示,能看占空比和频率,没有问我。再主程序中添加超声波测量程序,用测量得到的数据量,强制转换成一个Char变量(可百度强制转换命令),用这个变量去=等于按键值的变量,能达到按键改变PWM信号的目的。如要变占空比(指速度或亮度)就去等于占空比的变量值,如要变小灯闪烁频率(指像汽车倒车雷达一样,物体近小灯闪烁的快,音乐急)就去等于频率的变量值。关键是要找到一个有液晶显示器的用按键加减占空比和频率的例程来改,不行再问,会有人给你写的。
回复

使用道具 举报

ID:407566 发表于 2018-11-27 15:29 | 显示全部楼层
冰冰洁洁 发表于 2018-11-26 22:03
先写好PWM调光的按键加减程序,可找到例程,最好是有液晶显示,能看占空比和频率,没有问我。再主程序中 ...

是需要找到摁键调光代码是吗?但我好像没有找到LCD显示的,请问你有吗
回复

使用道具 举报

ID:358930 发表于 2018-11-27 20:47 | 显示全部楼层
试试这个,不行传过会有空传附件。
15433226907860.8373147776134509.jpg
15433226907860.8373147776134509.jpg
回复

使用道具 举报

ID:358930 发表于 2018-11-27 21:32 来自手机 | 显示全部楼层
15433226907860.8373147776134509.jpg
15433226907860.8373147776134509.jpg
15433226907860.8373147776134509.jpg
15433226907860.8373147776134509.jpg

1602显并PWM按键调节输出OK.zip

268.05 KB, 下载次数: 11

评分

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

查看全部评分

回复

使用道具 举报

ID:407566 发表于 2018-11-29 19:28 | 显示全部楼层
万物互联 发表于 2018-11-26 21:45
#define LED_ON() ...
#define LED_OFF() ...
#define D_LENGTH 30

?这是具体的吗
回复

使用道具 举报

ID:407566 发表于 2018-11-29 19:38 | 显示全部楼层

暴风哭泣谢谢你!!!!但是那个接线怎么接呀
sbit RS = P2^6 ;
sbit RW = P2^5 ;
sbit EN = P2^7 ;

sbit STA7 = P0^7;
sbit PWM=P1^7;        //输出PWM
回复

使用道具 举报

ID:407566 发表于 2018-11-29 20:35 | 显示全部楼层
过过过儿 发表于 2018-11-27 15:29
是需要找到摁键调光代码是吗?但我好像没有找到LCD显示的,请问你有吗

1602显并PWM按键调节输出OK     这个文件夹里的程序,好像只是LLCD显示的,没有接LED,没办法调光不是
回复

使用道具 举报

ID:407566 发表于 2018-11-29 20:39 | 显示全部楼层
hzai736 发表于 2018-11-16 12:52
如果只是要灯灭,可以用运放电路,不用用到软件。如果要渐变式的灯灭,无非是做软件轮训渐变。

我是需要用超声波模块测距,然后像小于30cm的时候,灯灭,大于30cm灯亮这样
回复

使用道具 举报

ID:407566 发表于 2018-12-1 10:21 | 显示全部楼层
冰冰洁洁 发表于 2018-11-26 22:03
先写好PWM调光的按键加减程序,可找到例程,最好是有液晶显示,能看占空比和频率,没有问我。再主程序中 ...

em,请问怎么把超声波程序放进去
回复

使用道具 举报

ID:358930 发表于 2018-12-3 00:57 | 显示全部楼层
pwm1.7就是接个小灯LED.加入超声波程序就复制超声波相关定意脚和初始化程序,
回复

使用道具 举报

ID:407566 发表于 2018-12-3 10:34 | 显示全部楼层
冰冰洁洁 发表于 2018-12-3 00:57
pwm1.7就是接个小灯LED.加入超声波程序就复制超声波相关定意脚和初始化程序,

问:就是在超声波代码的基础上改,但是关了之后,下次再打开修改过的超声波文件,连接开发板他就没有反应了,为什么
回复

使用道具 举报

ID:407566 发表于 2018-12-4 00:06 来自手机 | 显示全部楼层
冰冰洁洁 发表于 2018-12-3 00:57
pwm1.7就是接个小灯LED.加入超声波程序就复制超声波相关定意脚和初始化程序,

那sbit   STA7=P0.7呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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