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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機采集風向信息并通過風向信息控制步進電機問題

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 zolch 于 2017-8-24 15:43 編輯

通過51單片機接風向傳感器采集風向信息,再將所采集的風向信息顯示在1602上,并利用單片機將采集到的風向信息控制步進電機的轉動,比如風向角度值(1-360度),風向增加1度,51控制步進電機轉動1度。現所寫的風向驅動步進電機程序如下,編譯沒有問題,接到實物上電機不轉,能感受到里面震動。現在不知道問題出在哪里,希望有大神來幫忙看下!
void main()
{
        uchar adval;
        uint WD;
        uint bai,shi,ge,F1,F2,F3,F4;
        init();
        wela=1;
        P0=0x7f;
        wela=0;
        while(1)
        {
                adwr=1;
                _nop_();
                adwr=0;           //啟動ad轉換
                _nop_();
                adwr=1;
                delayms(1000);
                P1=0xff;   //讀取P1口之前先給其寫全1  
                adrd=1;                  //選通AD0804 CS 端
                _nop_();
                adrd=0;                 //A/D讀使能
                _nop_();
                adval=P1;        //A/D數據讀取賦給P1口
                adrd=1;
                WD=adval;
                WD=WD*72/51;                                                //獲得當前時刻的風向值
                        g=WD;                                                        //將當前時刻的風向值賦給g
        {       
                if(WD>g)                                                         //判斷下一時刻的風向值大于g
                {  h=WD;                                                         //將下一時刻的風向值賦給h
   {        for(l=0;l<(h-g);l++)                                  //循環h-g次
            for(l=1;l>0;l--)                                  //步進電機旋轉角度
              {
                         for (t=0; t<8; t++)      
                  {
                                  P1 = FFW1[t]&0x1f;  
                                  delay(1)   ;                              
                          }
              }
   }
        }
                else if(WD<g)
                { h=WD;
        {                for(l=0;l<(h-g);l++)
                                                  
                                 for(l=1;l>0;l--)
                         {
                                           for (t=0; t<8; t++)      
                                        {
                                                   P1 = FFZ1[t]&0x1f;
                                                          delay(1);
                                                }
                         }
        }
           }
                else
                {;}
        }
                bai=(int)WD/100;
                shi=(int)WD%100/10;
                ge=(int)WD%10;      //(int)字符型強制轉換成整形  1602分出 個位跟小數點后四位   
                F1=(int)(WD*10)%10;   
                F2=(int)(WD*100)%10;   
                F3=(int)(WD*1000)%10;   
                F4=(int)(WD*10000)%10;   
                lcd_display(bai,shi,ge,F1,F2);
        }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:82765 發表于 2017-8-24 15:59 來自觸屏版 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

板凳
ID:123289 發表于 2017-8-24 16:22 | 只看該作者
先去除程序中采樣、顯示……,只留下電機驅動部分,看看電機能不能轉。設法讓電機先轉起來。
回復

使用道具 舉報

地板
ID:222455 發表于 2017-8-24 17:03 來自觸屏版 | 只看該作者
yzwzfyz 發表于 2017-8-24 16:22
先去除程序中采樣、顯示……,只留下電機驅動部分,看看電機能不能轉。設法讓電機先轉起來。

之前利用按鍵控制電機轉,證明了電機部分的程序應該沒啥問題,后來加了最上面一層for循環來利用風向控制電機轉,結果有問題
回復

使用道具 舉報

5#
ID:222455 發表于 2017-8-24 17:06 來自觸屏版 | 只看該作者
cjjcjj1 發表于 2017-8-24 15:59
你好,你的步進電機是怎么接的,把圖發一下

連接如圖

IMG_2353.JPG (81.97 KB, 下載次數: 76)

IMG_2353.JPG
回復

使用道具 舉報

6#
ID:228347 發表于 2017-8-24 22:22 | 只看該作者
最好把h值當成一個上一時刻的值,然后你現在讀到的g為當前值。g!=h,時去轉動你的電機,完成之后將g的值賦值給h。之前寫的語句是有錯的,你剛把g=WD,又去判斷g大于或者小于WD,這樣合適嗎。。。?

g=WD;                                                        //將當前時刻的風向值賦給g
        {        
                if(WD>g)                                                         //判斷下一時刻的風向值大于g
回復

使用道具 舉報

7#
ID:222455 發表于 2017-9-19 09:34 | 只看該作者
oo0o_11 發表于 2017-8-24 22:22
最好把h值當成一個上一時刻的值,然后你現在讀到的g為當前值。g!=h,時去轉動你的電機,完成之后將g的值賦 ...

我也想過這個問題,不過在程序中怎么利用兩個時刻的值進行比較啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品在线免费观看 | 欧美理论在线观看 | 天天躁天天操 | 国产熟熟 | 91精品久久久久久久久久 | 久久91精品国产一区二区 | 中文字幕一区二区三区不卡在线 | av在线免费观看网址 | 婷婷久久综合 | 成人免费精品视频 | 欧美日韩国产三级 | 最近免费日本视频在线 | 狠狠亚洲 | 国产精品99久久久精品免费观看 | 中文字幕视频在线看 | 国产欧美精品区一区二区三区 | 日韩α片| 国产三级 | 欧美国产日本一区 | 亚洲精品乱码 | 亚洲精品欧美一区二区三区 | 日韩精品一区二区三区中文字幕 | 精品久久久久一区二区国产 | 精产国产伦理一二三区 | 自拍视频网站 | 亚洲国产一区二区视频 | 欧美精品久久久久 | 久久久久久国模大尺度人体 | 欧美黄色网| 天天射视频 | 日韩在线观看视频一区 | 精品欧美色视频网站在线观看 | 中文字幕视频一区 | 欧美日韩国产三级 | 毛片免费看 | 情侣av| 69精品久久久久久 | 国产精品国产a | 美女黄网站 | 91免费版在线 | 久久国产精品精品国产色婷婷 |