当前位置: 首页 > news >正文

社区论坛自助建站网站长工具精品

社区论坛自助建站网,站长工具精品,大连网站设计菲尔莱斯,做网站能致富吗在这篇文章#xff0c;我介绍了基于逸宸电子开发的总线适配器来点亮LED灯的基本方法#xff01;myastrotong#xff1a;玩转GPIO之点灯#xff08;非树莓派#xff09;​zhuanlan.zhihu.com这款总线适配器的介绍见这里#xff1a;工业级高速USB转SPI I2C PWM GPIO UART C…在这篇文章我介绍了基于逸宸电子开发的总线适配器来点亮LED灯的基本方法myastrotong玩转GPIO之点灯非树莓派​zhuanlan.zhihu.com这款总线适配器的介绍见这里工业级高速USB转SPI I2C PWM GPIO UART CAN接口电压可软件配置​item.taobao.com没错就是这个物件一款USB转GPIO等常见接口的总线适配器看上去牛皮的不得了。学会了点灯自然要挖掘一些高级点的玩法以下是基于这个总线适配器点亮呼吸灯的玩法。在很多需要调光的场合都采用PWM(脉冲调制)的方式调光也称为“数字调光”就是在固定流经LED的电流大小的情况下通过占空比可调节的PWM脉冲来反复控制LED的导通和关断 。 导通的时候LED按照设定好的电流值发出相应亮度的光关断的时候LED不亮。如果PWM脉冲的重复周期高于人眼视觉暂留需要的频率特别是达到50Hz以上后一般人眼就觉察不出LED的闪烁了从而通过改变PWM脉冲的占空比就能够改变LED的亮度。熄灭之前就又打开了那么灯实际上是会维持在一个亮度的或者你的眼睛看上去灯会维持在一个亮度。如果你一直保持某一个固定的频率那么电灯就会保持一个固定的亮度。理论上你可以通过调整开灯持续的时间长度和关灯持续的时间长度的比例从而得到不同亮度。这个比例被称为“占空比”。通过调整“占空比”就可以做到呼吸灯的效果。准备硬件一个三色信号灯你也可以选择一个发光二极管和一个电阻我这里仅仅是为了方便、两根母对公杜邦线。查询官方文档总线适配器的各个GPIO的定义如下我选择接入PWM_CH3接口端也就是P8端口。白色杜邦线接入CH3接口和三色灯的G口黄色杜邦线接入总线适配器的GND端和三色灯的GND端。接好的效果图如下然后基于官方示例文件进行修改。修改examplespythonUSB2PWMUSB2PWM_Test下面的USB2PWM_Test.py文件from ctypes import * import platform from time import sleep from usb_device import * from usb2pwm import *if __name__ __main__: DevIndex 0DevHandles (c_int * 20)()# Scan deviceret USB_ScanDevice(byref(DevHandles))if(ret 0):print(No device connected!)exit()else:print(Have %d device connected!%ret)# Open deviceret USB_OpenDevice(DevHandles[DevIndex])if(bool(ret)):print(Open device success!)else:print(Open device faild!)exit()# Get device infomationUSB2XXXInfo DEVICE_INFO()USB2XXXFunctionString (c_char * 256)()ret DEV_GetDeviceInfo(DevHandles[DevIndex],byref(USB2XXXInfo),byref(USB2XXXFunctionString))if(bool(ret)):print(USB2XXX device infomation:)print(--Firmware Name: %s%bytes(USB2XXXInfo.FirmwareName).decode(ascii))print(--Firmware Version: v%d.%d.%d%((USB2XXXInfo.FirmwareVersion24)0xFF,(USB2XXXInfo.FirmwareVersion16)0xFF,USB2XXXInfo.FirmwareVersion0xFFFF))print(--Hardware Version: v%d.%d.%d%((USB2XXXInfo.HardwareVersion24)0xFF,(USB2XXXInfo.HardwareVersion16)0xFF,USB2XXXInfo.HardwareVersion0xFFFF))print(--Build Date: %s%bytes(USB2XXXInfo.BuildDate).decode(ascii))print(--Serial Number: ,end)for i in range(0, len(USB2XXXInfo.SerialNumber)):print(%08X%USB2XXXInfo.SerialNumber[i],end)print()print(--Function String: %s%bytes(USB2XXXFunctionString.value).decode(ascii))else:print(Get device infomation faild!)exit()# Initialize adcPWMConfig PWM_CONFIG()#我选的是P8对应的PWM是CH3 二进制是1000 -16进制是0x08PWMConfig.ChannelMask 0x08for i in range(0,8):PWMConfig.Polarity[i] 1 # 将所有PWM通道都设置为正极性for i in range(0,8):PWMConfig.Precision[i] 100 # 将所有通道的占空比调节精度都设置为1%for i in range(0,8):PWMConfig.Prescaler[i] 10 # 将所有通道的预分频器都设置为10则PWM输出频率为200MHz/(PWMConfig.Precision*PWMConfig.Prescaler)for i in range(0,8):PWMConfig.Pulse[i] PWMConfig.Precision[i]*30//100 # 将所有通道的占空比都设置为30%# 初始化PWMret PWM_Init(DevHandles[DevIndex],byref(PWMConfig));if ret ! PWM_SUCCESS:print(Initialize pwm faild!)exit()else:print(Initialize pwm sunccess!)print(DevHandles[DevIndex])# 启动PWM,RunTimeOfUs之后自动停止利用该特性可以控制输出脉冲个数脉冲个数RunTimeOfUs*200/(PWMConfig.Precision*PWMConfig.Prescaler)#RunTimeOfUs0,表示一直输出 RunTimeOfUs 0ret PWM_Start(DevHandles[DevIndex],PWMConfig.ChannelMask,RunTimeOfUs)if(ret ! PWM_SUCCESS):print(Start pwm faild!)exit()else:print(Start pwm sunccess!)try:while (True):#改变PWM波形占空比 for j in range(0,101,2):for i in range(0,8):PWMConfig.Pulse[i] j PWM_SetPulse(DevHandles[DevIndex],PWMConfig.ChannelMask,PWMConfig.Pulse)sleep(0.05) for j in range(100,-1,-2):for i in range(0,8):PWMConfig.Pulse[i] j PWM_SetPulse(DevHandles[DevIndex],PWMConfig.ChannelMask,PWMConfig.Pulse) sleep(0.05) except KeyboardInterrupt:pass# 停止PWM# l、et PWM_Stop(DevHandles[DevIndex],PWMConfig.ChannelMask)# if(ret ! PWM_SUCCESS):# print(Stop pwm faild!);# exit()# else:# print(Stop pwm sunccess!)# Close deviceret USB_CloseDevice(DevHandles[DevIndex])if(bool(ret)):print(Close device success!)else:print(Close device faild!)exit()关键控制电路部分的代码为我选择的是CH03端口所以对应的 PWMConfig.ChannelMask 0x08然后程序通过修改如下代码来改变占空比 PWMConfig.Pulse[i] j 并且先通过占空比增加然后使占空比减小从而得到呼吸灯暗亮的间歇变化。效果视频如下点亮一盏呼吸灯https://www.zhihu.com/video/1224789136399835136以上就是通过PWM来点亮一盏呼吸灯的全部过程。
http://www.zqtcl.cn/news/252119/

相关文章:

  • uc投放广告网站要自己做吗dw制作企业网站
  • 山东网站制作南京软件外包公司
  • 铁岭建设银行网站网站验证码原理
  • 做网站需要什么专业方向的员工钱多网站
  • 网站建设合同要存档几年7星彩网站开发
  • 网站建设好后 如何验收什么网站可以做护考题
  • 网站安全怎么做wordpress代币插件
  • 吉林网站建设电话龙华网站建设专业定制企业
  • 个人导航网站怎么备案js调用wordpress文章列表
  • 网站微信推广方案衡水外贸网站建设
  • 怎么打造自己的网站如何做自已网站
  • 美容美发网站模板wordpress适合优化吗
  • 网站开发的著作权和版权沧州市做网站价格
  • 优客逸家网站源码酒吧装修
  • 深圳网站制作的公司怎么样开工作室做网站怎样找资源
  • 大连城乡建设局网站seo编辑招聘
  • 网站建设意见怎么在中国移动做网站备案
  • 做内贸哪个网站找客户网络外包
  • 古玩网站建设意义钟山县住房和城乡建设局网站
  • 网站开发微信公众号自定义菜单规则网站建设
  • 营销网站建设工作教育培训wordpress主题
  • 温州地区做网站公司如何注册新公司
  • 做的网站怎样评估价值全国信息公示系统官网
  • 外国网站签到做任务每月挣钱1g内存vps 开电影网站
  • 营销型网站案例易网拓互联购物
  • 河南企业网站制作微信小程序如何做
  • 金坛住房和城乡建设局网站wordpress 需要授权吗
  • 个人理财的网站开发天津 公司网站建设
  • 做电脑游戏破解的网站大宗交易平台软件
  • 男女做暖暖视频免费网站网络营销策划案ppt