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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

小車跑不了直線?是怎么回事

  [復制鏈接]
跳轉到指定樓層
樓主
#include<reg52.h>  
#define uchar unsigned char  
#define V_TH  0XFF  
#define V_TL  0XF6  
#define V_TMOD 0X01  

void init_sys(void);            /*系統初始化函數*/  
void f_left();  //前進左轉  
void f_right(); //前進右轉  
void b_left();  //后退左轉  
void b_right(); //后退右轉  
void forward(); //前進  
void back();    //后退  
void stop();    //停止  

//控制小車正反轉  
sbit IN1 = P0 ^ 0;  
sbit IN2 = P0 ^ 1;  
sbit IN3 = P0 ^ 2;  
sbit IN4 = P0 ^ 3;  
//控制小車轉速  
sbit ENA = P2 ^ 0;  
sbit ENB = P2 ^ 1;  

uchar ZKB1 = 80, ZKB2 = 80; //控制輪子轉速  
uchar tmp;  //存放串口數據  
void main (void)  
{  
    init_sys();  
    ENA = 0;  
    ENB = 0;  
    ZKB1 = 90;  
    ZKB2 = 90;  
    IN1 = 0;  
    IN2 = 0;  
    IN3 = 0;  
    IN4 = 0;  
    TMOD |= 0x20;           // 定時器1工作于8位自動重載模式, 用于產生波特率  
    TH1 = 0xFD;             // 波特率9600  
    TL1 = 0xFD;  
    SCON = 0x50;            // 設定串行口工作方式  
    PCON &= 0xef;           // 波特率不倍增  
    TR1 = 1;                // 啟動定時器1  
    while(1)  
    {  

        if(RI)                      // 是否有數據到來  
        {  
            RI = 0;  
            tmp = SBUF;             // 暫存接收到的數據  
            switch(tmp)  
            {  
            case 'a':  
                forward();  
                break;  
            case 'b':  
                back();  
                break;  
            case 'c':  
                f_left();  
                break;  
            case 'd':  
                f_right();  
                break;  
            case 'e':  
                b_left();  
                break;  
            case 'f':  
                b_right();  
                break;  
            case 'g':  
                stop();  
                break;  
            }  
        }  
    }  
}  
/******************************************************
*函數功能:對系統進行初始化,包括定時器初始化和變量初始化*/  
void init_sys(void)            /*系統初始化函數*/  
{  
    /*定時器初始化*/  
    TMOD = V_TMOD;  
    TH0 = V_TH;  
    TL0 = V_TL;  
    TR0 = 1;  
    ET0 = 1;  
    EA = 1;  
}  
/*********************************************
*函數功能:控制方向*/  

void forward()  
{  
    IN1 = 1;  
    IN2 = 0;  
    IN3 = 1;  
    IN4 = 0;  
}  
void back()  
{  
    IN1 = 0;  
    IN2 = 1;  
    IN3 = 0;  
    IN4 = 1;  
}  
void f_left()  
{  
    ZKB1 = 90;  
    ZKB2 = 45;  
    IN1 = 1;  
    IN2 = 0;  
    IN3 = 1;  
    IN4 = 0;  
}  
void f_right()  
{  
    ZKB1 = 45;  
    ZKB2 = 90;  
    IN1 = 1;  
    IN2 = 0;  
    IN3 = 1;  
    IN4 = 0;  
}  
void b_left()  
{  
    ZKB1 = 90;  
    ZKB2 = 45;  
    IN1 = 0;  
    IN2 = 1;  
    IN3 = 0;  
    IN4 = 1;  
}  
void b_right()  
{  
    ZKB1 = 45;  
    ZKB2 = 90;  
    IN1 = 0;  
    IN2 = 1;  
    IN3 = 0;  
    IN4 = 1;  
}  
void stop()  
{  
    IN1 = 1;  
    IN2 = 1;  
    IN3 = 1;  
    IN4 = 1;  
}  
/********************************************************
/*中斷函數*/  
void timer0(void) interrupt 1 using 2  
{  
    static uchar click = 0;                /*中斷次數計數器變量*/  
    TH0 = V_TH;                                  /*恢復定時器初始值*/  
    TL0 = V_TL;  
    ++click;  

    if (click >= 100) click = 0;  

    if (click <= ZKB1)     /*當小于占空比值時輸出高電平,高于時是低電平,從而實現占空比的調整*/  
    {  
        ENA = 1;  
    }  

    if (click > ZKB1)  
    {  
        ENA = 0;  
    }  

    if (click <= ZKB2)     /*當小于占空比值時輸出高電平,高于時是低電平,從而實現占空比的調整*/  
    {  
        ENB = 1;  
    }  

    if (click > ZKB2)  
    {  
        ENB = 0;  
    }  

}  

1497069302039.jpg (3.75 MB, 下載次數: 121)

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

使用道具 舉報

沙發
ID:177855 發表于 2017-6-10 14:01 | 只看該作者
湊個熱鬧。
回復

使用道具 舉報

板凳
ID:123289 發表于 2017-6-10 18:09 | 只看該作者
先不考慮程序,你的車子能跑直線嗎?
回復

使用道具 舉報

地板
ID:209916 發表于 2017-6-10 19:36 | 只看該作者
可以考慮使用PID算法
回復

使用道具 舉報

5#
ID:189134 發表于 2017-6-10 22:20 | 只看該作者
2輪的因為左右兩邊電機轉速不一致,基本上走不了直線,采用增量PID控制電機轉速可以是走的曲線平滑一點
回復

使用道具 舉報

6#
ID:209976 發表于 2017-6-10 23:09 | 只看該作者
占樓 湊個熱鬧
回復

使用道具 舉報

7#
ID:164602 發表于 2017-6-11 09:26 | 只看該作者
一般在小車,在沒有限制條件時(如尋跡等),是跑不了直線的!!!
因為:(這就是技術與科學的區別了!)
第一:你以為給電機的電壓是“絕對”——就是絕對一樣嗎?
第二:你的電機絕對一樣嗎?
第三:你啟動電機的時間絕對一樣嗎?
第四:電車的輪子與地面的抓地力絕對一樣嗎?這個涉及小車重心在絕對中心嗎?輪子受到壓力絕對一樣嗎?等等
第五:地面絕對一樣平整嗎?
.................
不說了,你要生氣了。
在課本中說的科學,都是理想化的,你做技術,就是具體化的,以前書上的題,不能拿到這里來用。而且,我們用的模塊,本身便宜,精度就不是很高。
所以,正常情況下,小車自己走不了直線。
像樓上說的,你要讓小車走直線,得加好多傳感器才行。如:測個速,但千萬不要以為測出、調節到一樣的速度,小車就走直線了(平整路面差不多了),輪子打不打滑呢等等。
之所以我能說這么多,也是有經歷的。原來我也想搞這個,咨詢了專業人士,這些都是專業人士說的,還說這本身就是一個大大的研究課題。我放棄了。沒辦法,我沒那個能力。呵呵

評分

參與人數 1黑幣 +80 收起 理由
admin + 80 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

8#
ID:210066 發表于 2017-6-11 12:59 | 只看該作者
看個熱鬧
回復

使用道具 舉報

9#
ID:173860 發表于 2017-6-11 17:15 | 只看該作者
謝謝大家了,我用四輪的會好點下次搞個試試。
回復

使用道具 舉報

10#
ID:173860 發表于 2017-6-19 09:22 | 只看該作者
大家好,我用另外一個程序小車可以走直,這個走不了。我說的走直線不是直線是正常的前進后退。
回復

使用道具 舉報

11#
ID:182758 發表于 2017-6-19 09:58 | 只看該作者
加油~湊個熱鬧,
回復

使用道具 舉報

12#
ID:182758 發表于 2017-6-19 09:59 | 只看該作者
用增益式PID算法試試
回復

使用道具 舉報

13#
ID:201524 發表于 2017-6-19 10:42 | 只看該作者
要實現什么功能呢
回復

使用道具 舉報

14#
ID:212679 發表于 2017-6-19 18:48 | 只看該作者
學習學習
回復

使用道具 舉報

15#
ID:212711 發表于 2017-6-19 20:23 | 只看該作者
湊個熱鬧
回復

使用道具 舉報

16#
ID:212474 發表于 2017-6-20 11:32 | 只看該作者
排除程序問題的話,很有可能是兩個輪子或電機不平行,有一定誤差,會導致小車越跑越偏。
回復

使用道具 舉報

17#
ID:110734 發表于 2017-6-20 16:43 | 只看該作者
1.小車的輪子是否直徑絕對相一致?2.程序的運行時間你看看有沒有問題?
回復

使用道具 舉報

18#
ID:173860 發表于 2017-6-23 13:06 來自手機 | 只看該作者
三輪小車,視頻上不了。

IMG_20170617_154844.jpg (110.5 KB, 下載次數: 80)

IMG_20170617_154844.jpg
回復

使用道具 舉報

19#
ID:212728 發表于 2017-6-23 18:00 來自手機 | 只看該作者
HC6800-ES-V2.0 發表于 2017-6-11 09:26
一般在小車,在沒有限制條件時(如尋跡等),是跑不了直線的!!!
因為:(這就是技術與科學的區別了!) ...

好厲害的樣子,長見識了,原來還有這么多的問題
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久一区二区三区四区 | 日韩视频中文字幕 | 亚洲一区二区三区四区av | 一区二区三区在线看 | 91精品国产综合久久精品图片 | 91色站| 亚洲一二三区精品 | 国产一区三区在线 | 一区二区三区免费网站 | 亚洲欧洲视频 | 国产精品色 | 天天久 | 亚洲精品9999 | 日韩国产一区二区三区 | 天堂在线免费视频 | 一级毛片观看 | 亚洲国产一区二区三区 | 亚洲精品www | 福利影院在线看 | 精区3d动漫一品二品精区 | 视频一二区 | 亚洲国产精品一区 | 亚洲一二三区精品 | 麻豆av在线免费观看 | 精品免费国产 | 国产福利视频 | 精品国产一区二区三区性色av | 国产精品自产拍 | 一区二区三区免费 | 欧美一级片在线播放 | 一级在线毛片 | 欧美在线一区二区三区 | 中文精品视频 | 欧美色专区 | 亚洲伦理自拍 | 九九综合九九 | 国产不卡一区 | 久久国产亚洲精品 | 91精品国产综合久久久久久丝袜 | 中文字幕欧美日韩一区 | 91资源在线观看 |