智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6897|回复: 18
打印 上一主题 下一主题

[光电] 真的是菜菜鸟,使用STC12C5A60S2做简单寻迹车的PWM问题

  [复制链接]

1

主题

9

帖子

0

精华

注册会员

Rank: 2

积分
44
威望
23
贡献
11
兑换币
11
注册时间
2014-7-23
在线时间
5 小时
毕业学校
北京理工大学珠海学院
跳转到指定楼层
1#
发表于 2014-7-23 18:47:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
这个暑假想学做一下智能循迹小车,现在遇到一个车速无法控制的问题,卡了好多天了都解决不了问题,求各位大大帮助

单片机型号:STC12C5A60S2
驱动模块:L298N驱动模块
电源:18650电池两节

现在附上程序和驱动模块接线示意图:(程序现在不考虑循迹的情况,这款单片机PWM输出口是P13和P14,接到使能端ENA和ENB之后,电机不转。要是ENA和ENB接高电平小车可以全速转,单片机最小系统没有接复位电路)

#include<12C5A60S2.h>
#include<intrins.h>
#include<math.h>

#define uint unsigned int
#define uchar unsigned char


sbit L1=P0^0;
sbit L2=P0^1;
sbit R1=P0^2;
sbit R2=P0^3;

/*PWM初始化函数*/
void PWM_init(void)                               
{
        CMOD=0x02;
        CCAPM0=0x42;                        
        CCAPM1=0x42;                       
        CCAP1L=0x00;                       
        CCAP1H=0x00;                                                
        CCAP0L=0x00;               
        CCAP0H=0x00;               
        L1=0;
        L2=0;
        R1=0;
        R2=0;
        CR=1;                     
}


/***************************************************************************
函数名称:行走函数
函数功能:驱动电机
函数备注:x为左边电机的速度,y为右边电机的速度
                  -255<x<255,-255<y<255
                  0~255向前,-255~-1向后,绝对值越大,速度越大
***************************************************************************/
void RUN(int x,int y)                          
{
        if(y>0)
        {
                CCAP0L=y;                       
                CCAP0H=y;       
                R1=0;
                R2=1;
        }
        else
        {
                CCAP0L=-y;                       
                CCAP0H=-y;                       
                R1=1;
                R2=0;
        }
        if(x>0)
        {
                CCAP1L=x;                       
                CCAP1H=x;                               
                L1=0;
                L2=1;
        }
        else
        {
                CCAP1L=-x;                       
                CCAP1H=-x;                       
                L1=1;
                L2=0;
        }
}

void delay2s(void)   //误差 -0.000000000111us
{
    unsigned char a,b,c,n;
    for(c=142;c>0;c--)
        for(b=168;b>0;b--)
            for(a=250;a>0;a--);
    for(n=2;n>0;n--);
    _nop_();  //if Keil,require use intrins.h
}



void main()
{
   delay2s();
   PWM_init();
while(1)
{
  RUN(-100,100);
}
}

附件: 您需要 登录 才可以下载或查看,没有帐号?注册
回复

使用道具 举报

2

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1399
威望
656
贡献
493
兑换币
445
注册时间
2014-6-6
在线时间
125 小时
2#
发表于 2014-7-23 18:55:36 | 只看该作者
PWM控制啊
回复

使用道具 举报

1

主题

9

帖子

0

精华

注册会员

Rank: 2

积分
44
威望
23
贡献
11
兑换币
11
注册时间
2014-7-23
在线时间
5 小时
毕业学校
北京理工大学珠海学院
3#
 楼主| 发表于 2014-7-23 19:10:50 | 只看该作者
筑梦9103 发表于 2014-7-23 18:55
PWM控制啊

我也是想用单片机自身的PWM控制,但是不知道为什么就是实现不了,就想请你们看看我的接线或者程序有没有什么问题
回复

使用道具 举报

6

主题

257

帖子

0

精华

高级会员

Rank: 4

积分
743
威望
353
贡献
234
兑换币
241
注册时间
2013-10-12
在线时间
78 小时
4#
发表于 2014-7-23 21:43:35 | 只看该作者
买的模块应该没有问题 多看下还不是程序的问题
回复

使用道具 举报

1

主题

9

帖子

0

精华

注册会员

Rank: 2

积分
44
威望
23
贡献
11
兑换币
11
注册时间
2014-7-23
在线时间
5 小时
毕业学校
北京理工大学珠海学院
5#
 楼主| 发表于 2014-7-23 21:57:41 | 只看该作者
wajuka 发表于 2014-7-23 21:43
买的模块应该没有问题 多看下还不是程序的问题

可以帮我看下接线有没有问题吗?
回复

使用道具 举报

2

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1399
威望
656
贡献
493
兑换币
445
注册时间
2014-6-6
在线时间
125 小时
6#
发表于 2014-7-23 22:19:30 | 只看该作者
I/O接到示波器上看一下不久明了了。
接线有没问题,信号发生器是干嘛的啊
回复

使用道具 举报

0

主题

16

帖子

0

精华

高级会员

Rank: 4

积分
810
威望
426
贡献
272
兑换币
285
注册时间
2013-10-8
在线时间
56 小时
7#
发表于 2014-7-23 22:47:34 | 只看该作者
P1^3,P1^4,你没有用,别的地方没有看出来错误,你先改改看看
回复

使用道具 举报

4

主题

796

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
10578

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章

威望
5540
贡献
3174
兑换币
3043
注册时间
2013-9-30
在线时间
932 小时
8#
发表于 2014-7-24 00:59:45 | 只看该作者
玩玩没想到...
回复

使用道具 举报

1

主题

9

帖子

0

精华

注册会员

Rank: 2

积分
44
威望
23
贡献
11
兑换币
11
注册时间
2014-7-23
在线时间
5 小时
毕业学校
北京理工大学珠海学院
9#
 楼主| 发表于 2014-7-24 10:45:08 | 只看该作者
筑梦9103 发表于 2014-7-23 22:19
I/O接到示波器上看一下不久明了了。
接线有没问题,信号发生器是干嘛的啊

现在在家里,不在学校的实验室,没设备啊
回复

使用道具 举报

1

主题

9

帖子

0

精华

注册会员

Rank: 2

积分
44
威望
23
贡献
11
兑换币
11
注册时间
2014-7-23
在线时间
5 小时
毕业学校
北京理工大学珠海学院
10#
 楼主| 发表于 2014-7-24 10:47:15 | 只看该作者
魔亦有道 发表于 2014-7-23 22:47
P1^3,P1^4,你没有用,别的地方没有看出来错误,你先改改看看

P1^3和P1^4没有声明,直接接跳线到ENA和ENB,我是这样接的....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 00:33 , Processed in 0.066461 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表