Welcome to LED Control Wiki
About this project
This project was developed after I had to find out that controlling my RGB ambient light with the normal infrared remote control was complicated and not reliable. Within a few months I build this solution that enabled controlling my LEDs with a Bluetooth-enabled Android Device running a self programmed app. On the hardware side an Arduino is receiving the commands and controlling three PWM signals.
The app is available at Google Play for free (but closed source), the Arduino sketch is released under Apache License. The used protocol is also documented in this wiki and open for usage by others.
If you like this project I would be pleased with recommendations or a good rating at Google Play. Let me also know when you find some bugs.
Requirements
You need a few things to get started:
- Arduino Uno
 - Android powered Phone/Tablet with bluetooth running Android 4.0 or above
 - RGB-LED-Stripes with common anode (one common '+' and a seperate '-/GND' for each color) (you can also use stripes with common cathodes, but the showed circuit diagramm will not work (in particular the output stage). A solution therefore is also available.)
 - External Power Supply (to power Arduino and LEDs)
 - USART capable bluetooth module (for example HC-06, available on ebay for < 10$)
 - 3x 220 Ohm resistors (gate current limiter)
 - 3x 10 kOhm resistors (gate pull-down)
 - 3x N-Channel Power-MOSFETs (enhancement mode) (for example IRF1404)
 
optional voltage divider
- 1x 4,7 kOhm resistor
 - 1x 10 kOhm resistor
 
Assembly
Connect the Arduino and the others parts as showed below. Be sure that you do not change the RX pin with the TX pin of the bluetooth module. In General: RX of the bluetooth module has to be connected to TX of Arduino and vice versa.
Caution: The HC-06 bluetooth module I bought works with 3,3V. You can power it with 5V because there is a built-in voltage regulator (make sure that yours has also one or power it with 3,3V), but RX and TX are not 5V tolerant. To avoid permanent damage the Arduino output-voltage is reduced to 3,3V by a voltage divider (therefore the 4k7 and 10k resistors). On the other hand a special step-up circuit is not necessary because the Arduino recognizes 3,3V of the bluetooth module as HIGH-Level.
Note: For permanent installations you should consider soldering your circuit on a Arduino Proto Shield (bought or home made). I personally soldered everything on a stripboard and put the whole thing in a small case.
Note: You don't need the connection from TX (pin 3) on Arduino to RX of the bluetooth module, because currently nothing will be send back to the Android device. Just remove the connection from pin 3 (Arduino) to RX (bluetooth module) and the voltage divider. It may be possible that a bidirectional communication will be used in future releases.
Installing the software
You're almost done. Now you need to install the software and select the target device.
- Upload the Arduino Sketch (https://github.com/fennel-labs/LED-control/blob/master/LEDControlArduino.ino)
 - Install the Android app on your phone (https://play.google.com/store/apps/details?id=com.fennel.ledcontrol)
 - Start a new bluetooth device discovery (Android -> Settings -> Bluetooth -> Add)
 - Start the LED Control app and select your receiver (LED Control -> Connection Settings -> your device)
 

Troubleshooting
There are several reasons why your circuit may not work as intended. Here are some possibilities:
- Check if the LED voltage is high enough and your stripes have the right polarity by connecting them directly to your power source.
 - Are RX and TX connected in the right way? Read also the notes above.
 - By default, the Arduino sends some debug data to the PC via the hardware serial. If the Software in Arduino behaves abnormal check the console log.
 - In case you are not sure whether your bluetooth module works properly or not, connect it directly to your Arduino (still keeping the voltage levels in mind, see note above). Therefore you have to remove the 328P chip temporary from your Uno.
 - To check the output stage, you can try pulling the gate of each channel to ground or +5V.
 
thanks:https://github.com/fennel-labs
Welcome to LED Control Wiki的更多相关文章
- Matlab安装记录 - LED Control Activex控件安装
		
Matlab安装记录-LED Control Activex控件安装 2013-12-01 22:06:36 最近在研究Matlab GUI技术,准备用于制作上位机程序:在Matlab GUI的技术 ...
 - 针对Windows 64位系统中Matlab没有LED Control Activex控件的解决方法
		
Win 10 64bits系统中Matlab 64位软件没有LED Control Activex控件,LED ActiveX Control控件位于Gauges Blockset模块中,而Gauge ...
 - WPF自定义LED风格数字显示控件
		
原文:WPF自定义LED风格数字显示控件 版权声明:本文为博主原创文章,转载请注明作者和出处 https://blog.csdn.net/ZZZWWWPPP11199988899/article/de ...
 - 【openwrt】再设置
		
https://wiki.openwrt.org/zh-cn/doc/uci/network https://wiki.openwrt.org/zh-cn/doc/uci/wireless https ...
 - 剖析ironic
		
关键技术 在安装操作系统时需要存储介质来存储系统镜像.需要控制物理机开关机,在网络部署环境中还需要预启动环境. PXE (预启动环境) IPMI(电源管理) iSCSI(存储) 什么是PXE PXE( ...
 - DIY PIXHAWK APM等飞控用的PPM转接板
		
需要的硬件 一块arduino pro mini(推荐这个,比较小,当然如果你没有USB转转口的烧写工具买个ardunio nano板也是不错的,直接用USB线连接电脑就可以,用nano板要注意.它的 ...
 - 【网络——Linux】——IPMI详细介绍【转】
		
一.IPMI含义 智能平台管理接口(IPMI:Intelligent Platform Management Interface)是一项应用于服务器管理系统设计的标准,由Intel.HP.Dell和N ...
 - AIX 常用命令和知识
		
BOOTLIST:#bootlist -m normal -o (查看bootlist)#bootlist -m normal (设置bootlist为空,谁要在我机器上执行我就要哭了)#boot ...
 - arduino pro mini不能下载
		
刚毕业时就知道arduino,但当时崇拜技术极致,喜欢把单片机的性能用到尽,觉得操作寄存器运行效率高,对arduino 这种高效模式贬为投机取巧,不过其中也一直对arduino 有关注. 随着芯片技术 ...
 
随机推荐
- Adding List Item Element At Runtime In Oracle Forms
			
Add combo list / drop down list item element at runtime in Oracle forms.SyntaxPROCEDURE ADD_LIST_ELE ...
 - Android Studio 简单设置
			
转自:http://ask.android-studio.org/?/article/14 界面设置 默认的 Android Studio 为灰色界面,可以选择使用炫酷的黑色界面.Settings - ...
 - Oracle的控制文件
			
一.控制文件 oracle的控制文件是极其重要的文件,它是一个较小的二进制文件. 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等等 在参数文件中描述其位置, ...
 - 【转】Linux下patch打补丁命令
			
[转]Linux下patch打补丁命令 转自:http://www.cnblogs.com/noaming1900/archive/2010/10/28/1863282.html 此命令用于为特定软件 ...
 - html,css,js加载顺序
			
1.js放在head中会立即执行,阻塞后续的资源下载与执行.因为js有可能会修改dom,如果不阻塞后续的资源下载,dom的操作顺序不可控. 正常的网页加载流程是这样的. 浏览器一边下载HTML网页,一 ...
 - Matlab 霍夫变换 ( Hough Transform) 直线检测
			
PS:好久没更新,因为期末到了,拼命复习中.复习久了觉得枯燥,玩玩儿霍夫变换直线检测 霍夫变换的基本原理不难,即便是初中生也很容易理解(至少在直线检测上是这样子的). 霍夫变换直线检测的基本原理:(不 ...
 - google protobuf ios开发使用
			
简介: protobuf 即 google protocol buffer 是一种数据封装格式协议: 比如其他经常用的xml,json等格式:protobuf的优势是效率高,同样的一份数据使用prot ...
 - node.js基础 1之 URL网址解析的好帮手
			
URL和URI的区别: URL是统一资源定位符 URI是统一资源标识符 URL是URI的子集(URL一定是URI,但URI不一定是URL) node中的URL中的url.parse protocol: ...
 - LinkedList其实就那么一回事儿之源码分析
			
上篇文章<ArrayList其实就那么一回儿事儿之源码分析>,给大家谈了ArrayList, 那么本次,就给大家一起看看同为List 家族的LinkedList. 下面就直接看源码吧: p ...
 - 在POM 4中,<dependency>中还引入了<scope>可以使用5个值
			
在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署.目前<scope>可以使用5个值: * compile,缺省值,适用于所有 ...
 
			
		