Led Dimmer With Arduino and LeapMotion controller
Hello In this quick tutorial we will learn to control the intensity of LED by using our hand gesture with Leap motion controller and Arduino. And If we close our hand the intensity (light) of an led is going to dim slowly. When we completely closed our hand grip the led will be turned OFF.
And same as when we open our hand over leap motion device the led will be turned ON. When we fully open our hand the led will glow with full intensity. This the same as using Duty cycle (pulse width modulation) of Arduino for fading Led. But here is the concept of using the hand gesture to control the fading led instead of using duty cycle ( Pulse width modulation).
So If you are getting used with Leap motion technology then it’s very easy to understand the programming about hand gestures. So If you didn’t get used to it yet so don’t worry about it.
See that link: what-is-leap-motion-controller .
It will help you to understand the basics.
As in PWM, we are using duty cycle from 0% to 100% to control anything for analog but here, in this case, we are not using the commands of PWM for any percent but we make the hands gesture to do the same work of PWM for fading lamp.If the hand is half open its mean 50% PWM goes to the output and this process is same for 25 % or 75% and others.
01: Components
- Leap Motion controller
- Arduino Uno
- Led
- 220-ohm resistor
For Interfacing 3D gesture technology (leap motion controller ) with Arduino, we are using Processing software for leap motion device and Arduino IDE software for Arduino controller. The serial communication of both device we are controlling the fading led by hand gestures.
For understanding the basics of how to communicate the leap motion to Arduino
02: Programming of Processing for Leap motion
First of all, use the command to import the library of leap motion. With this library the leap motion works otherwise it will not works. For download, the library
Import the serial processing for serial communication of Arduino with the leap motion technology. For this command, if there is changing the grip open or closed the communication will move to Arduino and Arduino will change the brightness of led. It’s same like PWM.
When we use PWM for fading it can fade between 0 to 255 means 0% to 100% of PWM but in our case, this process will go with hands. The hand closed means 0% and hand fully open means 100% and in the middle, it will depend on you how much your hand opens like 25% or 50% it’s same as done in PWM.
Here we are making a class of leap and giving the port to Arduino for serial communication with leap motion and also set the baud rate 9600. Remember if it isn’t working or giving error change “[0]” to your port number in which your micro controller is connected.
void draw() { background(0); for (Hand hand : leap.getHands()) { pushMatrix(); float handSize = hand.getSphereRadius(); int handSize2 = int(handSize); myPort.write(handSize2); println(handSize2); popMatrix(); } }
Here setting the background color black. Get the size of hand sphere radius and write it to the port.
03: Programming of Arduino
int val; int led = 13; // the pin that the LED is attached to int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // the setup routine runs once when you press reset: void setup() { Serial.begin(9600); pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { if (Serial.available() == 'n') { // Check if there is a new message val= Serial.read(); val = map(val, 30, 165, 0, 255); // map(value, fromLow, fromHigh, toLow, toHigh) analogWrite(led, val); } }
Connect the Led with pin # 13 of Arduino. Read from processing port of leap motion controller and get the size of the radius of a palm of the hand. Map the value of the radius of hands palm to the duty cycle of LED and write it by analog command. That’s the program for controlling 3D technology to hardware using the microcontroller.
Hope you Learn a lot from this.
If you have any query please inform us so our team can help you thanks. Stay Connected for more Tutorials and Subscribe to our YouTube Channel for video Tutorials.