本站消息

站长简介/公众号


站长简介:高级软件工程师,曾在阿里云,每日优鲜从事全栈开发工作,利用周末时间开发出本站,欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-12(14)

2021-01(54)

python串口控制8通道继电器方法笔记

发布于2021-10-18 00:28     阅读(898)     评论(0)     点赞(19)     收藏(4)



python串口控制8通道继电器方法笔记
保存当前文件为RelayControl.py,在其他py文件引用时,使用from RelayControl import relay 格式导入
调用时,使用 relay.connect() 即 relay.ALL_ON() 等即可。

# coding:utf-8

import serial
import time
from logset import logger

'''
8路继电器开关控制函数,包含打开连接串口,单独继电器开关控制和全部开全部关控制。
author:yutao 
'''

class relay(object):

    def __init__(self):
        self.chl_ON_code = ['00 f1 ff', '00 f2 ff', '00 f3 ff', '00 f4 ff', '00 f5 ff', '00 f6 ff', '00 f7 ff', '00 f8 ff', '00 f9 ff']
        self.chl_OFF_code = ['00 01 ff', '00 02 ff', '00 03 ff', '00 04 ff', '00 05 ff', '00 06 ff', '00 07 ff', '00 08 ff', '00 09 ff']
        self.ACC_chl = 1
        self.BAT_chl = 2
        self.GND_chl = 3
        self.ALL_chl = 9
        self.port = 'COM3'

    def relay_send(self,send_code):
        if self.port:
            relay_serial = serial.Serial(self.port, 9600, timeout = 1)
            if not relay_serial.isOpen():
                relay_serial.Open()
            relay_serial.write(bytes.fromhex(send_code))
            time.sleep(0.5)   #等待操作完成,防止干扰后续指令
            relay_serial.close()


    def ALL_ON(self):
        send_code = self.chl_ON_code[self.ALL_chl - 1]
        print(send_code)
        self.relay_send(send_code)
        logger.info("继电器控制: ALL_CHANNEL_ON")


    def ALL_OFF(self):
        send_code = self.chl_OFF_code[self.ALL_chl - 1]
        self.relay_send(send_code)
        logger.info("继电器控制: ALL_CHANNEL_OFF")


    def GND_ON(self):
        send_code = self.chl_ON_code[self.GND_chl - 1]
        self.relay_send(send_code)
        logger.info("继电器控制: GND_ON")


    def GND_OFF(self):
        send_code = self.chl_OFF_code[self.GND_chl - 1]
        self.relay_send(send_code)
        logger.info("继电器控制: GND_OFF")


    def BAT_ON(self):
        send_code = self.chl_ON_code[self.BAT_chl - 1]
        self.relay_send(send_code)
        logger.info("继电器控制: BAT_ON")

    
    def BAT_OFF(self):
        send_code = self.chl_OFF_code[self.BAT_chl - 1]
        self.relay_send(send_code)
        logger.info("继电器控制: BAT_OFF")

    
    def ACC_ON(self):
        send_code = self.chl_ON_code[self.ACC_chl - 1]
        self.relay_send(send_code)
        logger.info("继电器控制: ACC_ON")


    def ACC_OFF(self):
        send_code = self.chl_OFF_code[self.ACC_chl - 1]
        self.relay_send(send_code)
        logger.info("继电器控制: ACC_OFF")


if __name__ == "__main__":
    relay = relay()
    relay.port = 'COM5'
    relay.ALL_chl = 1
    relay.ALL_ON()

原文链接:https://blog.csdn.net/weixin_38003033/article/details/120759760







所属网站分类: 技术文章 > 博客

作者:32738ew

链接:https://www.pythonheidong.com/blog/article/1060708/2428562f1ff3c2c8b771/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

19 0
收藏该文
已收藏

评论内容:(最多支持255个字符)