Arduino 各种模块篇 蓝牙模块 手机蓝牙控制Arduino LED灯
解决方案。
条件:
1.手机android 商店下载 blueTerm
2.向arduino中载入如下代码:
char val;
int ledpin=;
void setup()
{
Serial.begin();
pinMode(ledpin,OUTPUT);
} void loop()
{
val=Serial.read();
if(val=='o')
{
digitalWrite(ledpin,HIGH);
Serial.println("LED ON!");
}else if(val=='f'){
digitalWrite(ledpin,LOW);
Serial.println("LED OFF!");
}
}
3. 将蓝牙模块的RxD链接到arduino的Tx口上,蓝牙的TxD链接到arduino的Rx口上。

4. 打开android的blueTerm ,链接到蓝牙,默认密码1234。
链接上,在手机上输入,o
led灯亮。
键入f
led灭。
挺简单的。
——————————————————————————————————————
如果想把蓝牙放到别的口上,不占用Pin1,2 arduino与计算机默认的串口。
那就用下面的方法,模拟一个serial port, 比如说用Pin6,7 与单片机通讯。
下面的代码做参考使用:
http://arduinobasics.blogspot.com/2013/01/arduino-basics-bluetooth-tutorial.html
/* This project combines the code from a few different sources.
This project was put together by ScottC on the 15/01/2013
http://arduinobasics.blogspot.com/ Bluetooth slave code by Steve Chang - downloaded from :
http://www.seeedstudio.com/wiki/index.php?title=Bluetooth_Shield Grove Chainable RGB code can be found here :
http://www.seeedstudio.com/wiki/Grove_-_Chainable_RGB_LED#Introduction */ #include <SoftwareSerial.h> //Software Serial Port #define uint8 unsigned char
#define uint16 unsigned int
#define uint32 unsigned long int #define RxD 6 // This is the pin that the Bluetooth (BT_TX) will transmit to the Arduino (RxD)
#define TxD 7 // This is the pin that the Bluetooth (BT_RX) will receive from the Arduino (TxD) #define DEBUG_ENABLED 1 int Clkpin = ; //RGB LED Clock Pin (Digital 9)
int Datapin = ; //RGB LED Data Pin (Digital 8) SoftwareSerial blueToothSerial(RxD,TxD); /*----------------------SETUP----------------------------*/
void setup() {
Serial.begin(); // Allow Serial communication via USB cable to computer (if required)
pinMode(RxD, INPUT); // Setup the Arduino to receive INPUT from the bluetooth shield on Digital Pin 6
pinMode(TxD, OUTPUT); // Setup the Arduino to send data (OUTPUT) to the bluetooth shield on Digital Pin 7
pinMode(,OUTPUT); // Use onboard LED if required.
setupBlueToothConnection(); //Used to initialise the Bluetooth shield pinMode(Datapin, OUTPUT); // Setup the RGB LED Data Pin
pinMode(Clkpin, OUTPUT); // Setup the RGB LED Clock pin } /*----------------------LOOP----------------------------*/
void loop() {
digitalWrite(,LOW); //Turn off the onboard Arduino LED
char recvChar;
while(){
if(blueToothSerial.available()){//check if there's any data sent from the remote bluetooth shield
recvChar = blueToothSerial.read();
Serial.print(recvChar); // Print the character received to the Serial Monitor (if required) //If the character received = 'r' , then change the RGB led to display a RED colour
if(recvChar=='r'){
Send32Zero(); // begin
DataDealWithAndSend(, , ); // first node data
Send32Zero(); // send to update data
} //If the character received = 'g' , then change the RGB led to display a GREEN colour
if(recvChar=='g'){
Send32Zero(); // begin
DataDealWithAndSend(, , ); // first node data
Send32Zero(); // send to update data
} //If the character received = 'b' , then change the RGB led to display a BLUE colour
if(recvChar=='b'){
Send32Zero(); // begin
DataDealWithAndSend(, , ); // first node data
Send32Zero(); // send to update data
}
} //You can use the following code to deal with any information coming from the Computer (serial monitor)
if(Serial.available()){
recvChar = Serial.read(); //This will send value obtained (recvChar) to the phone. The value will be displayed on the phone.
blueToothSerial.print(recvChar);
}
}
} //The following code is necessary to setup the bluetooth shield ------copy and paste----------------
void setupBlueToothConnection()
{
blueToothSerial.begin(); //Set BluetoothBee BaudRate to default baud rate 38400
blueToothSerial.print("\r\n+STWMOD=0\r\n"); //set the bluetooth work in slave mode
blueToothSerial.print("\r\n+STNA=SeeedBTSlave\r\n"); //set the bluetooth name as "SeeedBTSlave"
blueToothSerial.print("\r\n+STOAUT=1\r\n"); // Permit Paired device to connect me
blueToothSerial.print("\r\n+STAUTO=0\r\n"); // Auto-connection should be forbidden here
delay(); // This delay is required.
blueToothSerial.print("\r\n+INQ=1\r\n"); //make the slave bluetooth inquirable
Serial.println("The slave bluetooth is inquirable!");
delay(); // This delay is required.
blueToothSerial.flush();
} //The following code snippets are used update the colour of the RGB LED-----copy and paste------------
void ClkProduce(void){
digitalWrite(Clkpin, LOW);
delayMicroseconds();
digitalWrite(Clkpin, HIGH);
delayMicroseconds();
} void Send32Zero(void){
unsigned char i;
for (i=; i<; i++){
digitalWrite(Datapin, LOW);
ClkProduce();
}
} uint8 TakeAntiCode(uint8 dat){
uint8 tmp = ;
if ((dat & 0x80) == ){
tmp |= 0x02;
} if ((dat & 0x40) == ){
tmp |= 0x01;
} return tmp;
} // gray data
void DatSend(uint32 dx){
uint8 i;
for (i=; i<; i++){
if ((dx & 0x80000000) != ){
digitalWrite(Datapin, HIGH);
} else {
digitalWrite(Datapin, LOW);
} dx <<= ;
ClkProduce();
}
} // data processing
void DataDealWithAndSend(uint8 r, uint8 g, uint8 b){
uint32 dx = ; dx |= (uint32)0x03 << ; // highest two bits 1,flag bits
dx |= (uint32)TakeAntiCode(b) << ;
dx |= (uint32)TakeAntiCode(g) << ;
dx |= (uint32)TakeAntiCode(r) << ; dx |= (uint32)b << ;
dx |= (uint32)g << ;
dx |= r; DatSend(dx);
}
Please take good notice of the references blow of the link which I give you above.
No third lib required. Only original one.
***********************************************************************
Also here's another project about how to control arduino widgets via bluetooth protocol.
Bluetooth , motor, android, arduino
http://www.instructables.com/id/Arduino-Control-DC-Motor-via-Bluetooth/step3/Arduino-Code/
Arduino 各种模块篇 蓝牙模块 手机蓝牙控制Arduino LED灯的更多相关文章
- arduino 蓝牙控制RGB LED灯
/* 日期:2016.9.2 功能:arduino 蓝牙控制RGB LED灯 元件: 跳线公公头 * 8 rgbled, 220欧电阻 蓝牙模块 接线: 蓝牙模块VCC,GND分别接5V,GND;TX ...
- win7蓝牙连接手机蓝牙
今天有个需求,需要win7 PC连接手机蓝牙,并发送文件到手机端.在此记录下过程. 准备: win7 电脑主机. CSR 蓝牙dongle. 手机 1. 打开蓝牙服务 方法:打开控制面板,找到“管理工 ...
- Arduino 各种模块篇 GPRS module 手机模块 短信 电话 上网 for texting, calling, internet
---恢复内容开始--- The GPRS shield which I tested is one which looks like this: ---恢复内容结束--- Need to be re ...
- Arduino 各种模块篇 摇杆模块
Arduino的另外几种模块,我们常见的joystick摇杆模块. 用起来很爽,摇杆 有X,Y轴可调 这里有一篇非常想尽的示例代码: http://www.geek-workshop.com/foru ...
- Arduino 各种模块篇 震动模块 vibrator module
The vibrator I got works at the voltage ranging from 3.3V ~ 5.5V I want to make it vibrate variably. ...
- Arduino 各种模块篇 震动模块 vibrator
vibrator is a good thing. it has multi-funtionality . :) Now the vibrator we choose is the one whic ...
- [TPYBoard-Micropython之会python就能做硬件 7] 学习使用蓝牙模块及舵机
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.实验器材 1.TPYboard V102板 一块 2 ...
- 51单片机 HC05蓝牙模块
一.注意事项 1.烧写程序时,要把蓝牙tx,rx信号线拔掉,对烧写程序有影响. 2.执行HC05集命令时,均以\r\n结尾.串口中断若选择“发送新行”时,不用添加\r\n.原理相同. 二.准备软硬件 ...
- Arduino使用HC05蓝牙模块与手机连接
Arduino使用HC05蓝牙模块与手机连接 一切都是最好的选择 首先是线路连接,一定不要接错了 Arduino 代码 #include <SoftwareSerial.h> // Pin ...
随机推荐
- new 和delete
转自:http://www.cnblogs.com/charley_yang/archive/2010/12/08/1899982.html 一直对C++中的delete和delete[]的区别不甚了 ...
- EF结合SqlBulkCopy
EF结合SqlBulkCopy在项目中的使用 这是我第一次写博客,由于水平有限,写不出什么好东西,还望见谅. 我现在参与的这个项目采用的是EF框架,方便了数据库的访问.但在实际中,发现项目中导入市县E ...
- 【剑指offer】Q32:从1至n整1出现的次数(python)
def q32(n, len): if n < 0: return 0 elif n <= 1: return n total = 0 while n > 0: if n >= ...
- 快速构建Windows 8风格应用15-ShareContract构建
原文:快速构建Windows 8风格应用15-ShareContract构建 本篇博文主要介绍共享数据包.如何构建共享源.如何构建共享目标.DataTransferManager类. 共享数据包 Da ...
- 快速构建Windows 8风格应用13-SearchContract构建
原文:快速构建Windows 8风格应用13-SearchContract构建 本篇博文主要介绍如何在应用中构建SearchContract,相应的原理已经在博文<快速构建Windows 8风格 ...
- selenium2入门 用Yaml文件进行元素管理 (五)
比如界面有一个按钮,id号是test.如果进行对象化的话,就是test.click就可以了.不用每次都要去创建test对象.如果id号变了,我们也只需要改一下test的名称就行了. 使用Yaml需要用 ...
- C#使用COM搜索本地word文档关键字
/// <summary> /// 检索根目录下的子目录及其所有文件,并在datagridview中显示文档名称及路径--递归调用 /// </summary> /// < ...
- leetco Path Sum II
和上一题类似,这里是要记录每条路径并返回结果. Given the below binary tree and sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 ...
- IE6/7中li浮动外边距无法撑开ul的解决方法
昨天群里有人提出了这样的问题: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 < ...
- mysql 安装后无法登陆mysql的 shell 那mysql>经验:ERROR 1045 (28000): Access denied for user 'root'@'localhost‘
[root@hzswtb2-mpc ~]# mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using pas ...