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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

大家好,我現在在做一個光敏電阻智能窗簾,問題是到了晚上電機啟動,比如啟動到達....

[復制鏈接]
跳轉到指定樓層
樓主
ID:191929 發表于 2017-5-6 19:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
還請大家幫幫忙,先謝謝了
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

來自 3#
ID:191929 發表于 2017-5-6 19:45 | 只看該作者

定時問題

本帖最后由 惜緣2008 于 2017-5-6 20:06 編輯

請大家幫忙,自己弄了好久了,問題是:到了晚上電機啟動,到達指定位置電機要停下來,我用定時器來做,無奈停在定時循環出不來,問題在程序主函數里邊,(主函數keyscan()后面的if語句)---電機啟動后停不下來了
回復

使用道具 舉報

來自 4#
ID:191929 發表于 2017-5-6 19:50 | 只看該作者
程序格式不對,我重發一遍,大家見諒,見怪不怪
  1. #include <reg52.h>       //51芯片管腳定義頭文件
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. uchar code zheng[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
  5. uchar code fan[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
  6. sbit  key1   = P3^0;       //正轉
  7. sbit  key2   = P3^1;       //反轉----按鍵分時復用
  8. sbit  key3   = P3^2;       //停止
  9. sbit  key4   = P3^3;       //時間調整按鈕
  10. sbit beep=P2^3; sbit dsds=P2^4;
  11. sbit dsrw=P2^2; sbit dsas=P2^1;
  12. sbit dscs=P2^0; sbit irq=P3^3;
  13. sbit  rd=P3^7;  sbit guang_dq=P3^6;//光敏電阻輸出
  14. sbit DQ=P2^5;//ds18b20與單片機連接口
  15. sbit lcden=P3^4;sbit lcdrs=P3^5;
  16. sbit dula=P2^6;sbit wela=P2^7;
  17. char shi,fen,miao,nian,yue,ri;
  18. uchar num,flag,flag1,flag_ting,count;
  19. uint temp,aa;//溫度值
  20. uchar tflag;//溫度正負標志
  21. uchar code table[]="  :  :   T:     ";
  22. uchar code table1[]="20  -  -  L:   G";
  23. void write_ds(uchar,uchar);
  24. uchar read_ds(uchar);
  25. uchar set_alarm(uchar,uchar,uchar);
  26. uchar read_time(uchar);
  27. void delay(uint z)//延時函數--1ms
  28. {
  29.   uint x,y;
  30.   for(x=z;x>0;x--)
  31.      for(y=110;y>0;y--);
  32. }
  33. void didi()
  34. {
  35.   beep=0;
  36.   delay(200);
  37.   beep=1;
  38. }
  39. void wr_com(uchar com)//寫指令//
  40. {
  41.     delay(1);
  42.     lcdrs=0;
  43.     lcden=0;
  44.     P0=com;
  45.     delay(1);
  46.     lcden=1;
  47.     delay(1);
  48.     lcden=0;
  49. }
  50. void wr_data(uchar date)//寫數據//
  51. {
  52.     delay(1);
  53.     lcdrs=1;
  54.     lcden=0;
  55.     P0=date;
  56.     delay(1);
  57.     lcden=1;
  58.     delay(1);
  59.     lcden=0;
  60. }
  61. void init()//初始化設置//
  62. {
  63.     beep=1;
  64.     EA=1;
  65.     TMOD=0x01;
  66.     TH0=(65536-50000)/256;
  67.     TL0=(65536-50000)%256;
  68.     ET0=1;
  69.     TR0=1;
  70.     rd=0;
  71.     dula=0;
  72.     wela=0;

  73.     wr_com(0x38);
  74.     wr_com(0x0c);
  75.     wr_com(0x04);
  76.     wr_com(0x01);
  77.     wr_com(0x80);
  78.    for(num=0;num<15;num++)
  79.           {
  80.             wr_data(table[num]);
  81.         delay(20);
  82.           }
  83.    wr_com(0x80+0x40);
  84.    for(num=0;num<16;num++)
  85.           {
  86.             wr_data(table1[num]);
  87.         delay(20);
  88.           }
  89. }
  90. /////////////寫時分秒
  91. void write_sfm(uchar add,uchar date)
  92. {
  93.   uchar shi,ge;
  94.   shi=date/10;
  95.   ge=date%10;
  96.   wr_com(0x80+add);
  97.   wr_data(0x30+shi);
  98.   wr_data(0x30+ge);
  99. }
  100. /////////////寫年月日
  101. void write_nyr(uchar add,uchar date)
  102. {
  103.   uchar shi,ge;
  104.   shi=date/10;
  105.   ge=date%10;
  106.   wr_com(0x80+0x40+add);
  107.   wr_data(0x30+shi);
  108.   wr_data(0x30+ge);
  109. }
  110. ///////////12c887寫一位
  111. void write_ds(uchar add,uchar date)
  112. {
  113.   dsas=1;
  114.   dsds=1;
  115.   dsrw=1;
  116.   dscs=0;
  117.   P0=add;
  118.   dsas=0;
  119.   dsrw=0;
  120.   P0=date;
  121.   dsrw=1;
  122.   dscs=1;
  123.   dsas=1;
  124. }
  125. ///////////12c887讀一位
  126. uchar read_ds(uchar add)
  127. {
  128.   uchar data_ds;
  129.   dsas=1;
  130.   dsds=1;
  131.   dsrw=1;
  132.   dscs=0;
  133.   P0=add;
  134.   dsas=0;
  135.   dsds=0;
  136.   P0=0xff;
  137.   data_ds=P0;
  138.   dsds=1;
  139.   dscs=1;
  140.   dsas=1;
  141. return data_ds;
  142. }
  143. /***************************ds18b20程序****************************/
  144. void delay_18B20(uint i)//延時1微秒
  145. {
  146.    while(i--);
  147. }
  148. void ds1820rst()/*ds1820復位*/
  149. {

  150.     DQ = 1;          //DQ復位
  151.     delay_18B20(4); //延時
  152.     DQ = 0;          //DQ拉低
  153.     delay_18B20(100); //精確延時大于480us
  154.     DQ = 1;          //拉高
  155.     delay_18B20(30);
  156. }
  157. uchar ds1820rd()/*讀數據*/
  158. {
  159.     uchar i=0;
  160.     uchar dat = 0;
  161.     for (i=8;i>0;i--)
  162.     {  
  163.         DQ = 0; //給脈沖信號
  164.         dat>>=1;
  165.         DQ = 1; //給脈沖信號
  166.         if(DQ)
  167.         dat|=0x80;
  168.         delay_18B20(10);
  169.     }
  170.    return(dat);
  171. }
  172. void ds1820wr(uchar wdata)/*寫數據*/
  173. {
  174.     uchar i=0;
  175.     for (i=8; i>0; i--)
  176.     {
  177.         DQ = 0;
  178.         DQ = wdata&0x01;
  179.         delay_18B20(10);
  180.         DQ = 1;
  181.         wdata>>=1;
  182.     }
  183. }
  184. uint read_temp()/*讀取溫度值并轉換*/
  185. {
  186.     uint a,b;
  187.     ds1820rst();   
  188.     ds1820wr(0xcc);//*跳過讀序列號*/
  189.     ds1820wr(0x44);//*啟動溫度轉換*/
  190.     ds1820rst();   
  191.     ds1820wr(0xcc);//*跳過讀序列號*/
  192.     ds1820wr(0xbe);//*讀取溫度*/
  193.     a=ds1820rd();
  194.     b=ds1820rd();
  195.     temp=b;
  196.     temp<<=8;
  197.     temp=temp|a;
  198.     if(temp<0x08ff)
  199.      tflag=0;
  200.     else
  201.     {
  202.      temp=~temp+1;
  203.      tflag=1;
  204.     }                                                                                                         
  205.     temp=temp*(0.0625)*100+0.5;//溫度值擴大10倍,精確到liang位小數
  206.   return temp;
  207. }
  208. void display_real_temp(uint temp)//實時溫度顯示函數
  209. {
  210.         uchar datas[] = {0, 0, 0, 0}; //定義數組
  211.        
  212.         datas[0] = temp % 10000 / 1000;
  213.         datas[1] = temp % 1000 / 100;
  214.         datas[2] = temp % 100 / 10;
  215.        
  216.         wr_com(0x80+0x0b);     //寫地址 80表示初始地址
  217.         wr_data('0'+datas[0]); //十位
  218.        
  219.         wr_com(0x80+0x0c);     //寫地址 80表示初始地址
  220.         wr_data('0'+datas[1]); //個位

  221.         wr_com(0x80+0x0d);     //寫地址 80表示初始地址
  222.         wr_data(0x20+14); //個位
  223.        
  224.         wr_com(0x80+0x0e);     //寫地址 80表示初始地址
  225.         wr_data('0'+datas[2]); //顯示小數點

  226.         wr_com(0x80+0x0f);     //寫地址 80表示初始地址
  227.         wr_data(0x60+3); //顯示C   
  228.        
  229. }
  230. /********************************************************
  231.                     步進電機正轉
  232. *********************************************************/
  233. void  motor_zheng()
  234. {
  235.    uchar i;
  236.    for (i=0; i<8; i++)       //一個周期轉45度
  237.     {
  238.       P1 = zheng[i];          //取數據
  239.       delay(1);            //調節轉速
  240.     }
  241. }
  242. /********************************************************/
  243. /*步進電機反轉
  244. /********************************************************/
  245. void  motor_fan()
  246. {
  247. uchar i;
  248. for (i=0; i<8; i++)     //一個周期轉45度1
  249.   {
  250.         P1 = fan[i];          //取數據
  251.         delay(1);            //調節轉速
  252.   }
  253. }
  254. //////////////手動按鍵控制
  255. void shoudong()
  256. {
  257.    uchar r,N=1; //N 步進電機運轉圈數 因為我們的步進電機是減速步進電機 減速比是1/64 所以這里N=64時 步進電機外部的主軸轉1圈
  258.    if(key1==0)
  259.           {
  260.         delay(10);
  261.         if(key1==0)
  262.            {
  263.              if(!key1);
  264.              wr_com(0x80+0x40+15);
  265.              wr_data('Z');
  266.               while(1)
  267.                  {
  268.                                          for(r=0;r<N;r++)
  269.                                  {
  270.                                            motor_zheng();       //電機正轉                           
  271.                                      }
  272.                                          if(key3==0)
  273.                                           break;    //退出此循環程序
  274.                                          if(key2==0)
  275.                                           break;                     
  276.                  }
  277.                    }
  278.       }
  279.          if(key2==0)
  280.        {
  281.              delay(10);
  282.          if(key2==0)
  283.            {
  284.               if(!key2);
  285.              wr_com(0x80+0x40+15);
  286.              wr_data('F');
  287.               while(1)
  288.                 {
  289.                                  for(r=0;r<N;r++)
  290.                          {
  291.                                motor_fan();       //電機反轉                          
  292.                                  }
  293.                                  if(key3==0)
  294.                                   break;    //退出此循環程序
  295.                                  if(key1==0)
  296.                                break;
  297.                 }               
  298.            }
  299.        }
  300.           if(key3==0)
  301.         {
  302.           delay(10);
  303.           if(key3==0)
  304.             {
  305.                      if(!key3);
  306.              wr_com(0x80+0x40+15);
  307.              wr_data('G');  
  308.                          P1=0xf0;
  309.             }
  310.         }            
  311. }
  312. /////////////電機自動正轉
  313. void zidong_zheng()
  314. {
  315.   //uchar i,j
  316.   while(1)
  317.      {
  318.       motor_zheng();
  319.      }
  320. }
  321. /////////////電機自動反轉
  322. void zidong_fan()
  323. {
  324.   //uchar r,N=1;
  325.    while(1)
  326.      {
  327.        motor_fan();
  328.      }
  329. }
  330. void keyscan()
  331. {
  332.    uchar keynum;
  333.    if(key4==0)//----加和減都是在第一個按鍵按下情況下進行的
  334.     {
  335.       delay(10);//按鍵消抖----有按鍵操作就需要消抖--還需要進行松手檢測
  336.       if(key4==0)//第一個按鍵
  337.         {
  338.           flag=1;
  339.          keynum++;
  340.          if(keynum==1)//第一次按鍵--操作秒---即光標的位置<操作對象>
  341.             {
  342.               while(!key4);
  343.                   wr_com(0x80+6);//指令執行位置
  344.                   wr_com(0x0f);//光標閃爍
  345.             }
  346.          if(keynum==2)//第二次按鍵--操作分
  347.             {
  348.               while(!key4);
  349.                   wr_com(0x80+3);
  350.                   wr_com(0x0f);
  351.             }
  352.          if(keynum==3)//第三次按鍵--操作時
  353.             {
  354.               while(!key4);
  355.                   wr_com(0x80);
  356.                   wr_com(0x0f);
  357.             }
  358.          if(keynum==4)//第4次按鍵--操作日
  359.             {
  360.               while(!key4);
  361.                   wr_com(0x80+0x40+8);
  362.                   wr_com(0x0f);
  363.             }
  364.          if(keynum==5)//第5次按鍵--操作月
  365.             {
  366.               while(!key4);
  367.                   wr_com(0x80+0x40+5);
  368.                   wr_com(0x0f);
  369.             }
  370.          if(keynum==6)//第6次按鍵--操作年
  371.             {
  372.               while(!key4);
  373.                   wr_com(0x80+0x40+2);
  374.                   wr_com(0x0f);
  375.             }
  376.          if(keynum==7)//第7次按鍵一--回復操作前狀態
  377.             {
  378.                while(!key4);
  379.                keynum=0;
  380.                wr_com(0x0c);
  381.                flag=0;//DS12C887正常運行---并將修改過的值寫進芯片-----這句不加不能進入設置
  382.                write_ds(0,miao);
  383.                write_ds(2,fen);
  384.                write_ds(4,shi);
  385.                write_ds(7,ri);
  386.                            write_ds(8,yue);
  387.                            write_ds(9,nian);
  388.             }
  389.      }
  390.   }
  391. //////////////時間調整---加
  392. if(keynum!=0)
  393.         {
  394.           if(key2==0)
  395.            {
  396.              delay(10);
  397.              if(key2==0)
  398.                {
  399.                   if(keynum==1)
  400.                      {
  401.                        while(!key2);
  402.                         miao++;
  403.                        if(miao==60)
  404.                         miao=0;
  405.                         write_sfm(6,miao);
  406.                         wr_com(0x80+6);                       
  407.                      }
  408.                   if(keynum==2)
  409.                      {
  410.                        while(!key2);
  411.                         fen++;
  412.                        if(fen==60)
  413.                         fen=0;
  414.                         write_sfm(3,fen);
  415.                         wr_com(0x80+3);                       
  416.                      }
  417.                   if(keynum==3)
  418.                      {
  419.                        while(!key2);
  420.                         shi++;
  421.                        if(shi==24)
  422.                         shi=0;
  423.                         write_sfm(0,shi);
  424.                         wr_com(0x80);                       
  425.                      }
  426.                   if(keynum==4)
  427.                      {
  428.                        while(!key2);
  429.                         ri++;
  430.                        if(ri==32)
  431.                         ri=1;
  432.                         write_nyr(8,ri);
  433.                         wr_com(0x80+0x40+8);                       
  434.                      }
  435.                   if(keynum==5)
  436.                      {
  437.                        while(!key2);
  438.                         yue++;
  439.                        if(yue==13)
  440.                         yue=1;
  441.                         write_nyr(5,yue);
  442.                         wr_com(0x80+0x40+5);                       
  443.                      }
  444.                   if(keynum==6)
  445.                      {
  446.                        while(!key2);
  447.                         nian++;
  448.                        if(nian==100)
  449.                         nian=0;
  450.                         write_nyr(2,nian);
  451.                         wr_com(0x80+0x40+2);                       
  452.                      }
  453.                }
  454.            }
  455. //////////////時間調整---減
  456.          if(key3==0)
  457.            {
  458.              delay(10);
  459.              if(key3==0)
  460.                {
  461.                   if(keynum==1)
  462.                      {
  463.                       while(!key3);
  464.                       miao--;
  465.                       if(miao==-1)
  466.                           miao=59;
  467.                       write_sfm(6,miao);
  468.                       wr_com(0x80+6);
  469.                      }
  470.                   if(keynum==2)
  471.                      {
  472.                       while(!key3);
  473.                       fen--;
  474.                       if(fen==-1)
  475.                          fen=59;
  476.                       write_sfm(3,fen);
  477.                       wr_com(0x80+3);
  478.                      }
  479.                   if(keynum==3)
  480.                      {
  481.                       while(!key3);
  482.                       shi--;
  483.                       if(shi==-1)
  484.                           shi=23;
  485.                       write_sfm(0,shi);
  486.                       wr_com(0x80);
  487.                      }
  488.                   if(keynum==4)
  489.                      {
  490.                       while(!key3);
  491.                       ri--;
  492.                       if(ri==0)
  493.                           ri=31;
  494.                       write_nyr(8,ri);
  495.                       wr_com(0x80+0x40+8);
  496.                      }
  497.                   if(keynum==5)
  498.                      {
  499.                       while(!key3);
  500.                       yue--;
  501.                       if(yue==0)
  502.                           yue=12;
  503.                       write_nyr(5,yue);
  504.                       wr_com(0x80+0x40+5);
  505.                      }
  506.                   if(keynum==6)
  507.                      {
  508.                       while(!key3);
  509.                       nian--;
  510.                       if(nian==-1)
  511.                           nian=99;
  512.                       write_nyr(2,nian);
  513.                       wr_com(0x80+0x40+2);
  514.                      }
  515.                }
  516.            }
  517.         }
  518. }

  519. /********************************************************                                                      
  520. *  主程序                                                                                                   
  521. *********************************************************/
  522. void main()
  523. {
  524.    //uchar i;   
  525.     init();
  526.    while(1)
  527.     {
  528.               keyscan();
  529.           if((guang_dq==1)&&(aa<200))//----------問題在這,程序一直在這循環
  530.            {
  531.                 zidong_zheng();
  532.            }
  533.        didi();
  534.        delay(200);
  535.        P1=0xf0;
  536.        flag=0;
  537.       if(flag==0)
  538.         {
  539.                   read_temp();
  540.                   display_real_temp(temp);
  541.                   shoudong();

  542.               miao=read_ds(0);
  543.               fen=read_ds(2);
  544.               shi=read_ds(4);
  545.               ri=read_ds(7);
  546.               yue=read_ds(8);
  547.               nian=read_ds(9);
  548.        
  549.              write_sfm(6,miao);
  550.              write_sfm(3,fen);
  551.              write_sfm(0,shi);
  552.              write_nyr(8,ri);
  553.              write_nyr(5,yue);
  554.              write_nyr(2,nian);
  555.         }
  556.     }
  557. }
  558. void timer0() interrupt 1  //定時器---程序復雜--為了不影響時鐘的反應速度--在定時器內完成這些操作
  559. {

  560.   TH0=(65536-50000)/256;
  561.   TL0=(65536-50000)%256;
  562.   aa++;

  563. }

復制代碼
回復

使用道具 舉報

沙發
ID:191929 發表于 2017-5-6 19:44 | 只看該作者
問題是到了晚上,電機啟動,既然起動就要到達指定位置停下來,我用定時器來做,無奈程序一直在那循環,不知道怎么改了,希望大家幫幫我,謝謝謝謝了
回復

使用道具 舉報

5#
ID:166760 發表于 2017-5-6 19:55 | 只看該作者
沒問題啊
回復

使用道具 舉報

6#
ID:191929 發表于 2017-5-6 19:59 | 只看該作者

就是主函數里邊,keyscan()函數下邊的if語句,程序停在那,出不來
回復

使用道具 舉報

7#
ID:7485 發表于 2017-5-6 21:41 | 只看該作者
如果使用步進電機的話,可以規定步數,一定的步數自然是到達一定的位置。如果使用直流電機,一般做這類動作需要一個限位開關或傳感器,如磁、光電等傳感器。用定時即便你的程序能達到目的,也不可靠。
回復

使用道具 舉報

8#
ID:10641 發表于 2017-5-6 21:49 | 只看該作者
可以添加極限傳感器
回復

使用道具 舉報

9#
ID:191024 發表于 2017-5-6 22:26 | 只看該作者
可能是延時時間太長了,你可以使用庫函數intrins或使用DelayX_us(unsigned char t),都是引用_nop_,這樣就不會耽誤太多的時間去等待延時判斷。
回復

使用道具 舉報

10#
ID:191929 發表于 2017-5-6 22:38 | 只看該作者
本帖最后由 惜緣2008 于 2017-5-6 23:10 編輯
ahshmj 發表于 2017-5-6 21:41
如果使用步進電機的話,可以規定步數,一定的步數自然是到達一定的位置。如果使用直流電機,一般做這類動作 ...

恩恩,對的,現在想通了用定時器行不通,我用的步進電機,現在換成一個變量,還是不行不受控制,控制步數走的太慢,還是停不下來
  1. void main()
  2. {
  3.     uchar i=0;  
  4.     init();
  5.    
  6.    while(1)
  7.     {
  8.               keyscan();
  9.           if((guang_dq==1)&&(i<200))//----------問題在這,程序一直在這循環
  10.            {
  11.            i++;
  12.                    for (k=0; k<8; k++)       //一個周期轉45度
  13.                     {
  14.                       P1 = zheng[k];          //取數據
  15.                       delay(1);
  16.             }
  17.            }
  18.        //didi();
  19.       //flag=0;
復制代碼



回復

使用道具 舉報

11#
ID:191929 發表于 2017-5-6 22:39 | 只看該作者
navyzq 發表于 2017-5-6 21:49
可以添加極限傳感器

這個我還沒接觸到
回復

使用道具 舉報

12#
ID:191929 發表于 2017-5-6 22:43 | 只看該作者
HUANGHFS 發表于 2017-5-6 22:26
可能是延時時間太長了,你可以使用庫函數intrins或使用DelayX_us(unsigned char t),都是引用_nop_,這樣就不 ...

恩恩,好的,我試試
回復

使用道具 舉報

13#
ID:151348 發表于 2017-5-7 09:42 | 只看該作者
惜緣2008 發表于 2017-5-6 19:44
問題是到了晚上,電機啟動,既然起動就要到達指定位置停下來,我用定時器來做,無奈程序一直在那循環,不知 ...

你的aa相對于用于計時,aa=200,說明定時10s。問題是,定時10s結束之后,電機就要停止,但定時器timer0仍然在工作,所以aa一直有機會小于200(aa超uint范圍后又會回到0),if((guang_dq==1)&&(aa<200))就會不斷成立。所以當aa>200后,就應該關閉定時器
回復

使用道具 舉報

14#
ID:111634 發表于 2017-5-7 11:12 | 只看該作者
ahshmj 發表于 2017-5-6 21:41
如果使用步進電機的話,可以規定步數,一定的步數自然是到達一定的位置。如果使用直流電機,一般做這類動作 ...

"如果使用步進電機的話,可以規定步數,一定的步數自然是到達一定的位置。如果使用直流電機,一般做這類動作需要一個限位開關或傳感器,如磁、光電等傳感器。用定時即便你的程序能達到目的,也不可靠。"

照此辦理,沒錯!根本不需要定時器,若需早晨和晚上定時開關,倒是可以考慮用定時器。
回復

使用道具 舉報

15#
ID:197714 發表于 2017-5-7 21:38 | 只看該作者
我也做的是窗簾
回復

使用道具 舉報

16#
ID:191929 發表于 2017-5-8 11:20 | 只看該作者
zl2168 發表于 2017-5-7 11:12
"如果使用步進電機的話,可以規定步數,一定的步數自然是到達一定的位置。如果使用直流電機,一般做這類 ...

恩恩,謝謝,我試試,也有定時開關功能,還要用定時器,
回復

使用道具 舉報

17#
ID:191929 發表于 2017-5-8 11:23 | 只看該作者
imxuheng 發表于 2017-5-7 09:42
你的aa相對于用于計時,aa=200,說明定時10s。問題是,定時10s結束之后,電機就要停止,但定時器timer0仍 ...

對對對,就是這個問題,我用的是步進電機,先控制下步數,,在定時開關的時候我會這樣試試,謝謝
回復

使用道具 舉報

18#
ID:191929 發表于 2017-5-8 11:25 | 只看該作者

一起學吧,哈哈,有問題一起解決,大家這么熱情
回復

使用道具 舉報

19#
ID:7485 發表于 2018-11-2 09:25 | 只看該作者
惜緣2008 發表于 2017-5-6 22:38
恩恩,對的,現在想通了用定時器行不通,我用的步進電機,現在換成一個變量,還是不行不受控制,控制步數 ...

如果是步進電機,到了指定的步數,一定能停下來的。嫌慢你可以加快,或換步進電機。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91久久国产综合久久 | 亚洲视频一区 | 日本天堂视频在线观看 | 免费午夜视频 | 在线免费观看视频黄 | 久久久久国产精品一区二区 | 国产精品99久久久久久久久久久久 | 国产精品视频久久 | 噜久寡妇噜噜久久寡妇 | 亚洲视频在线一区 | 日本欧美国产 | 精品一区二区三区在线观看国产 | 欧洲色综合 | 日本精品999 | 狠狠亚洲 | 亚洲免费一区二区 | 黄色免费在线网址 | 伊人二区 | 草久久免费视频 | 欧美电影免费观看高清 | 亚洲成人av在线 | 久久综合入口 | 精品国产一区二区三区观看不卡 | 999久久久 | 日韩午夜网站 | 九七午夜剧场福利写真 | 在线一区视频 | 精品一区二区三区四区 | 亚洲一区二区三区免费在线观看 | 在线观看久草 | 在线观看视频91 | 欧美xxxx在线 | 99久久国产免费 | 日韩福利在线 | 久久成人人人人精品欧 | 亚洲h在线观看 | 日本涩涩视频 | 一区二区成人在线 | 日韩高清中文字幕 | 涩涩视频在线观看 | 国产一区二区三区四区在线观看 |