PWM using Arduino: In this article we will look at Pulse-Width Modulation, how to use the Arduino to generate it, and what it does.
How to use the Arduino to generate Pulse-Width Modulation (PWM)
You will understand what PWM is, and how to use the Arduino to generate it. We will do this by dimming an LED. An LED is a Light Emitting Diode, and it can only be connected one way. If you connect it in reverse, it will not work at all.
You can distinguish the polarity of an LED in two ways. Firstly, there will be a longer leg and a shorter leg on the LED. The longer leg is positive and the shorter leg is negative. Sometimes however, the leg length may not be easily visible. For instance, if you have cut the legs shorter for a different project, or bent them for a breadboard. In this case, you can use the second method.
The second method is to look at the plastic body of the LED. You will notice one side of it is FLAT. This signifies the NEGATIVE side of the LED.
Components Required
- Arduino
- Breadboard
- LED
- Jumper Wires (Male to Male)
- 1x 1k Resistor
Procedure
In this article we will be wiring a circuit on the breadboard. A breadboard is a very handy prototyping board, which allows you to make non-permanent connections between components very fast, you can change components and connections without needing to bond anything together.
In this article we will be connecting an LED to a pin on the Arduino. If we were to connect it to the 5v output it would shine at full brightness. However we will be using the PWM abilities of the Arduino to “chop” the 5 volts up. Essentially we will turn 5v on and off rapidly, which will make the LED turn on and off. The longer we allow the pulses to be, the brighter the LED will seem. The slower we make them, the dimmer it will seem.
Code
//----Begin Code---- //Variables int pwmVal = 255; //PWM range is 0 - 255. Change this value and reupload to see the difference! void setup() { // put your setup code here, to run once: pinMode(ledPin, OUTPUT); //Set the pin we chose above as OUTPUT. This is actually automatic however I included it to give an example of where you might use this feature. analogWrite(6, pwmVal); // the 6 is the pin on the Arduino the LED is connected to, pwmVal is the variable containing the value for the PWM duration. analogWrite tells the Arduino this is a PWM pin. } void loop() { // put your main code here, to run repeatedly: } //----End Code ----
Comments
Post a Comment