99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于MSP430F5529的紅外循跡小車設(shè)計(jì)

CHANBAEK ? 來源:俗人chao ? 作者:俗人chao ? 2023-03-10 11:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

實(shí)現(xiàn)功能

第一功能:

小車從A點(diǎn)開始出發(fā),行駛到B點(diǎn)停止。

第二功能:

小車從A點(diǎn)開始出發(fā),然后沿跑道一直行駛。

下圖為黑色跑道,跑道為2mm的黑線,A、B、C、D四點(diǎn)為直徑4mm的黑圈。

設(shè)計(jì)方案

小車選用MSP430F5529做為主控芯片,TCRT5000紅外循跡模塊用來實(shí)現(xiàn)小車識(shí)別跑道功能,原理為紅外發(fā)射判斷黑白線以及區(qū)分黑線寬度,電機(jī)使用兩個(gè)直流電機(jī),電機(jī)驅(qū)動(dòng)模塊選用TB6612,來實(shí)現(xiàn)實(shí)時(shí)控制電機(jī)轉(zhuǎn)動(dòng)的幅度與轉(zhuǎn)速。

設(shè)計(jì)電路

接線詳解

將MSP430F5529的P3.0、P3.1、P3.2引腳分別與3個(gè)TCRT5000模塊的DO端相連,芯片實(shí)時(shí)檢測(cè)這3個(gè)端口的電平,當(dāng)發(fā)生電平跳變時(shí),電機(jī)運(yùn)行就會(huì)做出相對(duì)應(yīng)的調(diào)整,而控制電機(jī)轉(zhuǎn)速的是P1.3與P2.0引腳,它們與TB6612模塊的PWMA、PWMB引腳相連,原理是通過改變占空比來實(shí)現(xiàn)。P1.2、P1.4、P1.5三個(gè)引腳通過撥碼開關(guān)與GND相連,用來實(shí)現(xiàn)對(duì)三個(gè)行駛模式的分開控制,P2.2需要拉高(啟動(dòng)時(shí))所以圖中沒畫。

模式詳解

三個(gè)撥碼開關(guān)分別控制三個(gè)模式,第一個(gè)模式為第一個(gè)實(shí)現(xiàn)功能即B點(diǎn)停,第二個(gè)模式為第二個(gè)實(shí)現(xiàn)功能即小車一直行駛,第三個(gè)模式為小車定時(shí)60秒后開始一直行駛。

設(shè)計(jì)代碼

#include 


int liftbi=0,rightbi=0;


unsigned int temp=0;


void GPIO_init(void)
{


    P3DIR &=~(BIT0+BIT1+BIT2+BIT3);  
    P3REN |= (BIT0+BIT1+BIT2+BIT3);  
    P3OUT &=~(BIT0+BIT1+BIT2+BIT3);


    P2DIR &=~(BIT2);    
    P2OUT &=~(BIT2);


    P1DIR |= BIT0;       
    P1OUT |= BIT0;     
    P1REN |= (BIT1+BIT2+BIT4+BIT5);    
    P1OUT |= (BIT1+BIT2+BIT4+BIT5);    
    P1DIR &=~(BIT1+BIT2+BIT4+BIT5);      
    P1DIR |= BIT6;
}


void Motor_L(float left)
{
    TA0CCR2 = left;   
}


void Motor_R(float right)
{
    TA1CCR1 = right;  
}


void MotorSet(float L, float R)
{
    Motor_L(L);
    Motor_R(R);
}


void mode_0()
{
    long i,j;
    if((P3IN|0xf0)==0xf0) 
    MotorSet(37,23);
    if((P3IN|0xf0)==0xf1)
    MotorSet(37,0);
    if(((P3IN|0xf0)==0xf2))
    MotorSet(37,23);
    if((P3IN|0xf0)==0xf4)  
    MotorSet(0,23);
    if((P3IN|0xf0)==0xf3)  
    {
        MotorSet(37,23);
        for(i=0;i<30000;i++);
        MotorSet(0,0);
    }
    if((P3IN|0xf0)==0xf6)  
    {
        MotorSet(37,23);
        for(j=0;j<30000;j++);
        MotorSet(0,0);
    }
}


void mode_1()
{
    while(1)
    {
        if((P3IN|0xf0)==0xf0)   
        MotorSet(37,23);
        if((P3IN|0xf0)==0xf1)   
        MotorSet(37,0);
        if(((P3IN|0xf0)==0xf2)) 
        MotorSet(37,23);
        if((P3IN|0xf0)==0xf4)   
        MotorSet(0,23);
        if((P3IN|0xf0)==0xf3)  
        MotorSet(38,23);
        if((P3IN|0xf0)==0xf6)   
        MotorSet(38,23);
    }
}


void P12_Onclick()   
{
    while(1)
    {
       mode_0();
    }
}


void P14_Onclick()   
{
    while(1)
    {
        mode_1();
    }
}


void P15_Onclick()    
{
    TA2CCR0 = 32760;                
    TA2CCTL0 = CCIE;                          
    TA2CTL = TASSEL_1 + MC_1 + TACLR;         
       // _enable_interrupts();
        _BIS_SR(LPM3_bits + GIE);
    while(1)
    {
    }
}


void main(void)
{
    volatile unsigned int i; 
    WDTCTL = WDTPW + WDTHOLD; 
    P1DIR |=BIT3; 
    P1SEL |=BIT3;
    P2DIR |=BIT0; 
    P2SEL |=BIT0; 
    TA0CCR0 = 50;
    TA0CCTL2 = OUTMOD_7; 
    TA1CCR0 = 50; 
    TA1CCTL1 = OUTMOD_7;


    TA0CTL= TASSEL_2 +MC_1;
    TA1CTL= TASSEL_2 +MC_1;
    TA0CCR2=liftbi;   
    TA1CCR1=rightbi;   
    GPIO_init();


// _bis_SR_register(LPM3_bits); 
    while(1)
    {
        if((P2IN|0xFB)==0XFF) 
            P2OUT &=~BIT2;   
        if((P1IN&0x04)==0x00) 
        {
            if((P2IN|0xFB)==0XFF) 
            {
                P12_Onclick();
            }
        }
        if((P1IN&0x10)==0x00)
        {
            if((P2IN|0xFB)==0XFF)
            P14_Onclick();
        }
        if((P1IN&0x20)==0x00)
        {
            if((P2IN|0xFB)==0XFF)
            P15_Onclick();
        }
    }
}
#pragma vector = TIMER2_A0_VECTOR
__interrupt void Timer_A(void)            
{
    temp++;
    if(temp>=60)
    {
        mode_1();
    }
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 電機(jī)
    +關(guān)注

    關(guān)注

    143

    文章

    9275

    瀏覽量

    149002
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    1676

    瀏覽量

    52668
  • 小車
    +關(guān)注

    關(guān)注

    0

    文章

    55

    瀏覽量

    21279
  • 驅(qū)動(dòng)模塊
    +關(guān)注

    關(guān)注

    0

    文章

    65

    瀏覽量

    14423
  • MSP430F5529
    +關(guān)注

    關(guān)注

    12

    文章

    54

    瀏覽量

    20601
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    怎樣去設(shè)計(jì)一種基于MSP430F5529的兩路尋跡小車

    、STM32或者MSP430單片機(jī)都應(yīng)該必須會(huì)的。主要器件在這里筆者分享一下自己做的尋跡小車:主控使用Ti官方的MSP430F5529,相比G2553,F5529引腳功能比較多些,其他
    發(fā)表于 09-02 07:52

    怎樣去設(shè)計(jì)一種基于MSP430F5529紅外循跡小車

    MSP430F5529做為主控芯片,TCRT5000紅外循跡模塊用來實(shí)現(xiàn)小車識(shí)別跑道功能,原理為紅外發(fā)射判斷黑白線以及區(qū)分黑線寬度,電機(jī)使用
    發(fā)表于 11-29 07:43

    如何去實(shí)現(xiàn)一種基于MSP430f5529紅外循跡小車設(shè)計(jì)

    #include "msp430f5529.h" void qj() //前進(jìn) { P3OUT &=~ BIT0; P3OUT |=BIT1; P2OUT &
    發(fā)表于 02-15 06:09

    msp430f5529例程

    msp430f5529例程msp430f5529例程msp430f5529例程msp430f5529例程msp430f5529例程
    發(fā)表于 01-19 14:35 ?122次下載

    msp430f5529數(shù)據(jù)手冊(cè)

    msp430f5529數(shù)據(jù)手冊(cè) 有需要的下來看看。
    發(fā)表于 02-16 18:30 ?152次下載

    MSP430F5529例程

    MSP430F5529例程
    發(fā)表于 03-16 08:37 ?74次下載

    msp430f5529芯片數(shù)據(jù)手冊(cè)

    msp430f5529芯片數(shù)據(jù)手冊(cè)
    發(fā)表于 09-21 09:32 ?63次下載
    <b class='flag-5'>msp430f5529</b>芯片數(shù)據(jù)手冊(cè)

    TI培訓(xùn):MSP430F5529的使用與開發(fā)

    TI培訓(xùn):MSP430F5529的使用與開發(fā)
    發(fā)表于 10-15 09:46 ?107次下載
    TI培訓(xùn):<b class='flag-5'>MSP430F5529</b>的使用與開發(fā)

    msp430f5529原理圖

    MSP430F5529是最新一代的具有集成USB的超低功耗單片機(jī),可以應(yīng)用于能量收集、無線傳感以及自動(dòng)抄表等場(chǎng)合,是最低工作功耗的單片機(jī)之一。MSP430F5529開發(fā)板
    發(fā)表于 10-23 16:07 ?3.3w次閱讀

    MSP430F5529 Device Erratasheet

    MSP430F5529 Device Erratasheet
    發(fā)表于 12-08 17:03 ?6次下載

    基于MSP430F5529紅外循跡小車

    ;nbsp;   小車選用MSP430F5529做為主控芯片,TCRT5000紅外循跡模塊用來實(shí)現(xiàn)小車識(shí)別跑道
    發(fā)表于 11-19 19:51 ?23次下載
    基于<b class='flag-5'>MSP430F5529</b>的<b class='flag-5'>紅外</b><b class='flag-5'>循跡</b><b class='flag-5'>小車</b>

    基于MSP430F5529的兩路尋跡小車附OLED顯示代碼

    、STM32或者MSP430單片機(jī)都應(yīng)該必須會(huì)的。主要器件在這里筆者分享一下自己做的尋跡小車:主控使用Ti官方的MSP430F5529,相比G2553,F5529引腳功能比較多些,其他
    發(fā)表于 12-04 21:06 ?25次下載
    基于<b class='flag-5'>MSP430F5529</b>的兩路尋跡<b class='flag-5'>小車</b>附OLED顯示代碼

    基于MSP430f5529紅外循跡小車

    #include "msp430f5529.h" void qj() //前進(jìn) { P3OUT &=~ BIT0; P3OUT |=BIT1; P2OUT &=~ BIT0
    發(fā)表于 12-16 16:54 ?13次下載
    基于<b class='flag-5'>MSP430f5529</b>的<b class='flag-5'>紅外</b><b class='flag-5'>循跡</b><b class='flag-5'>小車</b>

    【庫函數(shù)】MSP430F5529 按鍵消抖

    MSP430F5529 按鍵消抖實(shí)現(xiàn)
    發(fā)表于 12-16 16:55 ?20次下載
    【庫函數(shù)】<b class='flag-5'>MSP430F5529</b> 按鍵消抖

    MSP430F5529軟件模擬IIC協(xié)議

    MSP430F5529軟件模擬IIC協(xié)議
    發(fā)表于 11-24 16:35 ?0次下載