【小小舵机拿捏】
效果展示¶
视频待更新。。。。。。。。。。。。。。。
功能说明¶¶
面向 RocketPI STM32F401RE 开发板的 sg90舵机驱动工程。主要特性:
- 使用 TIM3_CH4 驱动舵机
- 提供
driver_sg90_test驱动测试,可自行设置任意角度值,或180°来回转动。 - 同时串口实时打印角度值
硬件连接¶
- 控制线接 PC9
- 电源:接 5V
sg90驱动原理¶
1. PWM 信号的工作方式¶
- PWM(脉宽调制) 信号是一种周期性的方波信号,其周期保持固定,波形的宽度(高电平持续的时间)决定了舵机的角度。
- 舵机的标准控制信号是一个 50 Hz 的 PWM 信号,即每 20 毫秒(20 ms)为一个周期。每个周期中的高电平持续时间决定舵机转动的角度。
2. 控制信号与角度的关系¶
SG90 通常使用 1 ms 到 2 ms 的脉宽来控制角度:
- 1 ms 的脉宽信号通常对应舵机转到 0°。
- 1.5 ms 的脉宽信号通常对应舵机转到 90°。
- 2 ms 的脉宽信号通常对应舵机转到 180°。
因此,控制信号的脉宽越长,舵机旋转的角度越大。
举例:
- 每 20 毫秒一个周期,高电平 1 毫秒时,舵机转到 0°。
- 每 20 毫秒一个周期,高电平 2 毫秒时,舵机转到 180°。
CubeMX配置¶
定时器配置¶
USART配置¶
开启DMA发送并配置全局中断 (不使用dma会阻塞舵机运行时间)
逻辑分析仪波形测量¶
串口实时角度值¶
驱动以及测试代码¶
Core/Src/main.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | |
bsp/debug/debug_driver.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 | |
bsp/debug/debug_driver.h
bsp/sg90/driver_sg90_test.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | |





