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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求助用單片機+編碼器控制步進電機停止

[復制鏈接]
跳轉到指定樓層
樓主
ID:710256 發表于 2020-4-18 20:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是想通過計算出來的太陽角度控制步進電機旋轉同樣的角度,一旦兩者度數相差2度以上,步進電機就旋轉相差的度數然后停止,步進電機旋轉的角度通過增量式編碼器來計算,編碼器暫時用按鍵代替,步進電機停止后把編碼器的脈沖數停止。現在的問題是仿真時電機會啟動但是停不下來,有大佬可以指教一下錯在哪里嗎

單片機源程序如下:
  1. #include <REG52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. sbit B0 = P3^2;
  5. sbit B1 = P3^3;
  6. //編碼器
  7. uchar   angle[3];          //儲存角度
  8. uchar   c = 10;            //方位電機旋轉的角度
  9. uchar   d;                 //高度電機的角度
  10. uint    b,b1;               //編碼器脈沖數
  11. void Out_Init(void)//外部中斷初始化
  12. {
  13. EX0 = 1;  //開外部中斷0
  14.     EX1 = 1;  //開外部中斷1
  15.         IT0 = 1;  //負邊沿觸發
  16.     IT1 = 1;//負邊沿觸發
  17.         EA = 1;          //開總中斷
  18. }
  19. /*外部中斷0,方位編碼器脈沖加1*/
  20. void Out_Int0(void) interrupt 0        
  21. {
  22.    if(B0 == 1)
  23.     b++;
  24. }
  25. /*外部中斷1,高度編碼器脈沖加1*/
  26. void Out_Int1(void) interrupt 2
  27. {
  28.   if(B1 == 1)
  29.   b1++;
  30. }
  31. /*視日軌跡追蹤*/
  32. void trackgo()
  33. {
  34.     uchar h,f;
  35.     uchar w,z;
  36.     anglecalculate(); //計算太陽角度
  37.     f=angle[1];//得到方位角
  38.     w=f-c;//將方位角與電機旋轉角度對比
  39.     c = c+b*0.3;//方位電機旋轉的角度
  40.     if(w>2)
  41.      {  
  42.   fw = 1;// 方位電機啟動
  43.   zeng = 1; //方位電機正轉
  44.      }
  45.     else
  46.      {
  47.    b = 0;//脈沖數清零
  48.    fw = 0;//方位電機停止
  49.    zeng = 0;//正轉標志清零
  50.    h = angle[0];//獲得高度角
  51.    z = h-d;差值計算
  52.    d = d+b1*0.3;//高度電機旋轉的角度
  53.     if(z>2)
  54.     {
  55.       gd = 1;//高度電機啟動
  56.       zeng = 1;//高度電機正轉
  57.      }
  58.    else
  59.    {
  60.      b1 = 0;//高度編碼器脈沖數清零
  61.      gd = 0;//高度電機停止
  62.      zeng = 0;//正轉標志清零
  63. }
  64.       }
  65. }
  66. //*****************************************************
  67. //函數:void main()
  68. //功能:主函數,初始化
  69. //*****************************************************
  70. void main()
  71. {
  72.     uchar time_30s=0;
  73.     uint getdata;
  74.     float temp;
  75.         uint temp1;
  76.         time_500ms = 0;
  77.         flag_js = 0;
  78.     timer_init();
  79.     Out_Init();
  80.     delay_ms(50);
  81.     LIGHT_DETECTION=read2543(0x20);
  82.         while(1)
  83.         {
  84.     if(time_500ms == 50)
  85.      {
  86.         time_30s++;
  87.         
  88.        if(time_30s==6)//3s判定一次方位
  89.         {
  90.           time_30s=0;
  91.           getdata=read2543(0x20);
  92.           getdata=read2543(0x20);
  93.           getdata=read2543(0x20);
  94.           temp=(float)getdata/4095;//通過tlc5243進行AD轉換
  95.           temp1 = temp*500;//保留兩位小數
  96.         LIGHT_DETECTION=temp1;//光照強度
  97.         if(LIGHT_DETECTION<300&&LIGHT_DETECTION>100)
  98.          {
  99.           trackgo();           
  100.           }
  101.        }
  102.    }
  103. }
  104. }  
復制代碼



sun.zip

163.96 KB, 下載次數: 15

程序加仿真圖

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

使用道具 舉報

沙發
ID:94031 發表于 2020-4-18 20:51 | 只看該作者
你的U18控制的步進電機是由U2-INPUT輸入的數據控制,只要你INPUT不輸入,U18控制的步進電機就不會轉。
回復

使用道具 舉報

板凳
ID:710256 發表于 2020-4-19 09:20 | 只看該作者
xuyaqi 發表于 2020-4-18 20:51
你的U18控制的步進電機是由U2-INPUT輸入的數據控制,只要你INPUT不輸入,U18控制的步進電機就不會轉。

謝謝你的回復,只是我現在的問題時電機啟動后不會停止,我是通過編碼器記錄電機旋轉的角度然后控制電機停止,但現在電機卻停不下來,不清楚問題究竟在哪
回復

使用道具 舉報

地板
ID:628175 發表于 2020-4-24 11:50 來自觸屏版 | 只看該作者
哇。兄弟你該好了嘛。我想學習一下
回復

使用道具 舉報

5#
ID:628175 發表于 2020-4-24 12:12 來自觸屏版 | 只看該作者
朋友有仿真嘛
回復

使用道具 舉報

6#
ID:628175 發表于 2020-5-5 13:30 來自觸屏版 | 只看該作者
朋友你修改好了嘛。能發送給我看下嘛。麻煩了。有償也行。謝謝
回復

使用道具 舉報

7#
ID:649098 發表于 2020-12-15 21:51 | 只看該作者
把兩個外部中斷里的if判斷語句刪去即可實現
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人午夜av | 中文字幕理论片 | 日本免费在线观看视频 | 亚洲一区二区三区在线 | 欧美色噜噜 | 久久久精品一区二区三区 | 成人在线视频观看 | 久草免费福利 | 不卡av网站 | 性猛交xxxx富婆老太婆 | 国产午夜三级一区二区三 | 欧美成人免费 | 日韩视频一区二区三区 | www性| 69久久久 | 欧美国产在线视频 | 国产精品自在线 | 毛片久久久 | 日韩和的一区二区 | 黄色直接看 | 日韩在线免费播放 | 97精品国产露脸对白 | 欧美精品成人 | 亚洲综合激情五月久久 | 97超碰资源站 | 免费的黄色录像 | 成人永久免费视频 | 一级片在线播放 | 黄色片91 | 国产在线播放av | 久久久久久九九九九 | 伊人久久久 | 一区二区日韩 | 色香蕉网 | 久久怡红院 | 九九热精品在线观看 | 久久精品国产视频 | 日韩成人综合 | 久久福利网 | 亚洲一级免费视频 | 伊人综合影院 |