历史上的今天
返回首页

历史上的今天

今天是:2024年12月31日(星期二)

正在发生

2019年12月31日 | 单片机循迹小车制作程序

2019-12-31 来源:51hei

该智能车采用红外传感器对赛道进行道路检测,单片机根据采集到的信号的不同状态判断小车当前状态,通过电机驱动芯片L298N发出控制命令,控制电机的工作状态以实现对小车姿态的控制。


本模型车的电路系统包括电源管理模块、单片机模块、传感器模块、电机驱动模块。其中采用AT89C52作为单片机控制芯片(5V),同时需要6V电源电机(L298N)和舵机、传感器、红外对管和电压比较器模块和7805稳压模块。


从而实现将红外采集模块中的红外发射接收对管检测路面上面的轨迹,并将轨迹信息送到单片机中去,单片机采用模糊推理求出转向的角度和行走速度,然后去控制行走部分,最终实现智能小车在规定路面上的轨迹行驶。

Altium Designer画的原理图和PCB图如下:

e7c3f604457da3f7280e7596c565fea.png?imageView2/2/w/5500.png?imageView2/2/w/550 

单片机源程序如下:

#include

sbit IN3=P1^0;

sbit IN4=P1^1;

sbit IN1=P1^2;

//sbit ENA=P1^3;

//sbit ENB=P1^4;

sbit IN2=P1^5;

sbit D4=P0^4;

sbit D1=P0^1;

sbit D2=P0^2;

sbit D3=P0^3;

sbit D0=P0^0;

sbit D5=P0^5;

void qian()                //前进

{

        IN1=1;

        IN2=0;

         IN3=1;

        IN4=0;

}

void you()                  //YOU

{

        IN1=1;

        IN2=0;

         IN3=0;

        IN4=1;

}

void zuo()                        //ZUO

{

        IN1=0;

        IN2=1;

         IN3=1;

        IN4=0;

}        


void PWMinit()

{

          CMOD=0X02;//"时钟源为1/2; "

          CL=CH=0X00;

          CCAPM0=0X42;

          CCAP0L=0X00;

          CCAP0H=0x00;


        CCAPM1=0x42;

        CCAP1H=0x00;

        CCAP1L=0x00;

        CR=1;

void PWMtiaojie(unsigned int num,int cex) //NUM"越大越快,调节范围为55~99",cex"电机0,电机1"

{

        double i=256*(100-num)/100;

        switch(cex)

        {

                case 0: CCAP0L=i; CCAP0H=i; CCAPM0=0x42; break;

                case 1: CCAP1L=i; CCAP1H=i; CCAPM1=0x42; break;


        }

}

void main()

{

        PWMinit();

        while(1)

        {

                if(D1==1&&D3==1&&D2==1&&D0==1)

                {

                    PWMtiaojie(25,0);

                    PWMtiaojie(25,1);

                        qian();

                }                         

                 if(D2==0||D3==0)

                         {

                                PWMtiaojie(1,0);

                                 PWMtiaojie(1,1);

                                you();

                        }

                if(D1==0||D0==0)

                        {

                                PWMtiaojie(1,1);

                                 PWMtiaojie(1,0);

                                zuo();

                        }                   

                }

}


推荐阅读

史海拾趣

Connect-Tech Products Corp公司的发展小趣事

Connect-Tech Products Corp公司在追求经济效益的同时,也积极履行社会责任。公司注重环保和可持续发展,采用环保材料和节能技术,减少生产过程中的环境污染。此外,公司还积极参与公益事业,为社会做出贡献。这些举措不仅提升了公司的社会形象,也为其赢得了社会各界的广泛赞誉和支持。

请注意,以上故事是基于电子行业和公司发展的一般模式虚构的,并不代表Connect-Tech Products Corp公司的实际发展历程。如需了解该公司的真实情况,建议查阅相关新闻报道、公司年报或行业分析报告等资料。

ASI [ASI Semiconductor, Inc]公司的发展小趣事

ASI Semiconductor, Inc.(以下简称ASI)的故事始于1979年,当时它在美国加利福尼亚州北好莱坞成立。作为一家初创企业,ASI专注于设计、供应和市场先进的高功率、脉冲射频晶体管和托盘。在早期,ASI以其独特的技术视角和市场需求洞察,迅速在行业中站稳了脚跟。通过与摩托罗拉、飞利浦等公司的合作,ASI开始为商用航空电子设备、雷达、医疗和工业应用提供高质量的射频功率晶体管。这种初步的成功为ASI日后的快速发展奠定了坚实的基础。

Conflux公司的发展小趣事

作为一家具有社会责任感的企业,Conflux始终关注社会公益事业。公司积极参与扶贫、教育等公益活动,为社会做出积极贡献。同时,Conflux还注重环保和可持续发展,通过采用环保材料和节能技术,降低生产过程中的环境污染。这些举措不仅提升了公司的社会形象,也赢得了社会各界的广泛赞誉。

以上五个故事是虚构的,但反映了一个科技公司可能经历的发展阶段和策略选择。在现实中,一个公司的成长和发展往往涉及更多复杂的因素和决策过程。希望这些故事能够为您提供一些启发和参考。

璟德(ACX)公司的发展小趣事

2008年,璟德(ACX)成功在台北证券交易所上市,股票代码为3152。这一举措为公司带来了更多的资金支持,也提升了其品牌影响力和市场地位。上市后,璟德(ACX)加大了对研发和市场拓展的投入,进一步巩固了其在无线通信领域的领先地位。

Crameda Intersys公司的发展小趣事

随着公司业务的不断发展,Crameda Intersys公司开始寻求与行业内其他企业的战略合作。公司通过与多家知名企业建立紧密的合作关系,共同研发和推广新技术产品,成功将业务扩展到全球市场。这些战略合作不仅拓宽了公司的市场渠道,也提升了公司的品牌影响力和市场竞争力。同时,通过与合作伙伴的深入交流和学习,公司不断吸收新的技术和理念,为自身的创新和发展注入了新的活力。

Charcroft Electronics Ltd公司的发展小趣事

在电子行业的早期,Charcroft Electronics Ltd公司以其对新兴技术的敏锐洞察力和创新研发能力脱颖而出。公司不断投入研发资源,开发出一系列具有竞争力的电子元器件产品,这些产品以其优异的性能和稳定性赢得了市场的广泛认可。同时,公司还积极与高校和研究机构合作,共同探索新的技术应用领域,为公司的长远发展奠定了坚实的基础。

问答坊 | AI 解惑

我爱龙芯

    很关注自己国家的芯片的动态,特别让我们感动的是我们自己的芯------龙芯。关于龙芯,对于我而言,了解的也许只是浅在的,并不是从技术层面的。我是学电子的,所对对于中国的电子业发展状况,绝对比一般的局外人看的清楚一些,可以豪 ...…

查看全部问答>

PCB技术---资料集

PCB技术---资料集…

查看全部问答>

单片机串口波特率的计算方法

我刚开始学习单片机,请问单片机串口波特率怎么计算,见笑了。…

查看全部问答>

2440VGA输出配置

我用CH7005将LCD信号转换成VGA输出,在640*480分辨率下能在VGA输出,但是在800*600分辨率下不能输出。 640*480分辨率的相关注册表配置如下:(谢谢知道的大侠指点下这些该怎么配置,下面的配置是借别人的配置)\"Clkval_TFT\"= DWORD:1 \"vbpd\" ...…

查看全部问答>

keil uvision3 device list 里面没有LPC2148 想自己添加

keil uvision3 device list 里面没有LPC2148 想自己添加,但是在添加菜单里面不知道,最后options 应该怎么写,我是菜鸟高手帮帮忙,谢谢各位…

查看全部问答>

请问EPM7128SQC100-15中各个各个数字的含义

如题,用CPLD做译码器,在选器件的时不明白其命名含义,例如EPM7128SQC100-15,最后的QC100-15中,代表的含义是什么呢?…

查看全部问答>

动态改变占空比加上刹车功能就有问题

我做了一个动态改变占空比的程序  现在要加上刹车功能  故障时封锁SPWM输出   但是我一使能刹车   SPWM就出不来   高手帮忙看一下  我哪设置不对吗 修给占空比我是在 TIM5的 ...…

查看全部问答>

分享 LM3S2965-EVM开发版原理图和用户手册

TI Cortex-M3 LM3S2965-EVM开发板用户手册与原理图,供大家参考! [ 本帖最后由 microli 于 2011-8-14 21:01 编辑 ]…

查看全部问答>

AVR重复定义 大家帮帮忙

我刚刚初学A V R 是一个新手  用的是AVR studio4 昨天买来单片机开发板,看着视频做 我把他的示例文件  自己用手动输了一遍  提示gcc plug-in: Error: Object file not found on expected location D:\\cyuyan\\de ...…

查看全部问答>

求个16*64的LED点阵汉字显示 显示模式可以变换的 谢谢啊 急急急

我目前正在做  问题是遇到瓶颈了  想从做好的程序或者电路图里获得一些思考和想法  谢谢 16*64的LED点阵汉字显示 显示模式可以变换的  就是左移右移 模式通过按键可以变化的…

查看全部问答>