Blinking Multiple LED's with MSP430 Energia

Blinking Multiple LED's with MSP430 Energia

  • Comments 10

Now that you know how to blink one LED, what's the next step?
Blinking multiple LED's!

2012-10-19 10.51.57

This post is a follow up from the previous Post- Blinking one LED found here.
(There is a more in depth presentation about detailed set up if you weren't able to do the exercise before, or you can comment and ask questions!).


Blink Multiple LED's
Level: Beginner
Exercises Covered:
Blink 1 LED
Change Pin on Microcontroller for Output
Add LED's to the Blink LED Program

Theory Lessons:
What are Pins (on a Microcontroller)? 
Parts of an Energia Program-Sketch 



What you will need:

Material Previous? Additional
1 MSP-EXP430G2 Board + the USB Cable Buy Here 1
Computer running version of Energia (to install go here): 1
Breadboard (2 x3 ) or larger like this one 1
5mm LED of any Colour (I chose high intensity green and got mine here) 1 + 6 More for a total of 7
Resistor for LED any value under 1K Ohms - (I chose 560 ohms) and got it from a pack like this 1 +6 More for a total of 7
Jumper Wires (depending on your LaunchPad headers). Mine are M/F here are some similar 2 +7 More for a total of 9

2012-10-19 09.04.41

You really don't need to get a whole lot of extra from the previous post.


Concepts Used:
How to Wire Up a Breadboard
How to Wire a Breadboard with an LED
Using Energia Examples

Concepts to Learn:
Wiring more than 1 LED
microcontroller pin out
changing and modifying a program




Getting Started:

-verify you LaunchPad is working.
Plug your LaunchPad into the computer.

v1.5


**If your LaunchPad is brand new, the LED should blink red and green back and forth.
**If your LaunchPad is from the previous post, then the indicator LED will be lit up (LED2).


Wire up your breadboard.
Connect 1 of the jumper wires from the side of the breadboard you are using - (blue) to the GND terminal on the LaunchPad.
This is providing power the the breadboard.


In the previous post you wired up 1 LED.

2012-10-19 09.28.52


Start with connecting a 560K resistor from the negative column to the row you will be connecting the negative of the LED.
(suggest from the Blue (-) rail one end of the resistor and connect the other end of the resistor to row 3 column c).
Hold up the LED, there is a long leg and a short leg.


borrowed from A Modular Life

orient the LED so the short leg is going into row 3 and the long leg is going to row 2- ( suggest plugging into column e).
Then you will connect the jumper wire. This will be your positive. Connect the jumper wire from the positive of the LED (remember we plugged it into row 2, so you will want to plug the jumper into one of the 4 remaining spots on row 2).

2012-10-19 09.05.43


Normally you would connect the jumper wire to the pin on the LaunchPad, but in this case we're going to leave that last wiring until later.
However, we will use this opportunity to test the LED.

2012-10-19 09.08.07

Take the jumper (with the female end) and touch it to the VCC pin of the LaunchPad. You should see the LED light up.
Keep it disconnected and move to the next LED.



**For help here, look at this tutorial on how to use a breadboard and wire 1 LED by ScienceOnline here


Wire up the rest of the LED's, testing each one of them as you go along (touching the end of the positive jumper to VCC) and verifying that the LED does work.
This is how I wired mine:


LED A
LED B
LED C
LED D
LED E
LED F
LED G
+ or Cathode (longer lead of LED)
e2 e6 e10 e14 e18 e22 e26
- or Anode (shorter LED Lead)
e3 e7 e11 e15 e19 e23 e27
560K Resistor side 1
c3 c7 c11 c16 c19 c23 c27
560 K Resistor side 2
-3 -7 -11 -16 -19 -23 -27
Jumper Wire breadboard side)
a2 a6 a10 a14 a18 a22 a26
Jumper Wire LaunchPad Side
? ? ? ? ? ? ?

blink multiple LED



------------

Exercise1: Blink 1 LED If you did the previous post, you may skip this section
Now that you have the hardware all wired up, you're ready to start to connect the LaunchPad to the wires.
The first is to open up the Blink LED Example and load and execute the program.
If you have it open from the previous post, feel free to use that, but the first few steps may repeat what you have already done.

- Open Energia

Load the Blink LED Program.
This turns on the LED for 1 second then turns it off for one second.
- File--> Examples--> Basic--> Blink LED
- hit the LOAD Button
Screen Shot 2012-10-19 at 4.36.33 PM
-Let the load complete.
-See the LED on the LaunchPad blink for 1 second then off for 1 second.



Exercise2: Change the pin for the LED:
-now go back to Energia and notice the following lines of code.

Screen Shot 2012-10-17 at 10.10.25 AM

This is to blink only 1 LED.
If you notice it, pin 14 is what is called out.
Go through each line of the code and change it to pin 3.

Screen Shot 2012-10-17 at 9.44.45 AM

When you are done, hit LOAD.
-See the LED Turn off.
Now that the LED has turned off, this means that your program has loaded.
Instead of turning Pin 14 on and off... it is now turning on and off Pin 3.
But, you don't have anything connected on Pin 3.

So, Let's wire something to Pin 3, but first, we need to know what are Pins.



THEORY: What are Pins?
When you look at your Energia Sketch, you see that it declares a "Pin"
The Pin that the sketch is referring to is the "Pin" on the Microcontroller.
The microcontroller on the LaunchPad is the MSP430G2553, which has 20 Pins.
It's useful to learn what your microcontroller's "Pin out" is, which you can usually find in the microcontroller's datasheet (page 3 for the top figure).

Screen Shot 2012-10-19 at 5.21.55 PM
The one thing you need to pay attention to is where the numbers are on pin-out. These numbers correspond to each of the device's Pin's. This is what Energia is calling out when it says, Pin 14.


Luckily the LaunchPad also has 20 pins and it aligns nicely with the pin-out on the MSP430G2553 device.
This means that when we refer to Pin 3 on the Microcontroller, you can easily count the header pins to find Pin 3. 

Screen Shot 2012-10-19 at 5.13.22 PM

The LaunchPad's header pins have a "silkscreen" that labels each of the pins to help make it easier for users.
You can use the silk screen to help you remember what each pin does.

**You should already have VCC and GND connected to jumper wires to the + bus (red) of the breadboard and the -  (blue) bus. This means you have Pins 1 and Pins 20 tied to + and -.

Here's a reference:

Screen Shot 2012-10-19 at 5.13.34 PM

This will be particularly important when:
1. want to take the microcontroller off of the LaunchPad and place it on the breadboard
2. have a microcontroller that may have less pins (such as the MSP430G2231 with 14 pins) than what the LaunchPad has.

**For now it's important for you to know that the software (Energia) is talking to the microcontroller, but the physical part (the wires and the breadboard) are talking to the LaunchPad. If you want to move a pin, you will need to make sure to make a change in both, the microcontroller and the wires. **

Here's an amazing reference for the hardware: Energia Hardware

Exercise2.a: Continue to change Pin... Connect LED A to Pin3
Let's get back to our breadboard.
So, we have loaded already a program is making the LED blink for 1 second on and 1 second off for Pin 3.
On the MSP430G2553 Pin 3 is the third pin on the left hand side of the launchpad labeled with a silk screen P1.1.
(You can either count the pins starting from Pin 1 to get to Pin 3, or you can use the silk screen to find P1.1. )
Take the jumper from LED A that isn't connected to anything (the other 6 should still be disconnected since only the + and - buses are connected) and connect it to Pin 3.

2012-10-19 17.11.14



The LED A should begin to flash.

2012-10-20 10.12.20

Now, we are ready to make the rest of the LED's blink.
The hardware (in this case the breadboard) is already wired up. All we need to do is get the program modified and ready to work and then connect the hardware.
So, getting working on the program first...

------

To be able to modify the microcontroller to have more LED's we need to change the program or "sketch" to have the extra pins.
Let's first understand the parts of a sketch.

THEORY: Parts of a "Sketch"(Energia Program)
Go back to the Energia Window and look at how the program is put together.
Screen Shot 2012-10-20 at 10.15.12 AM copy
In general you will declare variables- although this program doesn't have any yet.
Then you need to initialize the pins that are getting used (tell the program what microcontroller pins it should be paying attention to).
Then it runs the program.

So, looking at the Blink LED Program  (above) we can read it to be:
There are no variables.
Set up pin 3 (connected to LED A) to be an output.
When the program runs,
it will do a digitalWrite of pin 3 to be HIGH or "on"
delay for 1000 mili seconds. (keep it on high for 1 second).
Then do a digitalWrite of the same pin (pin3) to be LOW or "off"
and delay for 1000 milliseconds.
then it repeats (the loop).

and modify the program to basically add another LED.
we'll need to Set Up that pin.
Then add it to the program.

Exercise: Add LED's to the Blink LED Program.

modify your program to look like this:
Screen Shot 2012-10-20 at 10.33.54 AM
hook up LED B cable to Pin4.
Now you should have LED A blink for one second, then turn off. Then LED B blinks for one second then turns off.

continue to add the rest of the pins. 

If you wanted to only to have each LED blink for 1 second in sequence you can use this method.
Make sure to connect your LED's to the board to the corresponding pins.


Example Code is attached to the end of this post.
You can either open that code and copy and paste it over your existing program or you can choose to type it out .


LED A
LED B
LED C
LED D
LED E
LED F
LED G
+ or Cathode (longer lead of LED)
e2 e6 e10 e14 e18 e22 e26
- or Anode (shorter LED Lead)
e3 e7 e11 e15 e19 e23 e27
560K Resistor side 1
c3 c7 c11 c16 c19 c23 c27
560 K Resistor side 2
-3 -7 -11 -16 -19 -23 -27
Jumper Wire breadboard side)
a2 a6 a10 a14 a18 a22 a26
Jumper Wire LaunchPad Side
3 4 5 6 7 8 9


Once you have the new program loaded and the LED's wired to the correct pins you should have all seven LED's blinking one at a time and repeating.

Congratulations, you've blinked all seven LED's...
You can stop here and play with the delay times, change the order of the blocks of code (if you put the code in different orders, you'll get different routines)

Now that you can blink them in order, what can you do with it?
Here's a quick one that spells out a team name for Football Sunday :-) (may be hard to see in the beginning).

otherwise, try modifying the code to make the LED's blink out of order!

Screen Shot 2012-10-20 at 12.34.16 PM


Preview: the next post will cover the coding that will cover making more complicated routines.

Attachment: Multiple_LEDs1_oneafterother.ino
  • Hello Larissa.

    Nice post. Great for beginners.

    The jumper wires you're using look really useful. Did you purchase them? Where?

    Thanks in advance.

  • Hi Luis,

    Here are the ones I reccomended in the post. www.sparkfun.com/.../9140 there are 10 in this pack and it isn't too spendy.

    however, if you are looking for more and are willing to spend a little more, Mouser has the exact ones that I used a 100 pack www.mouser.com/.../920-0023-01

    Hope that helps!

  • Hello Larissa.

    I've bought those from Sparkfun. They work fine, I just like the look of the ones from Schmartboard better, but for the price, I think I'll stick to the ones from Sparkfun, they work as well.

    Thanks for the reply  ;).

  • No problem, I also looked at these which have the nice finished heat shrink wrapped ends the ones from mouser have.

    Hope that helps!

    item.mobileweb.ebay.com/viewitem

    Sent from my iPhone,

    Larissa

  • Thanks.

    I'll keep the links for when I need to buy some more.

    Luis.

  • Hello. I am a complete beginner and I have a question...Does this MSP430 Energia only when it is connected via usb to computer or it has its own memory and can work, when it is just connected to power supply?

    Thank you very much!

  • Sorry for being so ignorant and not reading previous post...It has its own memory so you can connect it to power supply and it will work!! Thanks anyway and once again sorry :)

  • No problem Boris-

    I hope this helps you learn and we get to see your project!

  • I am porting the mechatronics course from PIC to MSP430 + energia this term and was just sitting down to rewrite the labs.  This blog post saved me a bunch of work!  

  • HI Martin, I'm glad that the post help. Thank you so much for letting me know if helps. If you need any help, let me know! I'd love to see what you are doing in your Mechatronics course sometime, I hope you share!

The University Program blog is a part of the TI Blogs and talks about all things education. Check back every day for topics on the latest TI teaching tool packages, industry trends, research projects, and academic-relevant opinion pieces. Join the TI University Program in industry—university collaboration to provide a more comprehensive and robust education for your electrical engineering students.