【Makeblock使用】蓝牙调光-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6980|回复: 1

【Makeblock使用】蓝牙调光

[复制链接]
发表于 2016-6-11 17:35 | 显示全部楼层 |阅读模式
接上一篇帖子【Makeblock使用】发现了个问题-Arduino中文社区 http://www.arduino.cn/thread-21504-1-1.html参考【新提醒】手机与Arduino蓝牙串口通讯实验及完整例程-Arduino中文社区 http://www.arduino.cn/thread-16311-1-1.html
想玩玩无线调光,那就来做吧
接线参考之前的帖子
串口数据记录,该试验可通过串口发送指令和手机发送指令控制
1.JPG
发送101X,LED点亮
Screenshot_2016-06-11-17-14-18.jpeg 20160611_171911.jpg
发送102X,熄灭
20160611_171958.jpg
发送020X,LED没之前亮
20160611_172047.jpg
发送005X,LED微暗
Screenshot_2016-06-11-17-14-52.jpeg 20160611_172121.jpg


附程序

[mw_shl_code=bash,true]int p;                           

void setup() {
               
  Serial.begin(9600);            
  pinMode(13,OUTPUT);           
}

void loop() {
  while (Serial.available() > 0) {   
    p = Serial.parseInt();         
    if (Serial.read() == 'X') {   
      switch (p) {                  
      case 101:
        digitalWrite(13,HIGH);       // 点亮LED。
        Serial.println(p);           // 回传数据。
        break;
      case 102:
        digitalWrite(13,LOW);        // 熄灭LED。
        Serial.println(p);         
        break;
      default:
        p = map(p,0,100,0,255);     
        analogWrite(13,p);           // 调整LED亮度
      }
    }
  }
}[/mw_shl_code]



接收指令格式:“101X”点亮,“102X"熄灭,”000X"调整亮度。(000为0-100的整数,表示亮度值,X是结束符。)
串口是异步接收的,用parseInt()查找第一个有效整数,检测到结束符后开始处理。用pringln()函数,数据后面加了"\r"和"\n"两个字符,可以用作结束符。



 楼主| 发表于 2016-6-11 17:37 | 显示全部楼层
只有“101X”点亮,“102X"熄灭 可以在串口助手显示
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 01:25 , Processed in 0.112713 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表