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

標題: 51單片機采集風向信息并通過風向信息控制步進電機問題 [打印本頁]

作者: zolch    時間: 2017-8-24 15:39
標題: 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);
        }
作者: cjjcjj1    時間: 2017-8-24 15:59
提示: 作者被禁止或刪除 內容自動屏蔽
作者: yzwzfyz    時間: 2017-8-24 16:22
先去除程序中采樣、顯示……,只留下電機驅動部分,看看電機能不能轉。設法讓電機先轉起來。
作者: zolch    時間: 2017-8-24 17:03
yzwzfyz 發表于 2017-8-24 16:22
先去除程序中采樣、顯示……,只留下電機驅動部分,看看電機能不能轉。設法讓電機先轉起來。

之前利用按鍵控制電機轉,證明了電機部分的程序應該沒啥問題,后來加了最上面一層for循環來利用風向控制電機轉,結果有問題
作者: zolch    時間: 2017-8-24 17:06
cjjcjj1 發表于 2017-8-24 15:59
你好,你的步進電機是怎么接的,把圖發一下

連接如圖

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

IMG_2353.JPG

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

g=WD;                                                        //將當前時刻的風向值賦給g
        {        
                if(WD>g)                                                         //判斷下一時刻的風向值大于g
作者: zolch    時間: 2017-9-19 09:34
oo0o_11 發表于 2017-8-24 22:22
最好把h值當成一個上一時刻的值,然后你現在讀到的g為當前值。g!=h,時去轉動你的電機,完成之后將g的值賦 ...

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




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩免费一区二区 | 污视频免费在线观看 | 日韩成人精品一区二区三区 | 国产视频1区 | 成人高清网站 | 亚洲精品一区二区另类图片 | 欧美亚洲国产一区二区三区 | 91亚洲欧美| 欧美一级在线 | 亚洲精品68久久久一区 | 久久久在线视频 | 国产九九九九 | 91久久婷婷 | 中文字幕高清av | 日韩精品三区 | 国产一区久久 | 激情五月激情综合网 | 亚洲国产欧美在线人成 | 欧美国产日韩在线 | 日本中文字幕在线观看 | 性一交一乱一透一a级 | 手机av在线| 亚洲精品美女视频 | 精品久久久精品 | 91精品国产91综合久久蜜臀 | 久热免费| 欧美色综合一区二区三区 | 欧美精品一区二区三区在线播放 | 精品欧美一区二区精品久久久 | 久草久| a级在线免费视频 | 日韩免费网站 | 国产午夜精品久久久 | 日韩欧美大片在线观看 | www.国产91 | 亚洲成人自拍 | 亚洲日韩中文字幕一区 | 久久精品欧美一区二区三区不卡 | 亚洲黄色av | 亚洲欧美一区二区三区1000 | 99精品久久久久久中文字幕 |