2021年7月5日 星期一

6個pwm led

 int led[] ={3,5,6,9,10,11};      //共有6個pwm 的led     

int i=0; 

int j=0;

int way=0;//往上亮或是往下暗,用boolean也可以

//-------------------------------------------------------------------------

void setup()  

{

  int i;

  for(i=0;i<=5;i++)//先設定pwm pin腳位為輸出模式

  {

     pinMode(led[i],OUTPUT); 

  }

//------------------------------------------------------------------------------

void loop()  

  while(1)

  {  

   if(way==0)//way=0代表慢慢亮,每次加數字5的亮度,超過255就改flag=1

    {

      i=i+5;

      if(i>=255)

        way=1;   

      analogWrite(led[j],i);  //led腳位變數用j, 亮度漸亮用i,不要conflict, 且類比寫出腳位(因為我們j為gobal var,所以memory var會跟著change

      delay(10); //要delay否則看不出亮度的變化

    }  

    else//否則   0跑到255 一定會跑到else 255跑到0

    {  

      i=i-5;//每次亮度減5即(慢慢變暗暗)

      analogWrite(led[j],i);  

      delay(10); 

       if(i<=0)//如果亮度變數小於0,方向又變為0往上亮

       {//此處要大括號整個包含,因為亮到暗是一個週期

        analogWrite(led[j],0);//此行可以不用寫

        way=0;        

        j=j+1;//led腳位共有6pin腳位,超過6就又歸0

        if(j>5)

         j=0; 

      }      

    } 

  }  

}

沒有留言:

張貼留言

algorithm

 #include <iostream> #include <string.h> using namespace std; int main(int argc, char** argv)  { for(int j=2;j<=100;j++)//j...