Difference between revisions of "Lesson 4--Microduino "LED Brightness and PWM""

From Microduino Wiki
Jump to: navigation, search
 
Line 60: Line 60:
 
}
 
}
 
</source>
 
</source>
===analogWrite() usage===
+
===AnalogWrite() Usage===
*Usage:Writes the simulation value to the specified pin
+
*Usage: Writes the simulation value to the specified pin
*Parameters:analogWrite(pin, val)
+
*Parameters: analogWrite(pin, val)
 
**pin: Microduino I/O port number
 
**pin: Microduino I/O port number
 
**val: values from 0 to 255
 
**val: values from 0 to 255

Latest revision as of 07:19, 12 September 2016

Language: English  • 中文

Objective

In the previous three lessons, the LED was either on or off. In this lesson, you will learn how to control an LED's brightness using a button and PWM. PWM stands for pulse width modulation. The circuit adjusts the ratio of digital signals ("0", "1") to create a certain brightness. For example, if there are more 1's (HIGH), then the LED seems brighter.

Equipment

  • Microduino-Core
  • Microduino-FT232R
  • Other hardware equipment
    • 1x Box of breadboard jumper wires
    • 1x Breadboard
    • 1x LED
    • 1x 220ohm resistor
    • 1x Button
    • 1x USB Data cable


Lesson3All1.jpg

Experiment Schematic

Pwm schematic.jpg

One button is connected using internal pull-up and the other using external pull-down. They are then connected to I/O ports D0~D13. For the Microduino-Core, only D3, D5, D6, D9, D10, and D11 support PWM, so the user must connect the LED to one of those ports.

Lesson3Setup1.jpg

Program

int n=0;
void setup ()
{
  pinMode(2,INPUT);
  pinMode(7,INPUT_PULLUP);//Set to internal pull-up
  pinMode(11,OUTPUT);//PWM must use I/O ports 3、5、11、9、10、11
}

void loop()
{
  int up =digitalRead(2);          //Read port 2's state
  int down = digitalRead(7);      //Read port 7's state   
  if (up==HIGH)                    
  { 
    n=n+5;                         
    if (n>=255) {
      n=255;
    }            //The max limitation is 255   
    analogWrite(11,n);   //Using PWM control the output of port 11, the range of the variable n is 0-255
    delay (300);
  } 
  if (down==LOW)             
  {
    n=n-5;
    if (n<=0) {
      n=0;
    }
    analogWrite(11,n); //Using PWM control the output of port 11, the range of the variable n is 0-255
    delay (300);
  }
}

AnalogWrite() Usage

  • Usage: Writes the simulation value to the specified pin
  • Parameters: analogWrite(pin, val)
    • pin: Microduino I/O port number
    • val: values from 0 to 255

Result

Left button increases LED brightness and right button decreases LED brightness.

Lesson3Result1.jpg

Video