发 帖  
[问答]

这个ADC控制流水灯的问题?

4022 ADC 单片机
2021-6-4 11:47:38   评论 分享淘帖 邀请回答 举报
1个回答
2021-6-4 15:14:18 1 评论

举报

1 条评论
  • 2021-6-4 16:00

    好的,谢谢提醒,用if else 或者switch case都有试试,因为找不到问题原因,这些都尝试了一遍。
    先说一下程序理想状态应该实现的功能:
    电位器未拨动时的状态是回中状态,ADC处于如下这个区间,此时默认亮前面3颗灯。
      if((ADC_DATA>350)&&(ADC_DATA<440)) {P10=1;P26=1;P27=1;P32=0;P34=0;P35=0;P36=0;P20=0;continue;}   
    电位器往上拨,随着ADC增大,顺序点亮后面的灯,往中位回归时再依次熄灭
    电位器往下拨,随着ADC减小,往P10方向顺序熄灭,往中位回归时再依次点亮。

    目前问题是摇杆电位器往上扳/回中,指示灯能正常跟随亮灭,往下扳时/回中,指示灯异常,异常现象是指示灯亮度将为一半的样子,不能完全熄灭,很是奇怪,灯断开测量IO口电压还有1.4V(正常我赋值0应该输出0V),不知道这个电压哪里来的,为什么软件不能操作其输出0V。实际验证测试让ADC_DATA从0开始++,8颗灯是可以正常亮灭的。
    至于你说的ADC是否检验过,实际测试ADC的值有些偏差但不大,应该不影响吧?如下是我测量的跟用PC串口工具读到的差异:

    拨动到最高位:电压2.722V,参考电压3.305V ===>计算出理论ADC为843  实际收到的为D3 + 03 ===>即847,偏差4个ADC

    拨动到最低位:电压0.001V,参考电压3.305V ===>计算理论ADC为0   实际收到的为0 ,无偏差

    回中位:电压1.376V,参考电压3.305V  ===>计算出理论ADC为426    实际收到的为6B + 03 ===>即431  偏差5个ADC

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

您需要登录后才可以回帖 登录/注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
快速回复 返回顶部 返回列表
关注微信公众号

电子发烧友网

电子发烧友论坛

社区合作
刘勇
联系电话:15994832713
邮箱地址:liuyong@huaqiu.com
社区管理
elecfans短短
微信:elecfans_666
邮箱:users@hauqiu.com
关闭

站长推荐 上一条 /6 下一条

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