|
本帖最后由 myseil 于 2024-9-9 20:13 编辑
STC单片机驱动直流电机,为啥驱动不起来? (mydigit.cn) 上次问了一下各位大佬为啥驱动不起来!
后来经过@mmxx2015等多位大佬的指导,搞定了代码!虽然后面是问的AI。
然后画板子,打板!白嫖的嘉立创(电子爱好者的福音盒)!锂电钉枪的控制板打回来了! (mydigit.cn)
这是打回来的板子。
安装好
单片机代码:
- #include <STC8G.H>
- #include "intrins.h"
- #include "Delay.h"
- // 锂电钉枪 使用STC8G1K08
- //配置IO口功能
- sbit K1=P3^2; //扳机激发
- sbit K2=P3^3; //钉枪下压
- sbit K3=P5^4; //弹簧到位 电机断电
- sbit MOTOR=P5^5; //电机通电
- sbit LED = P3^1; //状态指示灯
- void main(){
- P3M0 = 0x00; //配置P3口为准双向口
- P3M1 = 0x00;
- P5M0 = 0x20; //配置P5.5为推挽输出 0010 0000
- P5M1 = 0x00; // 0000 0000
- K1 = 1; //
- K2 = 1; //
- K3 = 1; //
- LED = 0;
- MOTOR = 0; //配置电机上电低电平
- while (1) {
- if (K1 == 0 && K2 == 0) {
- MOTOR = 1; // 启动电机
- while(K1 == 0){
- LED = !LED;
- Delay(100);
- }
- } else if (K3 == 0) {
- while(K3 ==1){
- // Delay(60); //延时避免接触K3就停机,弹簧无法释放。
- MOTOR = 0; // 停止电机
- LED = 0;
- }
- } else {
- MOTOR = 0; // 默认停止电机
- LED = 0;
- }
- }
- }
复制代码 原理图:
单片机使用的STC8G1K08,除了电源占用两个引脚,其它的6个是IO口。
主要是便宜,几毛钱一个,烧了不心疼!这单片机高级应用可以直接使用USB,不过不能设置时钟频率。
代码刚开始就是写的点灯程序,后面论坛的大佬指导+ChatGPT,完成了以上的代码!
有一个引用Delay.h就是一个1ms的延时函数!从STC-ISP上面复制的。
充电就直接外挂了一个4056板子,后面看要不要把LED引出来。
锂电池装了一个保护板,但是估计是保护板买到假的了,电流不够。现在是直接接的18650电池。
电池是PDD买的三单5折的东磁,内阻在14左右,就是论坛很火的那个内阻仪测的!
以上还有优化空间,奈何本人能力有限!
录了一个视频,是以附件形式传上来的,不知道会不会收费!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|