close

TOP  

 

  • 程式
    int brightness = 0;
    int fadeAmount = 5;
    int delayDuration = 30; 

    void setup() 
    {

      pinMode(3, OUTPUT);
    }

    void loop() 
    {

      analogWrite(3, brightness);
      brightness = brightness + fadeAmount;

      if (brightness <= 0 || brightness >= 255)
     {

        fadeAmount = -fadeAmount ;
      }    

      delay(delayDuration);                            
    }

  •  程式說明:

    在setup()裡,將腳位3的模式設為OUTPUT。
    在loop()裡,以函式analogWrite()改變LED的明亮程度,
    第一個參數是腳位,第二個參數是個從0到255的值,在此例裡就會改變LED的亮度,
    以變數brightness記錄亮度,
    然後每執行一次loop()就加上fadeAmount、改變brightness亮度值,
    若brightness超過了0~255的範圍,就把fadeAmount正變負、負變正,最後,延遲30 milliseconds。
    修改delay(30)這個數值,調整循環時間。

  • 電路圖




  • 接線圖


    ---延伸思考----------------------------


  • 影片: 交替呼吸燈
     

  • 程式:

    int led1 = 10; 

    int led2 = 11;
    int brightness = 0;
    int fadeAmount = 10; // 每次亮度的增減值

    void setup()
    {
    pinMode(led1, OUTPUT);
    pinMode(led2, OUTPUT);
     }

    void loop() 
    {
    analogWrite(led1, brightness);
    analogWrite(led2, 255-brightness);
    brightness = brightness + fadeAmount; // 透過迴圈改變下次的亮度值

    delay(30);   // 為了方便觀察微量的亮度變化需延遲一小段時間
    }

     

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 choufifi 的頭像
    choufifi

    choufifi教學網

    choufifi 發表在 痞客邦 留言(0) 人氣()