找回密码
 立即注册
搜索
0赞
赞赏
手机版
扫码打开手机版
把文字装进口袋

如何使用工业树莓派做ython的PWM控制

在涅诒 2022-8-26 14:40:16
虹科工业树莓派
        准备工作
        硬件
        虹科工业树莓派1台
        DIO模块1个
        Windows系统电脑1台
        LED电路
        软件(PC上):
        Chrome内核浏览器、SSH连接软件(如putty)
        操作步骤
        1.工业树莓派(RevPi)连好DIO模块,连网线、电源线上电。
        2.电脑的浏览器打开树莓派所在IP地址,登录其管理后台,账号为[url=http://dz.gmatg.com/' target=]ad[/url]min,默认密码见机身贴纸。
        3.打开PiCtory管理界面。
        4.按物理设备的左右顺序添加摆放主模块和DIO模块(从左边找到相应的模块,然后拖到右边区域进行摆放)。
        5.单击选定摆放好的DIO模块,在网页界面右下角的变量设置区,最下面的位置找到OutputPWMActive和OutputPWMFrequency两个变量。
        OutputPWMActive变量长度为16bit,以掩码形式表示DIO模块各DO通道PWM使能情况,某位为1表示该位对应的通道PWM使能,某位为0表示该位只用作普通DO输出,填入框中的数应为十进制数。比方说,如果我只需要第三、第五通道设为PWM,其它仍是直接DO的话,那该变量应设为 00000000 00010100 = 20。此处,我们将该变量设为65535,也就是16bit全为1,表示所有通道PWM功能开启。
        而OutputPWMFrequency变量则是选择形式设定的,选项有“40Hz 1%”、“80Hz 2%”等。我们这里所选的是“200Hz 5%”,其意义为PWM频率为200Hz,占空比最小单位是5%。
        6.配置完成后点上方菜单的File -》 Save as Start-Config. 保存到启动方案,然后点Tools -》 Reset Driver立即使配置生效。我们这里做的事情,其实是把这两个变量的复位默认值,改为了我们刚刚设置的参数,而开机复位时会自动读取改默认值。
        应当注意:OutputPWMActive变量复位之后通过任何途径修改其当前值是不会生效的,必须要设为复位默认值才能生效!
        7.接下来,我们准备使用Python编程来尝试控制DO1通道的PWM。
        首先,我们要知道,DO1通道的PWM占空比当前值,是由PWM_1变量决定的,该变量名在同时使用多个DIO模块时会有变化(会自动改名,避免重名),需以PiCtory右下角变量列表中显示的名称为准。
        该变量的取值范围是0-100的整数,表示占空比百分比数,复位默认值不修改时各通道均为0。
        前面我们提到,当设置PWM频率时,占空比最小单位也会变化,且频率越高时,占空比最小单位越大,但不用担心,即使我们的最小单位是5%,我们在程序中把该变量值设为5倍数以外的数也是不会报错的,系统会自动取最近可用的数进行输出设置。
        8.在DO1通道上接上LED电路,限流电阻阻值请按照LED实际规格选取合适的值。
        整个LED回路结构为:
        DO1 — 限流电阻 — LED — 地
        9.现在,我们获取该变量在过程映像中对应的地址(编程时需要通过过程映像中对应的地址来访问读写变量)。先用SSH软件连上RevPi,登录名是pi,默认密码和本文第2步中的密码相同(见机身贴纸)。
        10.SSH登录成功后,执行如下指令:
        piTest -v PWM_1
       

        返回结果中第二行的offset,即为我们所需要的地址值(十进制83)。
        11.有了地址变量之后开始正式编程,我们在SSH中执行命令python3,以进入python环境。命令行开头的前缀变成“》》》 ”即表明已进入python环境,按Ctrl+D可退出。
       

        12.测试执行如下代码:
       

        此时,LED应该会以45%亮度亮起,此时再执行:
       
        则LED应以最高亮度亮起。writeByteToOffset函数的第一个参数是写入的地址,第二个参数是写入的值。
        13.先退出python环境,然后执行如下命令创建名为的python脚本到默认的主目录:
        nano PWMtest.py
        然后在nano编辑器中填入如下代码:
       

       

        然后Ctrl+X退出,按Y确认保存,再回车确认名字即可完成脚本创建。这就是一个简单的呼吸灯例程。
        14.执行如下指令给刚才创建的脚本添加执行权限:
        chmod +x PWMtest.py
        然后,即可通过如下指令启动脚本:
        。/PWMtest.py
        由于脚本中设置了死循环,退出需要按Ctrl+C。
        需要了解更多详情,请联系虹科工业物联网团队:
        注意事项
        1.当DIO模块3组电源都用24V供电时,PWM输出的高电平约为24V。
        2.由于OutputPWMActive直接改值不会生效,若某一通道设置了PWM模式,又临时需要作为普通DO使用,可通过编程设置其占空比为100和0来实现高低逻辑电平输出。
        3.DIO模块的每通道最大输出电流为500mA(默认的高边输出模式状态下),使用需要较大电流PWM驱动的设备(如直流电机、电磁阀)时需注意是否超限。
        责任编辑:haq

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

使用道具 举报

您需要登录后才可以回帖 立即登录
◥█▄▃▁
.......◥█☆█▅▄▃▁▁▁▁▁▃▄▅▅ 贵州代表队 ▅▅▅▄▁
〓▇█████ 雷雷雷雷雷雷██████████████████▅▄▃▁▁
〓〓〓█████████████◤
....................轰炸过
..................轰炸过
...............轰炸过
............轰炸过
..........轰炸过
........轰炸过
......轰炸过
.....轰炸过
....轰炸过
...轰炸过
..轰炸过
.轰炸过 .轰炸过 楼上l楼下保持队行 !!!!!
2022-8-26 15:21:15
楼主,是你让偶幼小的心灵再次深深的领悟了何谓造旨之高深、文笔之挥洒。。谢谢you!在看完这帖子以后
,我立即动手回复,因为我生怕迟到的回复不能使更多的人领悟你的圣明,以至使这等网上少有的好
贴就此轮沉,我担不起这样的罪名!更加重要的是,能在如此重要、精辟而又生动的贴子后,留上自己的网名
,这对我的生命,以及我的家庭,乃至我所处的社会中是多么荣耀的一件事啊,请您高贵而又宽容的心,能够
原谅我的这点小小私心,这麽经典的图片,看到时我就告诉自己,这样的好贴我们要顶,是的,我们不但要顶
,我们还要马上顶,顶一篇对不起楼主,我们就顶两篇,两篇不行我们就顶三篇,我们不但自己要顶,这样的
好贴我们要发动更多的人来顶,朋友,对,一定要把自己所有的朋友都发动起来,什麽网友呀,笔友呀,牌友
呀,酒友呀,.......只要是个人,我们一定要不择手段的发动起来,使这张好贴不至于因我们而沉沦,亲朋,我
们的亲朋是我们至亲的基础,如果这样的好贴我们看到了,而不推荐给他们,无形中我们就铸成了他们一生中
最大的遗憾,所以,我们应该明白顶这一篇好贴的重要性,同志们,让我们不知疲倦,孜孜以求,艰苦奋斗,
努力把这一篇好贴顶下去吧,俗话说的好,“走过路过不要错过,”俗话又说“过了这个村,就没这个店”,
所以,同志们,不要再犹豫了,让我们携起手来,为了把如此好贴最终顶上去而努力奋斗吧!说到这里有些朋
友可能会问我,“至于吗,一篇帖子”,那麽我告诉你,有时候一生的精彩可能就在于你积极参与与大家共同
创造了精彩,我们不能让精彩沉没,我们要让如此的精彩永恒下去,为了自己,为了亲人,为了精彩的延续,
为了我们伟大的社区事业的健康发展,为了我们全人类网络生活的再丰富,为了...........要知道,其实发现一个
精彩是一件多麽不容易的事情(我们楼主做到了,尊敬你!),楼主已经做到了前一部分,就是把这份精彩呈现
出来,我们只不过继续做完剩余那微不足道的一部分——留住这份精彩,一个人的力量是有限的,我们难道
见了如此精彩的帖子不可以挺身而出为这份精彩的延续尽自己小小的一份力吗,?????
我不说这是什麽百年一见的好贴,“群众的眼睛是雪亮的”“好贴不怕火炼”“是好贴总是会发光的”,我只
是在讲述一种我自己的感觉,我为这样如此精彩的帖子已经做了我应做的一部分,我无憾了,可是你呢,看到
如此精彩的东西你就不想留下点什麽吗?你良心可以安分吗?这会不会是你一生中最大的遗憾呢?你还在犹豫
吗?好吧,如果你确定你要做什麽了,请你不要再犹豫了,“如果顶帖是一种错,那麽我宁愿一错再错,”为
了如此的好贴可以继续的流传下去,为了更多的人可以继续欣赏这份精彩,同志们,“这样的好贴我们要顶
,有困难要顶,没有困难创造困难也要顶,”,让我们为可以在如此的好贴下面留上自己的名字而感到骄傲吧
,让我们为我们亲手创造的精彩而感到自豪吧,“顶不在多,有了就行”,让更多的人因为有你的努力而可以
继续欣赏这份精彩而“没事偷着乐吧”,同志们,这仅仅,这仅仅只需要我们回复一篇帖子就可以了,你还在
犹豫吗????
看了这张楼主的帖子,被楼主独特的视角折服的同时,难道我们就不可以为这篇好贴,为楼主发掘的一片艰辛
而鼓掌,并摇旗呐喊吗,同志们,“一个楼主发了帖,千万个回帖的我们要站起来” 呀,我们不能再犹豫了
,我们不能再迟疑了,如果你明白了你现在马上需要做的,那麽,.............(那麽不要在这里看我在这罗嗦了),
同志们,你们要坚信,是的,你们要明白,你们即将做的,是多麽伟大的一项事业,你们不仅仅是在简单的回
复一篇帖子,你们是在为了我们伟大的论坛发展添砖砌瓦,是为了我们的下一代可以有一个丰富的社区生活而
奋斗,是为了我们伟大祖国网络事业的蓬勃发展而努力,同志们,乡亲们,所有可爱漂亮的MM们,”我骄傲
,因为我回帖“,也许你认为这样的好贴,不知道该怎麽回,那麽我告诉你,你哪怕一个字”顶“如此微不足
道的付出,我们都会感谢你,历史就会记住你,精彩就会留住你,你的名字将伴随着这篇精彩的帖子直到永恒
...............”顶自己的帖,让别人说去吧“”我顶故我在“坚持顶帖一百年不动摇”,如此的好贴,如此清新的
风格,如此独特的视角,我们还能说什麽呢,我们还能做什麽呢,不要再犹豫了,让你的回复就这样贴上去吧
,如果上天给我再回一次的机会,我会对楼主说三个字“还不够”,如果非要在这份承诺上加一个数量,那麽
我希望是“一万篇”............................
这篇不是我写的,在下还没得那水平.这是几年前一个叫“我顶故我在”的大作,觉得移花接木偷梁换柱借花献佛
给楼主再合适不过了.还望楼主笑纳!
向楼主学习!向楼主致敬!楼主不是别人,楼主就是楼主!
2022-8-27 07:30:30
楼主,是你让我深深地理解了‘人外有人,天外有天’这句话。谢谢你!在看完这帖子以后,我没有立即回复
,因为我生怕我庸俗不堪的回复会玷污了这网上少有的帖子。但是我还是回复了,因为觉得如果不能在如此精
彩的帖子后面留下自己的网名,那我死也不会瞑目的!能够在如此精彩的帖子后面留下自己的网名是多么骄傲
的一件事啊!
2022-8-28 00:06:29
楼主你知道的太多了。
2022-8-28 15:28:57
看了楼主的帖子,我面色凝重,关掉电脑,起身打开冰箱,拿出一瓶农妇山泉,拿在手里走到窗前,凝视着远方,外面灰蒙蒙的天下着小雨,看着窗外,我的心情更忧郁了,我再也无法抑制内心的情感,打开窗子,对着窗外大声呐喊 :你写的是神马玩意儿?
2022-8-29 10:03:00
第一次评论啊,好紧张啊,该怎么说啊,打多少字才显的有文采啊,这样说好不好啊,会不会成热贴啊,我写的这么好会不会太招遥,写的这么深奥别人会不会看不懂啊,怎样才能写出我博士后的水平呢,半年写了这么多会不会太快啊,好激动啊
2022-8-29 10:13:22
文笔流畅,修辞得体,深得魏晋诸朝遗风,更将唐风宋骨发扬得入木三分,能在有生之年看见楼主的这个帖子
。实在是我三生之幸啊。看完楼主的这个帖子之后,我竟感发生出一种无以名之的悲痛感――啊,这么好的帖子
,如果将来我再也看不到了,那我该怎么办?那我该怎么办?直到我毫不忧郁的把楼主的这个帖子收藏了。我
内心的那种激动才逐渐平复下来。可是我立刻想到,这么好的帖子,倘若别人看不到,那么不是浪费楼主的心
血吗?经过痛苦的思想斗争,我终于下定决心,我要把这个帖子一直往上顶,往上顶!顶到所有人都看到为止。
2022-8-29 11:08:59
金鉴实验室搭建的这个论坛不错
2022-8-29 11:29:07
◥█▄▃▁
.......◥█☆█▅▄▃▁▁▁▁▁▃▄▅▅ 重庆代表队 ▅▅▅▄▁
〓▇█████ 雷雷雷雷雷雷██████████████████▅▄▃▁▁
〓〓〓█████████████◤
....................轰炸过
..................轰炸过
...............轰炸过
............轰炸过
..........轰炸过
........轰炸过
......轰炸过
.....轰炸过
....轰炸过
...轰炸过
..轰炸过
.轰炸过 .轰炸过 楼上l楼下保持队行 !!!!!
2022-8-29 11:36:07
1234下一页
返回顶部