Proton Tutorial - LED

led_piccy

LED's are great as indicators, and are very easy to interface with. PIC's can source/sink up to 25mA for each output pin, this is much more than most logic outputs will deliver, and when it comes to driving LED's, well its a simple task for a PIC.

Here's a simple program that will turn an LED on and off every 1 second:

DEVICE = 16F877 ' Specify What PIC your using
 XTAL = 4 ' The Crystal/Osc Frequency
 
ALL_DIGITAL = True ' Make all pins digital

Symbol LED_1 = PortA.0 ' Define a symbol in the program

TRISA.0 = 0 ' Make PORTA.0 an output
PORTA.0 = 0 ' and set it low (0V)

Main:
 
 If LED_1 = 0 then ' Check the status of the LED
 LED_1 = 1 ' and toggle it
 Else
 LED_1 = 0
 Endif
 
 DelaymS 1000 ' Delay for 1 second

 Goto Main ' Loop forever

 

The wiring diagram;

led_1

 

Your LED will have a predefined forward voltage and current, which can be found from the supplier your buy it from. You need to use this forward voltage to calculate the series resistor required. Say for example, my LED had a Vf of 2.0 volts, and and If of 20mA(forward current) . This means that the series resistor needs to drop 3V and yet allow 20mA to pass through it. Simple maths allows us to calculate exactly what resistance we need.

Ohms Law: V = IR
Therefore R = V/I

And if R = 3/0.020

Then R = 150 ohms

Now you know that the series resistor must be 150 ohms or greater to safely run your LED.

Forum Activity

Member Access