DIY活动--小车
参与过21ic多次DIY活动,也是非常得心应手了。非常感谢21IC的信任和支持。小车为三轮小车,未来搞个四轮就比较好。在操作的时候一点要注意电容极性,电机极性,注意芯片的一脚。焊接最好用带绝缘层的绝缘导线焊接。
接下来是具体步骤:
1.焊接电机正负极,注意极性
https://bbs.21ic.com/data/attachment/forum/202410/18/100944ygmwwp9q9iwzqmlg.png.thumb.jpg
2.固定电机,用螺丝刀和钳子拧紧固定电机
https://bbs.21ic.com/data/attachment/forum/202410/18/101033nyi3i385ahspht6n.png.thumb.jpg
3.安装万向轮铜柱
https://bbs.21ic.com/data/attachment/forum/202410/18/101234o5xo30pr722tpzz0.png.thumb.jpg
4.安装万向轮
https://bbs.21ic.com/data/attachment/forum/202410/18/101356tqm4jq4s591kc9b1.png.thumb.jpg
5.焊接灯和电池盒
https://bbs.21ic.com/data/attachment/forum/202410/18/101543d688umqq86vvsfm7.png.thumb.jpg
6.其他硬件固定。
https://bbs.21ic.com/data/attachment/forum/202410/18/101621bj2bq4ve67vnjeje.png.thumb.jpg
7.焊接好的线
https://bbs.21ic.com/data/attachment/forum/202410/18/101725bfvg76fnp7pfp57p.png.thumb.jpg
8.安装固定轮子
https://bbs.21ic.com/data/attachment/forum/202410/18/101823udd45iapdexayiy4.png.thumb.jpg
安装好的实物图
https://bbs.21ic.com/data/attachment/forum/202410/18/102017dk2jjw5mpm5jxgkm.png.thumb.jpg
https://bbs.21ic.com/data/attachment/forum/202410/18/102041vqioq4o249v5kpuu.png.thumb.jpg https://bbs.21ic.com/data/attachment/forum/202410/18/102109eef1wn8shwouwnf9.png.thumb.jpg
https://bbs.21ic.com/data/attachment/forum/202410/18/102122a7s5j92ka59mmy97.png.thumb.jpg
软件调试:
//前进
void run(void)
{
Left_moto_go ; //左电机往前走
Right_moto_go ;//右电机往前走
}
//左转
void leftrun(void)
{
Right_moto_go ;//右电机往前走
Left_moto_Stop ;//左电机停止
}
//右转
voidrightrun(void)
{
Left_moto_go; //左电机往前走
Right_moto_Stop ;//右电机往前走
}
//后退
void back(void)
{
Left_moto_back;// 左轮后退
Right_moto_back;// 左轮后退
}
//停转
void stop(void)
{
Right_moto_Stop; //停转
Left_moto_Stop ; //
}
//左旋转
void tleft(void)
{
Left_moto_back; //左电机后退
Right_moto_go ;// 右电机前进
}
//右旋转
void tright(void)
{
Left_moto_go; //左电机前进
Right_moto_back;//右电机后退
}
/************************************************************************/
// PWM调制电机转速
// 左电机调速
/*调节push_val_left的值改变电机转速,占空比*/
void pwm_out_left_moto(void)
{
if(Left_PWM_ON)
{
if(pwm_val_left<=push_val_left)
{
EN1=1;
}
else
{
EN1=0;
}
if(pwm_val_left>=32)
pwm_val_left=0;
}
else
{
EN1=0; //若未开启PWM则EN1=0 左电机 停止
}
}
/******************************************************************/
/* 右电机调速 */
void pwm_out_right_moto(void)
{
if(Right_PWM_ON)
{
if(pwm_val_right<=push_val_right) //20ms内电平信号 111 111 0000 0000 0000 00
{
EN2=1; //占空比6:20
}
else
{
EN2=0;
}
if(pwm_val_right>=32)
pwm_val_right=0;
}
else
{
EN2=0; //若未开启PWM则EN2=0 右电机 停止
}
}
//TIMER0中断服务子函数产生PWM信号
void timer0()interrupt 1 using 2
{
TH0=0XFC; //1Ms定时
TL0=0X66;
pwm_val_left++;
pwm_val_right++;
pwm_out_left_moto();
pwm_out_right_moto();
}
void timer2()interrupt 5 //定时器2
{
TF2 = 0;
TH2 = 0; //1Ms定时
TL2 = 0;
}
/******************************************************************/
/* 串口中断程序*/
/*****************************************************************
页:
[1]