![]() |
發(fā)布時間: 2020-4-11 19:00
正文摘要:萌新一枚,之前從來沒接觸過這些,只是想給剛出生不久的兒子做一個親手做的玩具,如圖接好線還好東西都沒燒,用手機藍牙控制,但是電機不轉(zhuǎn),是什么原因啊,有大佬時間充裕的指導一下小弟好么? |
程序這卡住了,誰能幫我修改下程序啊 |
xianming 發(fā)表于 2020-4-18 11:41 亮的,同樣的接線,同樣的程序,用電腦的usb接通信接口,可以控制小車,板上的燈也亮,但是用l298n輸出的5V接DC口就不行了,只有電源燈亮,控制的led燈不亮,我還用手機充電器轉(zhuǎn)的5V接通信接口,也不亮 |
藍牙模塊的燈亮不亮? |
![]() |
之一知足 發(fā)表于 2020-4-14 19:07 謝謝你,好人吶 |
做藍牙小車,首先你先別急著去搞電機,你先確定好藍牙與手機之間的通信部分是正常的,比如你手機按下,板子上點亮一個小燈,從最簡單的現(xiàn)象上去判斷問題。 |
給你套資料,僅供參考,挺全面的,當時玩這個的時候是參照他的 |
10.58 MB, 下載次數(shù): 12
![]() |
game灬boy 發(fā)表于 2020-4-13 19:17 好的謝謝了,明天我再試一下 |
yuhui1023 發(fā)表于 2020-4-13 14:21 你的程序判斷的條件有問題,我看到PS已經(jīng)置1,說明串口中斷優(yōu)先級較高,你的if(a==‘0’)是在判斷a等于字符0而不是a等于數(shù)字0,你可以把if括號中的判斷條件改為a==0,或者a==‘0’-0x30 加好友得私發(fā),直接評論會被刪 |
game灬boy 發(fā)表于 2020-4-13 11:42 我改成16進制后顯示的是04,不是單純的4,如果需要改程序怎么改啊?請問能加您一個微信么 |
串口優(yōu)先級是否高于定時器優(yōu)先級?還有藍牙發(fā)送的數(shù)據(jù)格式是什么16進制還是字符?我看見你前面發(fā)了一張藍牙接收的圖片,你將你的串口助手設置為16進制接受看看接收數(shù)據(jù)還是否為12345,如果不是,你的單片機接受的就是字符‘1’;‘2’;‘3’;‘4’;‘5’;了而不是接收的數(shù)字12345,如果是字符請將接受的數(shù)據(jù)減0x30, a = SBUF-0x30;或者寫為 a = SBUF-'0'; |
又是元氣滿滿的一天,繼續(xù)坐在電腦面前瞎摸索![]() |
![]() |
鄭漢松 發(fā)表于 2020-4-12 16:33 我把電機線直接接在開發(fā)板的+5和GND是可以直接轉(zhuǎn)的,但是用藍牙就是不轉(zhuǎn) ![]() |
1,298的輸入電壓一般是9~12V 2,51單片機沒燒程序的話一般IO口都是高電平,要讓電機轉(zhuǎn)的話需要一高一低,你可以接開發(fā)板的VCC和GND試試就會轉(zhuǎn)了 3,藍牙控制的話需要燒錄單片機程序 |
神蜂 發(fā)表于 2020-4-12 08:16 謝謝大叔,您詮釋了什么叫學無止境 |
yuhui1023 發(fā)表于 2020-4-11 23:17 那不急,我50幾歲了,搞電器維修的,平時不會打牌,工作之余業(yè)余愛好學習單片機打發(fā)時間。 剛剛開始學單片機時也是這樣,推薦你看看這里的教程,http://www.zg4o1577.cn/bbs/dpj-183489-1.html 希望,借51黑電子論壇,讓我們單片機技術和你兒子一起成長。 |
神蜂 發(fā)表于 2020-4-11 22:40 前面的程序我看的不太懂,但是最后那個中文我燒程序時注意了,都是吻合的 |
game灬boy 發(fā)表于 2020-4-11 21:26 你的意思是把程序修改一下試試么,就是把你發(fā)的這個插入到括號里是么 |
是不是while()要運行藍牙發(fā)過來的東西 比例: void Remote() { switch(a) { case 0X02: 停車函數(shù) ( ); break; //停車 case 0X00: 前進函數(shù)(); break; //前進 } } void main () { InitUART(); while (1) { Remote(); } } 還有波特率9600、主板晶振是不是11.0592 藍牙的波特率也要設置在9600 |
你先把 in1 in2 in3 in4 直接在main函數(shù)中賦值,看電機是否轉(zhuǎn)動 void main () { in1=1; in2=0; in3=1; in4=0; } 然后藍牙接電腦上面看看收到的手機指令是否正確 |
哪位大佬幫幫忙啊 |
![]() |
/* 藍牙小車程序 T0產(chǎn)生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') //左轉(zhuǎn) { jd=22; } if(a == '4') //右轉(zhuǎn) { jd=34; } if(a == '5') //回中 { jd=28; } } } |
Powered by 單片機教程網(wǎng)