Turn a light emitting diode(LED) on and off using a button in Node-Red.
What You Will Learn:
- Basic circuit prototyping
- Basic Node-Red programming
What You Need to Know:
- Node-Red Basics
- At Least 1 LED
- At Least 1 resistor
- At least 2 male-female jumper wires
What is a Breadboard?
A breadboard is a prototyping platform that allows the easy creation of circuits without having to solder. Each row of the breadboard is connected internally (not across the middle break). This mean that putting something into position 1a and 1b connects them electrically together while something plugged into position 1a and 2a are electrically isolated.
The power rails on the left and right hand side of the breadboard are connected in a column and can be an easy way to access ground of power if you choose to route it there. The color red and by extension the red column is often used for power while blue is often associated with ground and thus used for a ground connection.
What is a Resistor?
A resistor is an electrical component that has a specific value of resistance measured in ohms. Resistors are used to restrict the amount of current in a circuit or facilitate a drop in voltage. Its value of resistance can be read in ohms using the colored bands on the body of the resistor.
What is an LED?
An LED is a light emitting diode. Diode’s are a class of electronic components that are designed to only allow current to pass through them in one direction. This means that LEDs are polar meaning they have an anode (positive) and a cathode (negative). Current must flow into the anode and the cathode must be attached to ground.
There are several methods of identifying the anode and cathode:
- Look at the lengths of the pins, If the LEDs’ pin have not been modified the longer pin is the anode and the shorter pin is the cathode
- Look at the sides of the LED a portion of the case will be flat the pin on that flat side is the cathode
- Look inside of the bulb, each pin is connected to a flat piece of metal internally. The pin that is attached to the larger piece is the cathode
An LED must have a current limiting resistor between it and ground or between it and power. An unprotected LED will pull more and more current until it burns itself out. The value of the resistor will have an effect on the LEDs’ luminosity. The higher the value of resistance the resistor has the less current will get to the LED and thus the dimmer the bulb will shine. The amount of current can be calculated in milliamps with Ohm’s Law, using the value in ohm’s for resistance
Setting up the Hardware
If you are following the wiring diagram make sure to attach the cathode (straight leg in the diagram) of the LED to a resistor and then to GND (ground). Attach the anode (leg with the kink) to GPIO #12.
Setting up Node-Red
Start Node-Red and navigate to 127.0.0.1:1880 using the web browser. Drag two inject nodes and a Raspberry Pi output node into the flow area
Double click on the Raspberry pi output node to open its configuration menu. Set the Pin to the same pin you physically connected the LED to. If you are following the wiring diagram this is GPIO12. Leave the Type as Digital Output. We can also Name the node, since I used a green LED I named it “Green led”, this follows a good programming practice of accurately and succinctly naming variables.
Double click one of the inject nodes. Use the drop down menu to change the Payload data type number, type a “1” in the text box. Name the inject node “on”.
Double click the unmodified inject node. Use the drop down menu to change the Payload data type to number, except type a “0” in the text box. Name this node “off”.
1 and 0 correspond for to values of a binary digit(bit) true and false, high and low, on and off respectively. These are called boolean values and are a fundamental data type in Computer Science.
Connect the inject nodes to the output node and then deploy the flow.
The green square under the Green LED node tells us what state the LED is in, 1 being on and 0 being off. Injecting a different value will change the state from off to on or from on to off.
- Try adding more LEDs (make sure each LED has its OWN resistor, using Ohm’s law what happens if more than one LED’s’ use the same resistor?)
- Can you use a single button to turn an LED on and off? (hint try using the trigger node)
- RPi Node-Red: Push Button Tutorial
- RPi Node-Red: Piezoelectric Buzzer Tutorial