PWM is used in LED dimming; as the duty cycle of a PWM signal increases, the average voltage and power provided by the PWM increases. The intensity of an LED can be varied by pulse-width modulating the voltage across the LED. Adjustments to the intensity of the LED are made by simply varying the duty cycle of the PWM signal driving the LED.
The BBC Micro:bit has the following pins. The pin name do not correspond to the pin names in software on the mbed C++ platform and are mapped by the following:
Pin GPIO
MICROBIT_PIN_P0 P0_3
MICROBIT_PIN_P1 P0_2
MICROBIT_PIN_P2 P0_1
MICROBIT_PIN_P3 P0_4
MICROBIT_PIN_P4 P0_5
MICROBIT_PIN_P5 P0_17
MICROBIT_PIN_P6 P0_12
MICROBIT_PIN_P7 P0_11
MICROBIT_PIN_P8 P0_18
MICROBIT_PIN_P9 P0_10
MICROBIT_PIN_P10 P0_6
MICROBIT_PIN_P11 P0_26
MICROBIT_PIN_P12 P0_20
MICROBIT_PIN_P13 P0_23
MICROBIT_PIN_P14 P0_22
MICROBIT_PIN_P15 P0_21
MICROBIT_PIN_P16 P0_16
MICROBIT_PIN_P19 P0_0
MICROBIT_PIN_P20 P0_30
For this project, I am using the micro:bit, zbit:toolbelt board, an LED and a potentiometer. For LED dimming, any of the following pins can be used both for the potentiometer and LED.
Analog GPOIO Pins
MICROBIT_PIN_P0
MICROBIT_PIN_P1
MICROBIT_PIN_P2
MICROBIT_PIN_P3
MICROBIT_PIN_P4
MICROBIT_PIN_P10
I connected MICROBIT_PIN_P10 which is in analog input mode to the potentiometer. The value returned as a result is then written as the duty cycle to the LED. The LED is connected to MICROBIT_PIN_P4 in PWM mode. The micro:bit is programmed with C++ on the mbed platform with the following code:
Since I'm using a RGB LED, the micro:bit can also be programmed to change the colour of the LED with a key press. A video demonstration is shown below.
No comments:
Post a Comment