Arduino例子--调光

本文介绍如何使用Arduino板和analogWrite()函数实现LED的渐变效果。通过脉宽调制(PWM)技术,逐步调整LED亮度从最暗到最亮再返回最暗,形成循环渐变的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Fading

Demonstrates the use of the analogWrite() function in fading an LED off and on. AnalogWrite uses pulse width modulation (PWM), turning a digital pin on and off very quickly, to create a fading effect.

 

Hardware Required

  • Arduino board
  • Breadboard
  • a LED
  • a 220 ohm resistor

 

Circuit

Connect the anode (the longer, positive leg) of your LED to digital output pin 9 on your Arduino through a 220-ohm resistor. Connect the cathode (the shorter, negative leg) directly to ground.

 

click the image to enlarge

 

Schematic

click the image to enlarge

 

Code

After declaring pin 9 to be your ledPin, there is nothing to do in the setup() function of your code.

 

The analogWrite() function that you will be using in the main loop of your code requires two arguments: One telling the function which pin to write to, and one indicating what PWM value to write.

 

In order to fade your LED off and on, gradually increase your PWM value from 0 (all the way off) to 255 (all the way on), and then back to 0 once again to complete the cycle. In the sketch below, the PWM value is set using a variable calledbrightness. Each time through the loop, it increases by the value of the variable fadeAmount.

 

If brightness is at either extreme of its value (either 0 or 255), then fadeAmount is changed to its negative. In other words, iffadeAmount is 5, then it is set to -5. If it's 55, then it's set to 5. The next time through the loop, this change causes brightness to change direction as well.

 

analogWrite() can change the PWM value very fast, so the delay at the end of the sketch controls the speed of the fade. Try changing the value of the delay and see how it changes the program.

  (:div class=code :)

 

 

/*
 Fade
 
 This example shows how to fade an LED on pin 9
 using the analogWrite() function.
 
 This example code is in the public domain.
 
 */

int brightness  =  0 ;     // how bright the LED is
int fadeAmount  =  5 ;     // how many points to fade the LED by

void  setup ( )   { 
   // declare pin 9 to be an output:
   pinMode ( 9 ,  OUTPUT ) ;
} 

void  loop ( )   { 
   // set the brightness of pin 9:
   analogWrite ( 9 , brightness ) ;    

   // change the brightness for next time through the loop:
  brightness  = brightness  + fadeAmount ;

   // reverse the direction of the fading at the ends of the fade: 
   if  (brightness  ==  0  || brightness  ==  255 )  {
    fadeAmount  =  -fadeAmount  ; 
   }     
   // wait for 30 milliseconds to see the dimming effect    
   delay ( 30 ) ;                            
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值