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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 7036|回復(fù): 14
打印 上一主題 下一主題
收起左側(cè)

利用單片機(jī)+超聲波控制舵機(jī)轉(zhuǎn)向的制作 附源程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
通過超聲波感應(yīng),使舵機(jī)轉(zhuǎn)向,(在此本人有個(gè)想法,可以通過舵機(jī)控制自來水開關(guān)。即間接的做成了一個(gè)小的智能設(shè)備)
材料:
51單片機(jī)開發(fā)板
杜邦線
舵機(jī)+超聲波
3.7V電池兩個(gè)
束縛帶
膠水
冰淇淋棒
程序?yàn)榇蠹耀I(xiàn)上!
讓大家在學(xué)習(xí)單片機(jī)時(shí)可以擁有一種成就感!
有問題可以及時(shí)找我,很愿意大家一起探討!

制作出來的實(shí)物圖如下:


單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #include<stdio.h>
  3. #include<intrins.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. sbit Trig=P3^4;            //控制端
  7. sbit Echo=P3^5;          //接收端
  8. sbit led=P1^3;
  9. sbit servorControl =P1^3;  //舵機(jī)的控制引腳

  10. uchar flag=0;
  11. uchar control=5;
  12. uchar servorTime=0;






  13. unsigned char T0RH=0;
  14. unsigned char T0RL=0;

  15. void time_init()
  16. {
  17.         EA=1;
  18.         TMOD=0x11;
  19.         TH0 = 0;
  20.         TL0 = 0;
  21. }
  22. ///////////////////////////////////////
  23. void delay(uchar time){  //延遲函數(shù)
  24. uchar i;
  25. for(;time>0;time--){
  26.   for(i=0;i<255;i++);
  27. }
  28. }

  29. //初始化定時(shí)器
  30. void Delay_us(unsigned char t)
  31. {
  32.         while(--t);
  33. }         //大約延時(shí)t*2+5us         超聲波模塊用
  34. //////////////////////////////////////

  35. void timer0()interrupt 1
  36. {
  37. TH0 = 0;
  38. TL0 = 0;
  39. }
  40. //中斷程序 初始化賦值 重新計(jì)數(shù) 超聲波模塊用 計(jì)算時(shí)間
  41. void main()
  42. {
  43.         unsigned int time,distance;
  44.          
  45.         EA=1;
  46.   ET0=1;
  47.   ET1=1;
  48.   TMOD=0x11;
  49.   TH1=0xff;
  50.   TL1=0x9c;
  51.   servorTime=0;
  52.          
  53.          
  54.          
  55.         Trig=0;
  56.         Echo=0;
  57.         time_init();
  58.         while(1)
  59.         {

  60.                 Trig=1;
  61.                 Delay_us(5);
  62.                 Trig=0;
  63.                 while(Echo==0);
  64.                 TR0=1;
  65.                 while(Echo);
  66.                 TR0=0;
  67.                 time=TH0*256+TL0;
  68.                 distance=(int)(time*0.017);                           //計(jì)算路程 單位為cm
  69.                 TH0=0;
  70.                 TL0=0;
  71.                 if(distance<30)                                        //如果距離小于30cm 蜂鳴器響
  72.                 {
  73.                 control=15;   //使舵機(jī)向正擺動(dòng)
  74.     servorTime=0;
  75.     TR1=1;
  76.     delay(200);
  77.                 delay(200);
  78.     TR1=0;
  79.                 }
  80.                 else
  81.                 {
  82.                 control=5;   //使舵機(jī)向右擺動(dòng)
  83.     servorTime=0;
  84.     TR1=1;
  85.     delay(200);
  86.                 delay(200);
  87.     TR1=0;
  88.     delay(200);
  89.                 delay(200);
  90.                 }
  91.         }
  92. }
  93. void T1_int(void) interrupt 3{   //產(chǎn)生舵機(jī)所需要的脈沖
  94.   TH1=0xff;
  95.   TL1= 0x9c;
  96.   servorTime++;
  97.   if(servorTime<=control)
  98.    servorControl=1;
  99.   else
  100.    servorControl=0;
  101.    if(servorTime>=200)
  102.    servorTime=0;
  103. }
復(fù)制代碼

所有資料51hei提供下載:
舵機(jī)轉(zhuǎn)向與超聲波.zip (29.16 KB, 下載次數(shù): 108)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏7 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:557065 發(fā)表于 2020-3-12 18:23 | 只看該作者
arduino程序我也有大家需要我也可以放出來
回復(fù)

使用道具 舉報(bào)

板凳
ID:648072 發(fā)表于 2020-3-13 17:48 | 只看該作者
感謝樓主的分享
回復(fù)

使用道具 舉報(bào)

地板
ID:709089 發(fā)表于 2020-3-15 21:39 | 只看該作者
高啊,感謝分享啊
回復(fù)

使用道具 舉報(bào)

5#
ID:89286 發(fā)表于 2020-3-15 22:46 | 只看該作者
thanks for sharing
回復(fù)

使用道具 舉報(bào)

6#
ID:711252 發(fā)表于 2020-3-24 19:00 | 只看該作者
請(qǐng)教下這個(gè)舵機(jī)是什么型號(hào)的?
回復(fù)

使用道具 舉報(bào)

7#
ID:461901 發(fā)表于 2020-4-2 09:44 | 只看該作者
能不能讓舵機(jī)返回原點(diǎn)前停頓3S呀???
回復(fù)

使用道具 舉報(bào)

8#
ID:638921 發(fā)表于 2020-8-24 20:20 | 只看該作者
樓主有紅外控制舵機(jī)轉(zhuǎn)向的嗎
回復(fù)

使用道具 舉報(bào)

9#
ID:760058 發(fā)表于 2020-8-26 22:38 | 只看該作者
沒有原理圖嗎,親愛的樓主
回復(fù)

使用道具 舉報(bào)

10#
無效樓層,該帖已經(jīng)被刪除
11#
ID:885324 發(fā)表于 2021-2-21 16:01 來自觸屏版 | 只看該作者
17875610146 發(fā)表于 2020-3-12 18:23
arduino程序我也有大家需要我也可以放出來

想咨詢
回復(fù)

使用道具 舉報(bào)

12#
ID:885324 發(fā)表于 2021-2-21 16:06 來自觸屏版 | 只看該作者
17875610146 發(fā)表于 2020-3-12 18:23
arduino程序我也有大家需要我也可以放出來

單片機(jī)源程序如下:
#include<reg52.h>
#include<stdio.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit Trig=P3^4;            //控制端
sbit Echo=P3^5;          //接收端
sbit led=P1^3;
sbit servorControl =P1^3;  //舵機(jī)的控制引腳

uchar flag=0;
uchar control=5;
uchar servorTime=0;






unsigned char T0RH=0;
unsigned char T0RL=0;

void time_init()
{
        EA=1;
        TMOD=0x11;
        TH0 = 0;
        TL0 = 0;
}
///////////////////////////////////////
void delay(uchar time){  //延遲函數(shù)
uchar i;
for(;time>0;time--){
  for(i=0;i<255;i++);
}
}

//初始化定時(shí)器
void Delay_us(unsigned char t)
{
        while(--t);
}         //大約延時(shí)t*2+5us         超聲波模塊用
//////////////////////////////////////

void timer0()interrupt 1
{
TH0 = 0;
TL0 = 0;
}
//中斷程序 初始化賦值 重新計(jì)數(shù) 超聲波模塊用 計(jì)算時(shí)間
void main()
{
        unsigned int time,distance;
         
        EA=1;
  ET0=1;
  ET1=1;
  TMOD=0x11;
  TH1=0xff;
  TL1=0x9c;
  servorTime=0;
         
         
         
        Trig=0;
        Echo=0;
        time_init();
        while(1)
        {

                Trig=1;
                Delay_us(5);
                Trig=0;
                while(Echo==0);
                TR0=1;
                while(Echo);
                TR0=0;
                time=TH0*256+TL0;
                distance=(int)(time*0.017);                           //計(jì)算路程 單位為cm
                TH0=0;
                TL0=0;
                if(distance<30)                                        //如果距離小于30cm 蜂鳴器響
                {
                control=15;   //使舵機(jī)向正擺動(dòng)
    servorTime=0;
    TR1=1;
    delay(200);
                delay(200);
    TR1=0;
                }
                else
                {
                control=5;   //使舵機(jī)向右擺動(dòng)
    servorTime=0;
    TR1=1;
    delay(200);
                delay(200);
    TR1=0;
    delay(200);
                delay(200);
                }
        }
}
void T1_int(void) interrupt 3{   //產(chǎn)生舵機(jī)所需要的脈沖
  TH1=0xff;
  TL1= 0x9c;
  servorTime++;
  if(servorTime<=control)
   servorControl=1;
  else
   servorControl=0;
   if(servorTime>=200)
   servorTime=0;
}
回復(fù)

使用道具 舉報(bào)

13#
ID:885324 發(fā)表于 2021-2-21 16:07 來自觸屏版 | 只看該作者
這是完整的源程序嗎
回復(fù)

使用道具 舉報(bào)

14#
無效樓層,該帖已經(jīng)被刪除
15#
ID:885324 發(fā)表于 2021-2-21 16:11 來自觸屏版 | 只看該作者
17875610146 發(fā)表于 2020-3-12 18:23
arduino程序我也有大家需要我也可以放出來

這是完整的源程序嗎?
單片機(jī)源程序如下:
#include<reg52.h>
#include<stdio.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit Trig=P3^4;            //控制端
sbit Echo=P3^5;          //接收端
sbit led=P1^3;
sbit servorControl =P1^3;  //舵機(jī)的控制引腳

uchar flag=0;
uchar control=5;
uchar servorTime=0;






unsigned char T0RH=0;
unsigned char T0RL=0;

void time_init()
{
        EA=1;
        TMOD=0x11;
        TH0 = 0;
        TL0 = 0;
}
///////////////////////////////////////
void delay(uchar time){  //延遲函數(shù)
uchar i;
for(;time>0;time--){
  for(i=0;i<255;i++);
}
}

//初始化定時(shí)器
void Delay_us(unsigned char t)
{
        while(--t);
}         //大約延時(shí)t*2+5us         超聲波模塊用
//////////////////////////////////////

void timer0()interrupt 1
{
TH0 = 0;
TL0 = 0;
}
//中斷程序 初始化賦值 重新計(jì)數(shù) 超聲波模塊用 計(jì)算時(shí)間
void main()
{
        unsigned int time,distance;
         
        EA=1;
  ET0=1;
  ET1=1;
  TMOD=0x11;
  TH1=0xff;
  TL1=0x9c;
  servorTime=0;
         
         
         
        Trig=0;
        Echo=0;
        time_init();
        while(1)
        {

                Trig=1;
                Delay_us(5);
                Trig=0;
                while(Echo==0);
                TR0=1;
                while(Echo);
                TR0=0;
                time=TH0*256+TL0;
                distance=(int)(time*0.017);                           //計(jì)算路程 單位為cm
                TH0=0;
                TL0=0;
                if(distance<30)                                        //如果距離小于30cm 蜂鳴器響
                {
                control=15;   //使舵機(jī)向正擺動(dòng)
    servorTime=0;
    TR1=1;
    delay(200);
                delay(200);
    TR1=0;
                }
                else
                {
                control=5;   //使舵機(jī)向右擺動(dòng)
    servorTime=0;
    TR1=1;
    delay(200);
                delay(200);
    TR1=0;
    delay(200);
                delay(200);
                }
        }
}
void T1_int(void) interrupt 3{   //產(chǎn)生舵機(jī)所需要的脈沖
  TH1=0xff;
  TL1= 0x9c;
  servorTime++;
  if(servorTime<=control)
   servorControl=1;
  else
   servorControl=0;
   if(servorTime>=200)
   servorTime=0;
}
回復(fù)

使用道具 舉報(bào)

16#
ID:836542 發(fā)表于 2021-3-29 15:31 | 只看該作者
為啥我的舵機(jī)到位置后要抖動(dòng)一下
回復(fù)

使用道具 舉報(bào)

17#
ID:947589 發(fā)表于 2021-6-30 23:16 | 只看該作者
樓主有接線圖么
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久91 | 91久久精品一区二区二区 | 午夜视频在线免费观看 | 久久99久久 | 九九精品影院 | 精品国产精品国产偷麻豆 | 日韩激情视频一区 | 国产91在线播放 | 日韩精品视频在线免费观看 | 国产一区二区三区视频在线观看 | 亚洲视频一区二区三区 | 久久99精品久久久久久国产越南 | 中文字幕在线观看成人 | 国产在线网址 | 夜夜摸天天操 | 日韩免费av网站 | 91黄色免费看 | 精品在线视频播放 | 国产成人精品a视频一区www | 国产精品污污视频 | www.精品一区 | 玖玖综合在线 | 粉嫩一区二区三区性色av | 高清久久久 | 欧美一区二区三区在线 | 大陆一级毛片免费视频观看 | 日韩一级免费大片 | 一区二区在线不卡 | 男人的天堂久久 | 亚洲国产成人精品女人久久久 | 看特级黄色片 | 一区二区精品 | 日韩美女在线看免费观看 | 精品视频一区二区三区在线观看 | 午夜免费视频 | 91精品国产综合久久福利软件 | 激情欧美日韩一区二区 | 九色www| 亚洲一区二区三区免费在线观看 | 日本爱爱视频 | 六月色婷 |