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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2785|回復: 6
收起左側

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

[復制鏈接]
ID:222455 發表于 2017-8-24 15:39 | 顯示全部樓層 |閱讀模式
本帖最后由 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);
        }
回復

使用道具 舉報

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循環來利用風向控制電機轉,結果有問題
回復

使用道具 舉報

ID:222455 發表于 2017-8-24 17:06 來自手機 | 顯示全部樓層
cjjcjj1 發表于 2017-8-24 15:59
你好,你的步進電機是怎么接的,把圖發一下

連接如圖
IMG_2353.JPG
回復

使用道具 舉報

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

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

使用道具 舉報

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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 手机在线观看av | 中文亚洲视频 | 亚洲成人福利视频 | 自拍偷拍中文字幕 | 日韩欧美中文字幕在线视频 | 91精品久久久| 日韩在线电影 | 天堂精品视频 | 成人高清视频在线观看 | 国产亚洲精品精品国产亚洲综合 | 精品久久久久久亚洲综合网 | 国产在线精品一区二区三区 | 久久高清 | 亚洲 中文 欧美 日韩 在线观看 | 欧美中文字幕一区二区三区亚洲 | 免费啪啪| 国产成人高清视频 | 人干人人| 久久久久久国产精品 | 国产在线精品一区二区 | 欧美一区二区三区小说 | 国产精品一区二区三区四区 | 久久蜜桃资源一区二区老牛 | 韩日精品在线观看 | 91手机精品视频 | 色综合久久88色综合天天 | 欧美中文 | 亚州中文| 亚洲欧美日韩久久久 | 成人在线精品 | 欧美一区在线视频 | 国产精品s色 | 男人的天堂在线视频 | 亚洲精选久久 | 国产成人91视频 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 一区二区三区免费 | 国产午夜精品一区二区三区四区 | 亚洲欧美久久 | av国产精品毛片一区二区小说 | 中文字幕在线观看一区 |