04 控制映射与程序
4.1 叶面角映射
θ(°) = N × 360 / (65 × 细分);细分 1600 → N = θ × 288.9
| θ | 30° | 45° | 90° | 135° |
|---|
| 脉冲 | 8 667 | 13 000 | 26 000 | 39 000 |
4.2 叶轴角映射表(细分1600、螺距4 mm)
| α(°) | 0 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 15 |
|---|
| s(mm) | 23.685 | 24.563 | 25.450 | 26.344 | 27.246 | 28.152 | 29.061 | 29.971 | 30.427 |
| 累计脉冲 | 0 | 8 776 | 17 644 | 26 590 | 35 601 | 44 661 | 53 753 | 62 860 | 67 413 |
程序内置 0.5° 间隔 31 点全表 + 线性插值(见 AXIS_MAP[31])。
4.3 51 单片机脉冲方案
| 项目 | 参数 |
|---|
| 芯片 / 晶振 | STC89C52 / 12 MHz(12T) |
| 脉冲频率 | 2 kHz 起步 → 30 kHz;重装值 500 → 33 |
| 定时器 | T0 = 叶面角脉冲,T1 = 叶轴角脉冲 |
| 引脚 | P1.0/P1.1 叶面 STEP/DIR;P1.2/P1.3 叶轴 STEP/DIR;P1.4 RS485 DE |
| 节拍 | 100 ms 采样;500 ms 广播;1 s 从机上报 |
| 软限位 | 叶面 −90°~+135°;叶轴 0~15° |
4.4 通信帧(9 字节)
0xAA | ID | 叶面角H | 叶面角L | 叶轴角H | 叶轴角L | 模式 | CRC8 | 0x55
| 指令 | 码 | 说明 |
|---|
| oper | 0x01 | 自检后按风力运行 |
| modf | 0x02 | 检修(风速<1 m/s 才允许) |
| stop | 0x03 | 停止,叶片直立 |
| danc | 0x04 | 舞蹈(风速<0.1 m/s) |
| prot | 0x05 | 保护(风速>20 m/s 自动) |
4.5 程序文件
| 文件 | 说明 |
|---|
blade_control.h | 公共定义:引脚、细分、映射表、状态机、限位 |
blade_control.c | 实现:T0/T1 脉冲中断、AXIS_MAP、CRC8、RS485、角度函数 |
MainHost.c | 主机:采样 → 计算 → 本机控制 + 广播 |
MainSlave.c | 从机:收帧 → 按 ID 算角度 → 驱动两轴 → 上报 |
4.6 现场标定
- 零点:叶面角转至顺风 90° 记零点;叶轴角叶片直立为 0°
- 方向:验证正脉冲转向,程序中设
DIR_SIGN - 反向间隙:实测蜗杆-蜗轮反向间隙(0.2–0.5°),反向先走空程
- 软限位:叶面 −90°~+135°、叶轴 0~15°
