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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6506|回復: 12
收起左側

單片機風力發(fā)電機迎風面對風向的追蹤系統(tǒng)設計 含電路原理圖、程序源碼

  [復制鏈接]
ID:498548 發(fā)表于 2019-4-8 15:09 | 顯示全部樓層 |閱讀模式
這是我做的一個追蹤系統(tǒng)
包含兩部分測量顯示部分和電機驅動部分
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
QQ截圖20190408144454.png

用proteus畫的仿真原理圖,還有仿真結果。

八位開關模擬八位二進制編碼盤角度精度360/2^8=1.40625度
QQ截圖20190408144513.png
顯示電路選用數(shù)碼管動態(tài)掃描顯示,顯示角度-180~+180度
QQ截圖20190408144530.png

000000000000000000000000000000000
QQ截圖20190408145756.png

電機驅動用于接收單片機正負旋轉信號,驅動電機正反轉
QQ截圖20190408144607.png

單片機源程序如下:
  1. #include "reg51.h"

  2. sbit M1=P2^6;
  3. sbit M2=P2^7;
  4. sbit P20=P2^0;
  5. sbit P21=P2^1;
  6. sbit P22=P2^2;
  7. sbit P23=P2^3;
  8. sbit P24=P2^4;

  9. unsigned int table[10]={                        
  10.                                                 0xC0, //"0"
  11.                                                 0xF9, //"1"
  12.                                                 0xA4, //"2"
  13.                                                 0xB0, //"3"
  14.                                                 0x99, //"4"
  15.                                                 0x92, //"5"
  16.                                                 0x82, //"6"
  17.                                                 0xF8, //"7"
  18.                                                 0x80, //"8"
  19.                                                 0x90, //"9"
  20.          };

  21. float Angle,jiaodu;

  22. void Sys_Init()           //端口初始電平
  23. {
  24.         P0=0XFF;
  25.         P1=0XFF;
  26.         P2=0Xe0;
  27. }

  28. float Read_Data()        //從P1口讀四位二進制碼,轉化為角度值
  29. {
  30.         unsigned int y=0;
  31.         float x=0.0;
  32.         y=0XFF^P1;
  33.         x=y*1.4;
  34.         return x;
  35. }
  36. void Delay10ms()                  //延時函數(shù)
  37. {
  38.         unsigned char i, j;

  39.         i = 20;
  40.         j = 113;
  41.         do
  42.         {
  43.                 while (--j);
  44.         } while (--i);
  45. }

  46. void Display()                                //顯示函數(shù)
  47. {
  48.         unsigned int i;
  49.         unsigned  B,C,D,E;
  50.     //        A=Angle/1000;                           //千位
  51.     if(jiaodu>180)
  52.         Angle=360.0-jiaodu;
  53.         else Angle=jiaodu;
  54.         B=(((int)Angle)%1000)/100;                   //百位
  55.         C=((int)Angle)%100/10;                           //十位
  56.         D=((int)Angle)%10;                                   //個位
  57.         E=((int)(jiaodu*10))%10;                   //十分位
  58.         for(i=0;i<5;i++)
  59.         {
  60.                 switch(i)
  61.                 {   
  62.                         case 0:
  63.                                         P20=1;                           //位選端打開
  64.                                         if(jiaodu>180)
  65.                                           P0=0xBF;               //向P0口輸數(shù)據(jù)
  66.                                         else P0=0xC0;
  67.                                         Delay10ms();           //延時
  68.                                         P20=0;                           //位選端關閉               
  69.                                         break;
  70.                         case 1:
  71.                                         P21=1;
  72.                                         P0=table[B];
  73.                                         Delay10ms();        
  74.                                         P21=0;
  75.                                         break;
  76.                         case 2:
  77.                                         P22=1;
  78.                                         P0=table[C];
  79.                                         Delay10ms();        
  80.                                         P22=0;
  81.                                         break;
  82.                         case 3:
  83.                                         P23=1;
  84.                                         P0=table[D];
  85.                                         Delay10ms();        
  86.                                         P23=0;
  87.                                         break;
  88.                         case 4:
  89.                                         P24=1;
  90.                                         P0=table[E];
  91.                                         Delay10ms();        
  92.                                         P24=0;
  93.                                         break;
  94.                         default:
  95.                                         break;
  96.                 }
  97.         }
  98. }        

  99. void Motor_Ctrl()                                 //步進電機脈沖
  100. {
  101.         if(jiaodu<=180)                                 //角度小于180度P26輸出一個脈沖
  102.                 {
  103.                         M1=0;
  104.                         M2=1;
  105.                     Delay10ms();
  106.                     M1=1;
  107.                 }
  108.         else if(jiaodu>180)                          //角度大于180度P27輸出脈沖
  109.                 {
  110.                         M1=1;
  111.                         M2=0;
  112.                         Delay10ms();
  113.                     M2=1;
  114.                 }
  115.         else
  116.                 {
  117.                         M1=1;
  118.                         M2=1;
  119.                 }
  120. }

  121. void main()                                  //主函數(shù)
  122. {
  123.                 Sys_Init();
  124.         while(1)
  125.         {
  126.                 jiaodu=Read_Data();
  127.                 Motor_Ctrl();
  128.                 Display();
  129.         }
  130. }
復制代碼
0.png

全部資料51hei下載地址:
課程設計.zip (30.2 KB, 下載次數(shù): 96)

評分

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

查看全部評分

回復

使用道具 舉報

ID:154015 發(fā)表于 2019-4-12 23:49 | 顯示全部樓層
電路圖打不開呀
回復

使用道具 舉報

ID:498548 發(fā)表于 2019-4-17 01:21 | 顯示全部樓層

用proteus8以上版本試試
回復

使用道具 舉報

ID:513536 發(fā)表于 2019-4-17 10:52 來自手機 | 顯示全部樓層
謝謝樓主分享,最近有這方面想法
回復

使用道具 舉報

ID:375322 發(fā)表于 2019-11-6 22:19 | 顯示全部樓層
電路圖打不開
回復

使用道具 舉報

ID:385637 發(fā)表于 2019-11-7 16:38 | 顯示全部樓層
請問這個是通過什么原理測量風的角度的呢?
回復

使用道具 舉報

ID:408100 發(fā)表于 2020-5-12 15:51 來自手機 | 顯示全部樓層
樓主還在嗎,問一下,風力發(fā)電機在proteus怎么找啊
回復

使用道具 舉報

ID:896604 發(fā)表于 2021-4-16 13:55 | 顯示全部樓層
樓主,你這個運行會出現(xiàn)[SPICE] TRAN:  Timestep too small; timestep = 1.25e-019: trouble with node #00007.
的問題,無法運行啊
回復

使用道具 舉報

ID:896604 發(fā)表于 2021-4-16 14:56 | 顯示全部樓層
樓主你好,這個程序我用protues8.9跑了一下報錯了,說[SPICE] TRAN:  Timestep too small; timestep = 1.25e-019: trouble with node #00007.
請問這是需要設置別的什么才能運行嗎
回復

使用道具 舉報

ID:366464 發(fā)表于 2021-4-28 00:18 來自手機 | 顯示全部樓層
風力發(fā)電機有尾翼追風!
回復

使用道具 舉報

ID:197229 發(fā)表于 2021-4-28 10:54 | 顯示全部樓層
zuiqf1978 發(fā)表于 2021-4-28 00:18
風力發(fā)電機有尾翼追風!

說得不錯咯,但是可以舉一反三,應用到其他控制,也是移植啊。
回復

使用道具 舉報

ID:999277 發(fā)表于 2022-1-3 08:37 | 顯示全部樓層
譚擎蒼 發(fā)表于 2021-4-16 14:56
樓主你好,這個程序我用protues8.9跑了一下報錯了,說[SPICE] TRAN:  Timestep too small; timestep = 1.25 ...

我也是,請問您解決了嗎
回復

使用道具 舉報

ID:489394 發(fā)表于 2023-5-10 14:44 | 顯示全部樓層
一樣,用protues8.9跑了一下報錯了,說[SPICE] TRAN:  Timestep too small; timestep = 1.25e-019: trouble with node #00007.
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一区二区三区在线观看 | 日日日操 | 欧美成人h版在线观看 | 久久久久久久久久久久亚洲 | 成年人在线电影 | 91精品国产综合久久福利软件 | 一区二区久久精品 | 成人免费视频在线观看 | 亚洲视频中文字幕 | 欧美一级电影免费 | 久久合久久 | 国产精品久久久久久久一区探花 | 国产精品成人一区二区三区 | 九九综合 | 亚州精品天堂中文字幕 | 特级毛片爽www免费版 | 欧美极品在线 | 在线视频国产一区 | 狠狠操狠狠干 | 国产精品网址 | 一级片av| 亚洲精品成人网 | 国产一区二区三区四区hd | www午夜视频 | 91精品国产91久久综合桃花 | 国产区在线观看 | 久久国产美女视频 | 欧美一区二区三区视频 | 日韩欧美高清 | 337p日本欧洲亚洲大胆精蜜臀 | 国产 欧美 日韩 一区 | 91免费小视频 | 国产美女视频一区 | 久久国产精品免费一区二区三区 | 欧美久久国产 | 亚洲第一区国产精品 | 噜噜噜噜狠狠狠7777视频 | 美女一级a毛片免费观看97 | 91欧美精品成人综合在线观看 | 亚洲视频在线观看 | 伊人免费视频二 |