close
- 程式:
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); // 為了方便觀察微量的亮度變化需延遲一小段時間
}
全站熱搜
留言列表