久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6643|回復: 4
打印 上一主題 下一主題
收起左側

基于51單片機控制的輪式循跡小車設計資料

[復制鏈接]
跳轉到指定樓層
樓主
ID:470939 發表于 2019-1-21 15:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 一寸灰 于 2019-1-30 12:38 編輯

●這里的循跡是指小車在白色地面上 沿著黑線走;
●傳感器利用不同顏色的物體表面有不同反射性的特點:白色地面發生漫反射,黑色則被吸收。
小車的組成結構
• 硬件部分
紅外傳感器
驅動*2
杜邦線*若干
51最小系統*1
螺絲卡簧固定片亞克力板底盤
• 軟件部分:
keil軟件所寫的c語言程序,控制51單片機


傳感器:
在小車行駛過程中傳感器不斷地向地面發射紅外光,紅外光遇到白色地板發生漫反射,反射光被傳感器的接收管接受;遇到黑色紅外光會被吸收 單片機以此確定黑線的位置來控制小車的行走路線。循跡51最小系統原理圖:



因為所用的L298N驅動模塊上有5V穩壓端,所以最小系統上面可以不需要穩壓電路,直接用驅動供電即可。

下面是可以簡單循跡的源代碼:
#include <reg52.h>
#include "include.h"

unsigned char pwm_val =0;//變量定義
unsigned char val_left =15;// 左電機占空比N/20 //速度調節變量 0-20。。。0最小,20最大  
bit PWM_ON=1;//電機PWM開關

/***************PWM電機轉速***************/         

void pwm_moto(void)
{  
     if(PWM_ON)
     {
          if(pwm_val <= val_left)
              {                          
                               
                                 if(LIN1==1&&LIN2==1&&RIN1==1&&RIN2==1)
                             {  LOUT1 = 0  ;LOUT2 =  1 ;ROUT1 = 1 ;ROUT2 =  0        ;}                                                       
                                else if(LIN1==0&&LIN2==1&&RIN1==1&&RIN2==1)
                              {  LOUT1 = 1  ;LOUT2 = 0  ;ROUT1 = 1 ;ROUT2 =  0        ;}//快左拐
                          else if(LIN1==0&&LIN2==0&&RIN1==1&&RIN2==1)
                                        {  LOUT1 = 1  ;LOUT2 = 0  ;ROUT1 = 1 ;ROUT2 =  0        ;}//快左拐
                                else if(LIN1==1&&LIN2==0&&RIN1==1&&RIN2==1)
                                        {  LOUT1 = 0 ;LOUT2 = 0  ;ROUT1 = 1 ;ROUT2 =  0        ;}//慢左拐
                                else if(LIN1==1&&LIN2==1&&RIN1==0&&RIN2==1)
                                        CarTurnRight_Low();//慢右拐
                                else if(LIN1==1&&LIN2==1&&RIN1==1&&RIN2==0)
                                        {  LOUT1 = 0  ;LOUT2 = 1  ;ROUT1 = 0 ;ROUT2 =  1        ;}//快右拐
                                                else if(LIN1==0&&LIN2==0&&RIN1==1&&RIN2==1)
                                        {  LOUT1 = 0  ;LOUT2 = 1  ;ROUT1 = 0 ;ROUT2 =  1        ;}//快右拐
                                else if((LIN1==0&&LIN2==0&&RIN1==1&&RIN2==0)||(LIN1==0&&LIN2==1&&RIN1==0&&RIN2==1)||(LIN1==1&&LIN2==0&&RIN1==0&&RIN2==1))
                                {  LOUT1 = 0  ;LOUT2 =  1 ;ROUT1 = 1 ;ROUT2 =  0        ;}
              }
              else
              {
                   LOUT1 = 0  ;LOUT2 = 0  ;ROUT1 = 0 ;ROUT2 =  0        ;
          }
          if(pwm_val>=20)
                      pwm_val=0;
     }
     else   
     {
         LOUT1 = 0  ;LOUT2 = 0  ;ROUT1 = 0 ;ROUT2 =  0        ;
     }
}

void main()
{
        P2=0X00;    //關電機       
//        delay(1000);

        TMOD=0X01;
    TH0= 0XFC;//0xFF;//0.25ms 定時//0XFC;  //1ms定時
    TL0= 0X66;//0x1A;//0X66;
    TR0= 1;
    ET0= 1;
        EA = 1;            //開總中斷
        while(1)        //無限循環  無黑線為零全亮0 有黑線燈滅為一
        {  //作用當為直道時 無調速即全速前進   彎道時有調速
                if(LIN1==0&&LIN2==0&&RIN1==0&&RIN2==0)
                        {PWM_ON = 0; CarGoAhead();}                                                               
                else
                        {PWM_ON = 1;}
        }
}

//TIMER0中斷服務子函數產生PWM信號
void timer0()interrupt 1
{
     TH0=0XFC;          //1Ms定時
         TL0=0X66;
         pwm_val++;
         pwm_moto();
}


//定義小車光電模塊輸入IO口
sbit LIN1 = P1^0;         //左循跡紅外傳感器
sbit LIN2 = P1^1;
sbit RIN1 = P1^2;         //右循跡紅外傳感器
sbit RIN2 = P1^3;

//定義小車電機驅動模塊輸出IO口
sbit LOUT1 = P2^0;//LIN1 LIN3  IN1 IN2 電機1的轉速和方向
sbit LOUT2 = P2^1;//LIN2 LIN4  IN3 IN4 電機2的轉速和方向
sbit ROUT1 = P2^2;//RIN1 RIN3
sbit ROUT2 = P2^3;//RIN2 RIN4

//#define Left_moto_go      {LOUT1 = 0,LOUT2 = 1;}   //左邊電機正轉
//#define Left_moto_back    {LOUT1 = 1,LOUT2 = 0;}   //左邊電機反轉
//#define Left_moto_Stop    {LOUT1 = 0,LOUT2 = 0;}   //左邊電機停轉

//#define Right_moto_go     {ROUT1 = 1,ROUT2 = 0;}   //右邊電機正轉
//#define Right_moto_back   {ROUT1 = 0,ROUT2 = 1;}   //右邊電機反轉
//#define Right_moto_Stop   {ROUT1 = 0,ROUT2 = 0;}   //右邊電機停轉

//void delay(unsigned int xms)                               
//{
//    unsigned int i,j;
//        for(i=xms;i>0;i--)                      //i=xms即延時約xms毫秒
//    for(j=112;j>0;j--);
//}

void CarGoAhead(void)//快進(P1=0000 1010  P1=0x0A)
{
//        Left_moto_go;  
//        Right_moto_go;
LOUT1 = 0  ;
LOUT2 = 1  ;
ROUT1 = 1 ;
ROUT2 =  0        ;
}

//void CarBack(void)//快退(P1=0000 0101  P1=0x05)
//{
//        Left_moto_back;
//        Right_moto_back;
//}

void CarTurnLeft_Low(void)//慢左拐(P1=0000 1000  P1=0x08)
{
//        Left_moto_Stop;
//        Right_moto_go;
LOUT1 = 0  ;
LOUT2 = 0  ;
ROUT1 = 1 ;
ROUT2 =  0        ;
}

void CarTurnLeft_High(void)//快左拐(P1=0000 1001  P1=0x09)
{
//        Left_moto_back;
//        Right_moto_go;
LOUT1 = 1  ;
LOUT2 = 0  ;
ROUT1 = 1 ;
ROUT2 =  0        ;
}

void CarTurnRight_Low(void)//慢右拐(P1=0000 0010  P1=0x02)
{
//        Left_moto_go;
//        Right_moto_Stop;
LOUT1 = 0  ;
LOUT2 = 1  ;
ROUT1 = 0 ;
ROUT2 =  0        ;
}

void CarTurnRight_High(void)//快右拐(P1=0000 0110  P1=0x06)
{
//        Left_moto_go;
//        Right_moto_back;
        LOUT1 = 0  ;
LOUT2 = 1  ;
ROUT1 = 0 ;
ROUT2 =  1        ;
}



0.png (87.85 KB, 下載次數: 158)

0.png

0.png (57.93 KB, 下載次數: 136)

0.png

51循跡.pdf

1.72 MB, 下載次數: 46, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2019-1-25 03:23 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

板凳
ID:436177 發表于 2019-3-24 09:13 | 只看該作者
店家,能不能打個包?
回復

使用道具 舉報

地板
ID:541789 發表于 2019-5-19 00:06 來自手機 | 只看該作者
師父。。。^O^
回復

使用道具 舉報

5#
ID:614922 發表于 2019-9-27 19:13 | 只看該作者
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人亚洲精品 | 欧美一区二区三区电影 | av网站在线播放 | 亚洲网站在线播放 | 日日摸夜夜爽人人添av | 亚洲一区二区视频 | 欧美精品在线免费观看 | 一区二区三区免费 | 成年人网站国产 | 欧美在线视频不卡 | 亚洲精品一区二区三区在线 | 亚洲网站在线播放 | 亚洲a在线观看 | 天天摸天天看 | 日韩高清av | 懂色av色香蕉一区二区蜜桃 | 黄色片亚洲 | 亚洲国产精品人人爽夜夜爽 | 成人精品久久日伦片大全免费 | 懂色中文一区二区在线播放 | 日本中文字幕在线观看 | 亚洲视频免费 | 久久久久久久久久影视 | 欧美精品1区2区 | 亚洲精品国产电影 | 亚洲黄色网址视频 | 国产一二三区精品视频 | 综合网在线 | 成人免费福利 | 91av在线影院 | 91av亚洲| 中文字幕免费 | 亚洲一区二区三区视频免费观看 | 美国一级片在线观看 | 亚洲精品一区在线观看 | 精品九九久久 | 欧美成人免费电影 | 久久精品欧美视频 | 国产成人久久精品一区二区三区 | 天天操天天插 | 在线亚州 |