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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC89c52rc單片機藍牙驅動小車,求指導 想做一個親手做的玩具

[復制鏈接]
跳轉到指定樓層
樓主
ID:727019 發表于 2020-4-11 19:00 來自手機 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
萌新一枚,之前從來沒接觸過這些,只是想給剛出生不久的兒子做一個親手做的玩具,如圖接好線還好東西都沒燒,用手機藍牙控制,但是電機不轉,是什么原因啊,有大佬時間充裕的指導一下小弟好么?

IMG_20200411_185442.jpg (1.46 MB, 下載次數: 127)

IMG_20200411_185442.jpg

IMG_20200411_185433.jpg (1.65 MB, 下載次數: 118)

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

使用道具 舉報

沙發
ID:727019 發表于 2020-4-11 19:03 | 只看該作者
/*
藍牙小車程序
T0產生PWM控制舵機,T1用于串口通信
舵機330hz
*/
#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int

sbit PWM=P1^0;          //舵機控制端口
sbit in1=P2^0;         //電機控制端口1
sbit in2=P2^1;         //電機控制端口2
sbit in3=P2^2;         //電機控制端口3
sbit in4=P2^3;         //電機控制端口4


uint time=0,jd;
uchar a;

void InitUART() //串口初始化
{
        TMOD = 0x21;
        PCON = 0x00;
        SCON = 0x50;  
    TH1 = 0xFD;        //T1 波特率9600
    TL1 = 0xFD;
        TR1 = 1;
        TH0  = 0xFF;//T0 0.01ms
        TL0  = 0xF6;
        TR0 = 1;
        ES = 1;
        PS = 1;
        ET0 = 1;
        EA = 1;
       
}

void main ()
{
        InitUART();       
        while (1);
}

void Time0_Int() interrupt 1 //中斷程序 1
{
        TR0=0;
        TH0=0xFF;
        TL0=0xF6;
        TR0=1;
        time++;
        if(time>300)
        time=0;         //303個周期  330hz
        if (time<=jd)
        PWM=1;
        else
        PWM=0;
       
}

void UARTInterrupt () interrupt 4  //中斷程序 4
{

if(RI==1)
    {
            RI = 0;
                a = SBUF;
                if (a == '0')  //前進
                {
                        in1=1;
                        in2=0;
                        in3=1;
                        in4=0;

                }
                if (a == '1')           //后退
                {
                        in1=0;
                        in2=1;
                        in3=0;
                        in4=1;
                }
                if (a == '2')                //停止
                {
                        in1=1;
                        in2=1;
                        in3=1;
                        in4=1;
                }
                if(a == '3')                //左轉
                {           
                        jd=22;
                }
                if(a == '4')                //右轉
                {          
                        jd=34;
                }
                if(a == '5')                 //回中
                {          
                        jd=28;                         
                }                        
        }  
       
}

回復

使用道具 舉報

板凳
ID:727019 發表于 2020-4-11 19:05 | 只看該作者
已經研究了2.3天了,頭都搞大了,如果不是實在想不出來,也不想麻煩大佬們啊
回復

使用道具 舉報

地板
ID:727019 發表于 2020-4-11 20:21 來自手機 | 只看該作者
哪位大佬幫幫忙啊
回復

使用道具 舉報

5#
ID:367369 發表于 2020-4-11 21:26 | 只看該作者
你先把   in1 in2 in3    in4      
直接在main函數中賦值,看電機是否轉動
void   main ()
{
                        in1=1;
                        in2=0;
                        in3=1;
                        in4=0;

}

然后藍牙接電腦上面看看收到的手機指令是否正確
回復

使用道具 舉報

6#
ID:283908 發表于 2020-4-11 22:40 | 只看該作者
是不是while()要運行藍牙發過來的東西
比例:
void Remote()
{
        switch(a)
        {
                case 0X02:        停車函數 (  );        break;        //停車
                case 0X00:        前進函數();        break;        //前進
        }       
}



void main ()
{
        InitUART();        
        while (1)
     {
         Remote();
     }
}
還有波特率9600、主板晶振是不是11.0592
藍牙的波特率也要設置在9600

回復

使用道具 舉報

7#
ID:727019 發表于 2020-4-11 23:15 來自手機 | 只看該作者
game灬boy 發表于 2020-4-11 21:26
你先把   in1 in2 in3    in4      
直接在main函數中賦值,看電機是否轉動
void   main ()

你的意思是把程序修改一下試試么,就是把你發的這個插入到括號里是么
回復

使用道具 舉報

8#
ID:727019 發表于 2020-4-11 23:17 來自手機 | 只看該作者
神蜂 發表于 2020-4-11 22:40
是不是while()要運行藍牙發過來的東西
比例:
void Remote()

前面的程序我看的不太懂,但是最后那個中文我燒程序時注意了,都是吻合的
回復

使用道具 舉報

9#
ID:283908 發表于 2020-4-12 08:16 | 只看該作者
yuhui1023 發表于 2020-4-11 23:17
前面的程序我看的不太懂,但是最后那個中文我燒程序時注意了,都是吻合的

那不急,我50幾歲了,搞電器維修的,平時不會打牌,工作之余業余愛好學習單片機打發時間。

剛剛開始學單片機時也是這樣,推薦你看看這里的教程,http://www.zg4o1577.cn/bbs/dpj-183489-1.html

希望,借51黑電子論壇,讓我們單片機技術和你兒子一起成長。
回復

使用道具 舉報

10#
ID:727019 發表于 2020-4-12 10:58 來自手機 | 只看該作者
神蜂 發表于 2020-4-12 08:16
那不急,我50幾歲了,搞電器維修的,平時不會打牌,工作之余業余愛好學習單片機打發時間。

剛剛開始學 ...

謝謝大叔,您詮釋了什么叫學無止境
回復

使用道具 舉報

11#
ID:727019 發表于 2020-4-12 14:33 來自手機 | 只看該作者
用USB轉TTL連接電腦和藍牙,用手機鍵盤發送文本,電腦也能收到。。。

mmexport1586673037721.jpg (140.58 KB, 下載次數: 108)

mmexport1586673037721.jpg
回復

使用道具 舉報

12#
ID:727019 發表于 2020-4-12 16:09 | 只看該作者
實物連接圖

cf4c9a239da2ab11fb2a8cbda5178c8.png (391.1 KB, 下載次數: 92)

實物圖

實物圖
回復

使用道具 舉報

13#
ID:514901 發表于 2020-4-12 16:33 | 只看該作者
1,298的輸入電壓一般是9~12V
2,51單片機沒燒程序的話一般IO口都是高電平,要讓電機轉的話需要一高一低,你可以接開發板的VCC和GND試試就會轉了
3,藍牙控制的話需要燒錄單片機程序
回復

使用道具 舉報

14#
ID:727019 發表于 2020-4-12 17:20 | 只看該作者
鄭漢松 發表于 2020-4-12 16:33
1,298的輸入電壓一般是9~12V
2,51單片機沒燒程序的話一般IO口都是高電平,要讓電機轉的話需要一高一低, ...

我把電機線直接接在開發板的+5和GND是可以直接轉的,但是用藍牙就是不轉
回復

使用道具 舉報

15#
ID:727019 發表于 2020-4-12 22:16 來自手機 | 只看該作者
沒人幫忙了么。。。
回復

使用道具 舉報

16#
ID:727019 發表于 2020-4-13 08:09 來自手機 | 只看該作者
又是元氣滿滿的一天,繼續坐在電腦面前瞎摸索
回復

使用道具 舉報

17#
ID:367369 發表于 2020-4-13 11:42 | 只看該作者
串口優先級是否高于定時器優先級?還有藍牙發送的數據格式是什么16進制還是字符?我看見你前面發了一張藍牙接收的圖片,你將你的串口助手設置為16進制接受看看接收數據還是否為12345,如果不是,你的單片機接受的就是字符‘1’;‘2’;‘3’;‘4’;‘5’;了而不是接收的數字12345,如果是字符請將接受的數據減0x30, a = SBUF-0x30;或者寫為 a = SBUF-'0';
回復

使用道具 舉報

18#
ID:727019 發表于 2020-4-13 14:21 來自手機 | 只看該作者
game灬boy 發表于 2020-4-13 11:42
串口優先級是否高于定時器優先級?還有藍牙發送的數據格式是什么16進制還是字符?我看見你前面發了一張藍牙 ...

我改成16進制后顯示的是04,不是單純的4,如果需要改程序怎么改啊?請問能加您一個微信么
回復

使用道具 舉報

19#
ID:367369 發表于 2020-4-13 19:17 | 只看該作者
yuhui1023 發表于 2020-4-13 14:21
我改成16進制后顯示的是04,不是單純的4,如果需要改程序怎么改啊?請問能加您一個微信么

你的程序判斷的條件有問題,我看到PS已經置1,說明串口中斷優先級較高,你的if(a==‘0’)是在判斷a等于字符0而不是a等于數字0,你可以把if括號中的判斷條件改為a==0,或者a==‘0’-0x30
加好友得私發,直接評論會被刪
回復

使用道具 舉報

20#
ID:727019 發表于 2020-4-13 22:39 來自手機 | 只看該作者
game灬boy 發表于 2020-4-13 19:17
你的程序判斷的條件有問題,我看到PS已經置1,說明串口中斷優先級較高,你的if(a==‘0’)是在判斷a等于 ...

好的謝謝了,明天我再試一下
回復

使用道具 舉報

21#
ID:727019 發表于 2020-4-14 08:29 | 只看該作者
還是元氣滿滿的一天,繼續坐在電腦面前瞎捉摸
回復

使用道具 舉報

22#
ID:342451 發表于 2020-4-14 19:07 | 只看該作者
給你套資料,僅供參考,挺全面的,當時玩這個的時候是參照他的

《藍牙車資料包》.zip

10.58 MB, 下載次數: 12

回復

使用道具 舉報

23#
ID:342451 發表于 2020-4-14 19:09 | 只看該作者
做藍牙小車,首先你先別急著去搞電機,你先確定好藍牙與手機之間的通信部分是正常的,比如你手機按下,板子上點亮一個小燈,從最簡單的現象上去判斷問題。
回復

使用道具 舉報

24#
ID:727019 發表于 2020-4-15 16:40 來自手機 | 只看該作者
之一知足 發表于 2020-4-14 19:07
給你套資料,僅供參考,挺全面的,當時玩這個的時候是參照他的

謝謝你,好人吶
回復

使用道具 舉報

25#
ID:727019 發表于 2020-4-18 09:22 來自手機 | 只看該作者
新的問題又來了,通訊口連接電腦供電單片機用藍牙是可以控制的,從l298n接過來的5vDC口供電就不能控制,只有一個開關電源燈亮是怎么回事啊
回復

使用道具 舉報

26#
ID:691449 發表于 2020-4-18 11:41 | 只看該作者
藍牙模塊的燈亮不亮?
回復

使用道具 舉報

27#
ID:727019 發表于 2020-4-18 15:15 來自手機 | 只看該作者
xianming 發表于 2020-4-18 11:41
藍牙模塊的燈亮不亮?

亮的,同樣的接線,同樣的程序,用電腦的usb接通信接口,可以控制小車,板上的燈也亮,但是用l298n輸出的5V接DC口就不行了,只有電源燈亮,控制的led燈不亮,我還用手機充電器轉的5V接通信接口,也不亮
回復

使用道具 舉報

28#
ID:727019 發表于 2020-4-19 23:41 來自手機 | 只看該作者
感謝好多熱心人技術支持,完工一大半了

mmexport1587310859392.jpg (1.57 MB, 下載次數: 87)

mmexport1587310859392.jpg
回復

使用道具 舉報

29#
ID:727019 發表于 2020-4-20 15:40 來自手機 | 只看該作者
程序這卡住了,誰能幫我修改下程序啊
回復

使用道具 舉報

30#
ID:727019 發表于 2020-5-6 06:59 來自手機 | 只看該作者
基本完成了

IMG_20200417_193705.jpg (1.53 MB, 下載次數: 94)

IMG_20200417_193705.jpg
回復

使用道具 舉報

31#
ID:727019 發表于 2020-5-8 22:58 來自手機 | 只看該作者
完成了

IMG_20200507_122534.jpg (1.39 MB, 下載次數: 110)

IMG_20200507_122534.jpg
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久久久久久高潮一区二区 | 欧美 日韩 在线播放 | 欧美日韩在线一区 | 国产伦精品一区二区三区精品视频 | 激情在线视频网站 | 超碰操 | 日韩欧美在线免费 | 国产精品成人一区二区三区 | 亚洲第一区国产精品 | 五月天婷婷丁香 | 中文字幕福利视频 | 最新中文字幕 | 欧美黑人又粗大 | 国产精品亚洲一区二区三区在线观看 | 91精品国产91久久久久久吃药 | 99久久国产综合精品麻豆 | 国产精品欧美一区二区三区不卡 | av看看| 久久69精品久久久久久国产越南 | 一区二区三区不卡视频 | 亚洲综合色 | 中国一级特黄毛片大片 | 欧美亚洲国产一区二区三区 | 欧美成人猛片aaaaaaa | 久久黄色精品视频 | 亚洲第一av网站 | 国内av在线 | 欧美日韩一区二区三区四区 | 国产精品黄视频 | 国产欧美日韩一区 | 精品国产一区二区国模嫣然 | 91福利网 | 韩日一区二区 | 蜜臀网| 6080yy精品一区二区三区 | 婷婷色国产偷v国产偷v小说 | 成人国产精品久久久 | 午夜av电影| 日韩一区二区久久 | av激情在线| 免费中文字幕 |