from machine import Pin
import time
# def global var
# encode now value
encode_value = 0
last_a = 0
last_b = 0
# def pin number for each encode AB line
encode_a = 15
encode_b = 14
p_a = Pin(encode_a, Pin.IN)
p_b = Pin(encode_b, Pin.IN)
# def encode count function
def read_encode(a_v, b_v):
global encode_value
global last_a
global last_b
if a_v != last_a or b_v != last_b:
if last_a == 0 and last_b == 0:
if a_v == 0 and b_v == 1:
encode_value -= 1
if a_v == 1 and b_v == 0:
encode_value += 1
elif last_a == 0 and last_b == 1:
if a_v == 1 and b_v == 1:
encode_value -= 1
if a_v == 0 and b_v == 0:
encode_value += 1
elif last_a == 1 and last_b == 1:
if a_v == 1 and b_v == 0:
encode_value -= 1
if a_v == 0 and b_v == 1:
encode_value += 1
elif last_a == 1 and last_b == 0:
if a_v == 0 and b_v == 0:
encode_value -= 1
if a_v == 1 and b_v == 1:
encode_value += 1
last_a = a_v
last_b = b_v
p_a.irq(lambda pin: read_encode(p_a.value(), p_b.value()))
p_b.irq(lambda pin: read_encode(p_a.value(), p_b.value()))
# main loop
while True:
print(encode_value)
time.sleep(0.1)
小白学习pid环控制-概览篇 测试代码文件
需积分: 0 186 浏览量
更新于2025-08-12
收藏 1KB ZIP 举报
在控制理论领域,PID(比例-积分-微分)控制器是一种常见的反馈回路机制,广泛应用于工业控制系统以实现精确控制。本篇概览旨在为初学者提供一个关于PID环控制的学习框架,通过对PID控制的基本原理和相关概念的介绍,结合实际的测试代码,使读者能够快速上手并理解PID控制器的工作方式。
PID控制器通过计算偏差值——即期望值(设定点)与实际输出值(过程变量)之间的差异,来产生一个控制信号。该信号通过调整三个主要的控制参数:比例(P)、积分(I)和微分(D),来纠正偏差,使系统稳定在期望状态。比例控制负责减少误差大小,积分控制消除稳态误差,而微分控制预测未来趋势,通过减少或消除系统过度响应来增强稳定性。
在实际应用中,PID控制器的调试和参数设置是一个关键环节,需要根据被控对象的动态特性进行调整。对于初学者而言,理解PID参数对系统响应的影响是学习PID控制的基础。例如,比例参数决定了控制器对当前误差的敏感度,而积分参数则与控制器对于消除累积误差的能力有关,微分参数则影响着控制器对未来误差变化的预测和反应。
文章的配套代码提供了三个Python文件,分别是EncodeDriver.py、ServoDriver.py和LimitDriver.py,这三个文件分别对应编码器驱动、伺服驱动和限位驱动的实现。编码器通常用于测量和控制机械系统的角度或位置,伺服驱动则负责控制伺服电机的精确运动,而限位驱动则是确保系统在物理或安全限制内运行的重要组成部分。
编码器驱动(EncodeDriver.py)可能包含用于读取编码器信号并将其转换为角度或位置信息的代码。伺服驱动(ServoDriver.py)则可能包括控制伺服电机转速和位置的功能,以及如何响应来自控制器的指令。限位驱动(LimitDriver.py)则可能包含用于检测物理限制并停止或反转电机运动的逻辑,以防止硬件损坏。
树莓派Pico作为下位机在这些代码中扮演着执行控制器输出指令的角色。树莓派Pico是一类低成本、高性能的微控制器,它支持C/C++和MicroPython编程,非常适合用于控制应用和原型开发。通过树莓派Pico的GPIO引脚,可以控制伺服电机和其他外围设备,实现对物理世界的精确控制。
整体来说,这个概览篇不仅为初学者提供了一个了解PID控制的入口,还通过实际的代码示例,展示如何在树莓派Pico这样的下位机上实现PID控制逻辑。通过学习这些代码和对应的驱动实现,初学者可以进一步探索如何在真实世界的应用中使用PID控制器,为更复杂的控制系统打下坚实的基础。

tacom_
- 粉丝: 212
最新资源
- 系统集成项目经理资质临时管理办法-过渡时期暂行规定-不带章节.doc
- 计算机通信网络安全.ppt
- 综合布线方案AB区.doc
- 专业课程方案设计书温度的采集与控制(软件)2.doc
- Windows操作系统中的安全模式.doc
- BAT之外“轻”互联网公司更需要构筑生态.docx
- 公共服务平台建设对智慧城市发展的重要性.docx
- 高速公路机电系统维护信息化管理探讨.docx
- 2017-2018学年高中数学-第一章-算法初步-1.1-算法与程序框图-1.1.2.3-循环结构课件-新人教A版必修3.ppt
- 信息技术课件-计算机系统的组成.ppt
- 电力行业电气工程其自动化专业应聘时必知东东.doc
- 试论计算机网络技术未来发展及其应用对策.docx
- 方分析法绩效管理在项目管理中应用及实践.doc
- 通信原理ΔM编码、译码综合实验.doc
- 大数据时代高校图书馆创新发展思考.docx
- 电气自动化对电气工程的作用及应用要点.docx