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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5709|回復: 0
收起左側

用單片機制做大功率調光燈

[復制鏈接]
ID:249545 發表于 2018-4-16 14:30 | 顯示全部樓層 |閱讀模式
本帖最后由 GUOXUAN 于 2018-4-17 11:05 編輯

       關于調光,除早期"檔位"制方式外,依電子線路,我認有以下三大類型:第一類屬于RC觸發控制導單/雙可控硅導通角度的方式,大部分市面的風扇無級調速器就是此類型;
第二類是SG3525A,NE555或CD4011硬件集成電路等購成PWM調速方式驅動調整管,給負載"斷續通電"工作方式;

第三類是單片機產生PWM信號I/O輸出驅動三極管給負載供電,為電子愛好者所常用,比如51HEI眾多的單片機調光電路;
        在此介紹一個另類電路:用電機推動發光燈具前的"遮光板",依遮光燈打開的程度來進行機械調光.這樣子,調光功率可以很大很大!
(以下的源程序是對推動遮光板的步進電機進行調速控制,遮光板被推到合適位置,光的強弱就"調好"了,極類似推拉窗戶~).大家理解沒有?
51單片機步進電機正反轉停止實驗- C51源代碼

  1. <font face="仿宋, 仿宋_GB2312" size="3">#include<reg51.h>       //51芯片管腳定義頭文件
  2. #include<intrins.h>    //內部包含延時函數_nop_();
  3. #defineuchar unsigned char
  4. #defineuint  unsigned int
  5. ucharcode FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};  //四相八拍正轉編碼
  6. ucharcode REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};  ////四相八拍反轉編碼
  7. sbit  K1   =P3^2;       //正轉
  8. sbit  K2   =P3^3;       //反轉
  9. sbit  K3   =P3^4;       //停止
  10. sbit  BEEP = P3^6;       //蜂鳴器
  11. /********************************************************/
  12. /*                                                  
  13. /*延時t毫秒
  14. /*11.0592MHz時鐘,延時約1ms                                    
  15. /*                                                     
  16. /********************************************************/
  17. voiddelay(uint t)
  18. {                           
  19.    uint k;
  20.    while(t--)
  21.    {
  22.      for(k=0; k<125; k++)
  23.      { }
  24.    }
  25. }

  26. /**********************************************************/
  27. voiddelayB(uchar x)    //x*0.14MS
  28. {
  29.    uchar i;
  30.    while(x--)
  31.    {
  32.      for (i=0; i<13; i++)
  33.      { }
  34.    }
  35. }

  36. /**********************************************************/
  37. voidbeep()
  38. {
  39.    uchar i;
  40.    for (i=0;i<100;i++)
  41.     {
  42.      delayB(4);
  43.      BEEP=!BEEP;                 //BEEP取反
  44.     }
  45.      BEEP=1;                    //關閉蜂鳴器
  46. }

  47. /********************************************************/
  48. /*
  49. /*步進電機正轉
  50. /*
  51. /********************************************************/
  52. void  motor_ffw()
  53. {
  54.    uchar i;
  55.    uint j;
  56.    for (j=0; j<8; j++)         //轉1*n圈
  57.     {
  58.            if(K3==0)
  59.         {break;}                //退出此循環程序
  60.       for (i=0; i<8; i++)       //一個周期轉45度
  61.         {
  62.           P1 = FFW[  i];          //取數據
  63.           delay(2);            //調節轉速
  64.         }
  65.     }
  66. }

  67. /********************************************************/
  68. /*
  69. /*步進電機反轉
  70. /*
  71. /********************************************************/
  72. void  motor_rev()
  73. {
  74.      uchar i;
  75.          uint  j;
  76.          for (j=0; j<8; j++)       //轉1×n圈
  77.       {
  78.            if(K3==0)
  79.          {break;}               //退出此循環程序
  80.         for (i=0; i<8; i++)     //一個周期轉45度
  81.         {
  82.           P1 = REV[  i];          //取數據
  83.           delay(2);            //調節轉速
  84.         }
  85.       }
  86. }
  87. /********************************************************
  88. *                                                      
  89. *  主程序                                               
  90. *                                                     
  91. *********************************************************/
  92. main()
  93. {
  94.       uchar r,N=64;             //N 步進電機運轉圈數
  95.    while(1)
  96.     {  
  97.       if(K1==0)
  98.          {
  99.         beep();
  100.                for(r=0;r<N;r++)
  101.          {
  102.                  motor_ffw();       //電機正轉
  103.                   if(K3==0)
  104.            {beep();break;}    //退出此循環程序
  105.             }
  106.       }
  107.          else if(K2==0)
  108.        {
  109.            beep();
  110.                for(r=0;r<N;r++)
  111.          {
  112.               motor_rev();       //電機反轉
  113.                  if(K3==0)
  114.            {beep();break;}    //退出此循環程序
  115.                 }
  116.        }
  117.           else  
  118.                 P1 = 0xf0;
  119.     }
  120. }</font>
復制代碼


/********************************************************/
按板上的K1按鍵步進電機正轉
按板上的K2按鍵步進電機反轉
按板上的K3按鍵步進電機停止

評分

參與人數 2黑幣 +55 收起 理由
woaidanpianji52 + 5 共享資料的黑幣獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 韩国理论电影在线 | 在线观看免费av网 | 久久久九九九九 | 欧美日韩国产精品一区 | 国产做爰 | 操射视频 | 国产成人精品网站 | 国产欧美精品一区二区三区 | 亚洲狠狠丁香婷婷综合久久久 | 欧美激情在线精品一区二区三区 | 九九九久久国产免费 | 男女视频在线观看免费 | 国产亚洲精品成人av久久ww | 成人欧美一区二区三区视频xxx | 91在线精品一区二区 | 成人国产一区二区三区精品麻豆 | 国产专区视频 | 九九99久久 | 国产精品成人一区二区三区夜夜夜 | 亚洲精品国产电影 | 亚洲精品一区二区另类图片 | 国产一区不卡 | 粉嫩国产精品一区二区在线观看 | 中日字幕大片在线播放 | 免费看片在线播放 | 亚洲综合久久精品 | 国产美女黄色片 | 亚洲国产精品久久久久婷婷老年 | 99国产精品视频免费观看一公开 | 日韩av最新网址 | 这里有精品 | 久久福利电影 | 一区二区三区电影在线观看 | 亚洲品质自拍视频 | 日韩成人在线视频 | 精品欧美久久 | 欧美日韩国产三级 | 精品欧美乱码久久久久久1区2区 | 91精品国产色综合久久 | 欧美久久久久久 | 国产最新精品视频 |