Arduino蓝牙控制三色灯

来源:互联网 发布:powerdesigner生成sql 编辑:程序博客网 时间:2024/04/27 18:58

最近开始研究arduino,网上关于arduino的材料,特别是中文的,不是很多。所以想要把自己实现的每一步都给记录一下。以后如果忘了,可以再看看。看到网上有不少人实现用蓝牙控制小灯,所以自己也动手小geek一下。

蓝牙模块用的是淘宝买的,40块钱一个,虽说也有贵的,但是便宜的感觉功能上差不多。

这里用到了arduino的扩展板,当然了,不用也行。完全是为了接下来做其他实验而准备的。蓝牙模块,要注意接线,TXRX与板上的TXRX要相反对接。然后在数字针脚9、10、11接上发光二极管。这里可加可不加电阻,不加的话亮一点。我在针脚8上加了一个灯,用于方便观察蓝牙的状态,接在蓝牙模块的state接口上。

 

接下来开发arduino程序。

[cpp] view plaincopy
  1. int redLed = 9;     
  2. int greenLed = 10;  
  3. int blueLed = 11;  
  4. int beep = 3;//指示灯,可以用蜂鸣器等代替  
  5. int state=8;//蓝牙state口  
  6. int signal;//test if connected  
  7. void setup()  
  8. {  
  9.   Serial.begin(9600);   
  10.   pinMode(state,INPUT);  
  11.   pinMode(redLed, OUTPUT);  
  12.   pinMode(greenLed,OUTPUT);  
  13.   pinMode(blueLed,OUTPUT);  
  14.   pinMode(beep,OUTPUT);  
  15.   analogWrite(redLed, 0);  
  16.   analogWrite(greenLed, 0);  
  17.   analogWrite(blueLed, 0);  
  18. }  
  19.   
  20. void loop(){  
  21.   int color;  
  22.     signal= digitalRead(state);  
  23.   if(signal==HIGH)  
  24.     digitalWrite(beep,HIGH);  
  25.    else  
  26.     digitalWrite(beep,LOW);  
  27.       
  28.   if(Serial.available()>1){  
  29.     color = Serial.read();  
  30.     int val = Serial.read();  
  31.     if(color=='r'){  
  32.       analogWrite(redLed,val);  
  33.     }else if(color=='g'){  
  34.       analogWrite(greenLed,val);  
  35.     }else if(color=='b'){  
  36.       analogWrite(blueLed,val);  
  37.     }  
  38.     Serial.print("value is :");  
  39.     Serial.println(val);  
  40.   }  
  41.   delay(10);  
  42.     
  43. }  

 

ardunio端完成后,用android客户端调用。android端,网上也能找到例子,可以自己做一些合适的修改。如果需要,可联系我。


0 0
原创粉丝点击