查看: 7313|回复: 4

HC-08初次使用记录贴

[复制链接]
  • TA的每日心情
    擦汗
    2019-11-1 21:03
  • 签到天数: 101 天

    [LV.6]常住居民II

    发表于 2018-4-16 23:51 | 显示全部楼层 |阅读模式
    参加活动,弄了一块HC-08玩儿,记录一下
    蓝牙模块 HC-08,用HC自已的蓝牙APP测试
    1. 建议要没焊插针的,也给配个4针呗,虽然我有一大把呢。
    2. 板后大面积丝印的地方,建议可以将过孔周围让一下,我要从板后焊,有丝印遮住,就可能焊不牢靠,(只能通过浸润到板前的锡起到作用,但我焊时有一个怎么也浸不过去,只能反过来在前面补一回)
    3.我用了一个备用机,配置比较低,Andriod4.4.3,用HC自带的HC-COM,是可以联上,并且控制NANO的D13LED开关,并且串口回传数据,都没问题,正常
       然后需要吐槽一下的是,app没有连接,断开钮,初次连接没啥题,连接,控制 OK。但可是,可但是,我要手欠,断了HC-08的电源呢?想要联其它的蓝牙模块呢?貌似此时唯有关掉再重开app
    4.还是备用机(估计也是它太老了吧。。。),用HC自带的另一款蓝牙app  HC串口助手,这回有连接按钮啦,但为啥我连不上??点了连接,可以发现HC-08的身影,点击后,也可以看到HC-08上的指示灯由慢闪变成常亮,按说应该是已联机的状态了,但过7秒后,就提示:连接失败!  看HC-08又处于未连接状态了。
    额。。。

    附上NANO的程序,没啥可参考的,非常可以忽略它。
    const int ledPin = 13;
    int incomingByte;

    void setup() {
      Serial.begin(9600);
      pinMode(ledPin, OUTPUT);
    }
    void loop()
    {
      if (Serial.available() > 0)
      {
        incomingByte = Serial.read();
        if (incomingByte == '1')
        {
          digitalWrite(ledPin, HIGH);
          Serial.println("HC-08 led on");
        }
        if (incomingByte == '2')
        {
          digitalWrite(ledPin, LOW);
          Serial.println("HC-08 led off");
        }
      }
    }



    HC-08 反面

    HC-08 反面

    HC-08 正面

    HC-08 正面

    从这面焊,引脚焊不牢

     从这面焊,引脚焊不牢
  • TA的每日心情
    擦汗
    2019-11-1 21:03
  • 签到天数: 101 天

    [LV.6]常住居民II

     楼主| 发表于 2018-4-17 00:03 | 显示全部楼层
    后来发现HC-COM使用时,可以通过手机手退键,断开当前连接,退到蓝牙设备列表界面,还好。
    然后又用Andriod 5.1的手机试了HC串口助手,还是老样子。。。
  • TA的每日心情
    开心
    2018-9-28 11:29
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    发表于 2018-4-17 11:16 | 显示全部楼层
    这个是个什么模块啊?
  • TA的每日心情
    擦汗
    2019-11-1 21:03
  • 签到天数: 101 天

    [LV.6]常住居民II

     楼主| 发表于 2018-4-17 11:19 | 显示全部楼层
    蓝牙模块 HC-08啊
    另,客服回复是:HC-08是蓝牙4.0ble协议,需要用蓝牙4.0ble软件才能连接上呢。不能用2.0的   
       HC串口助手不适用HC-08   

    该用户从未签到

    发表于 2020-6-8 10:51 | 显示全部楼层
    本帖最后由 Bone 于 2020-6-8 10:54 编辑

    可以自己用App Inventor2写一个手机端控制软件

    [mw_shl_code=arduino,true]
    /*
    蓝牙控制步进电机
    */
    //四线
    int out1=8;
    int out2=9;
    int out3=10;
    int out4=11;
    //绝对位置控
    int absposition=0;
    int num=512;   //点击一次的旋转拍数 8*num  //4096拍外轴转动一圈
    const int speedval=1;  ///旋转速度
                     
    void setup()
    {
      //串口通信的设计
       Serial.begin(9600);
      //设置D8-D11脚为步进电机控制脚。
       pinMode(out1,OUTPUT);  
       pinMode(out2,OUTPUT);
       pinMode(out3,OUTPUT);
       pinMode(out4,OUTPUT);
    }
       
      void loop() {
        while(Serial.available())
         {
          char ValueBle=Serial.read();
            switch (ValueBle) {
              case 'F':
                    //Serial.println("开门");
                      eight_step_f(num,speedval);
                      wait();
                      absposition+=1;
                      break;
              case 'B':
                    //Serial.println("关门");
                      eight_step_b(num,speedval);
                      wait();
                      absposition-=1;
                      break;
              case 'S':
                     //Serial.println("复位");
                      if(absposition>0)
                        for (int i=0; i <absposition; i++){
                          eight_step_b(num,speedval);
                          wait();
                         }  
                      if (absposition<0)
                         for (int i=0; i>absposition; i--){
                          eight_step_f(num,speedval);
                          wait();
                         }  
                      absposition=0;
                      break;
              default:
                      break;
              }
         Serial.println(absposition);
         //Serial.write(absposition);
        }   
    }

    //  此函数正向驱动8*num拍 参数t控制速度
      void eight_step_f(int num,int t) {
        for (int i=0; i <= num; i++){
                           //  (0001)  对应8拍不同的输出值。
                    digitalWrite(out1,LOW);
                    digitalWrite(out2,LOW);
                    digitalWrite(out3,LOW);
                    digitalWrite(out4,HIGH);
                    delay(t);
                         //  (0011)
                    digitalWrite(out1,LOW);
                    digitalWrite(out2,LOW);
                    digitalWrite(out3,HIGH);
                    digitalWrite(out4,HIGH);
                    delay(t);
                          //  (0010)
                    digitalWrite(out1,LOW);
                    digitalWrite(out2,LOW);
                    digitalWrite(out3,HIGH);
                    digitalWrite(out4,LOW);
                    delay(t);  
                        //  (0110)
                    digitalWrite(out1,LOW);
                    digitalWrite(out2,HIGH);
                    digitalWrite(out3,HIGH);
                    digitalWrite(out4,LOW);
                    delay(t);
                    //  (0100)
                    digitalWrite(out1,LOW);
                    digitalWrite(out2,HIGH);
                    digitalWrite(out3,LOW);
                    digitalWrite(out4,LOW);
                    delay(t);     
                    //  (1100)
                    digitalWrite(out1,HIGH);
                    digitalWrite(out2,HIGH);
                    digitalWrite(out3,LOW);
                    digitalWrite(out4,LOW);
                    delay(t);   
                    //  (1000)
                    digitalWrite(out1,HIGH);
                    digitalWrite(out2,LOW);
                    digitalWrite(out3,LOW);
                    digitalWrite(out4,LOW);
                    delay(t);      
                    //  (1001)
                    digitalWrite(out1,HIGH);
                    digitalWrite(out2,LOW);
                    digitalWrite(out3,LOW);
                    digitalWrite(out4,HIGH);
                    delay(t);
          }
        }
      //  此函数反向驱动8*num拍 参数t控制速度   
      void eight_step_b(int num,int t) {
        for (int i=0; i <= num; i++){
                                                    //  (1001)
                    digitalWrite(out1,HIGH);
                    digitalWrite(out2,LOW);
                    digitalWrite(out3,LOW);
                    digitalWrite(out4,HIGH);
                    delay(t);
                                                    //  (1000)
                    digitalWrite(out1,HIGH);
                    digitalWrite(out2,LOW);
                    digitalWrite(out3,LOW);
                    digitalWrite(out4,LOW);
                    delay(t);
                                                    //  (1100)
                    digitalWrite(out1,HIGH);
                    digitalWrite(out2,HIGH);
                    digitalWrite(out3,LOW);
                    digitalWrite(out4,LOW);
                    delay(t);  
                                                   //  (0100)
                    digitalWrite(out1,LOW);
                    digitalWrite(out2,HIGH);
                    digitalWrite(out3,LOW);
                    digitalWrite(out4,LOW);
                    delay(t);
                                                      //  (0110)
                    digitalWrite(out1,LOW);
                    digitalWrite(out2,HIGH);
                    digitalWrite(out3,HIGH);
                    digitalWrite(out4,LOW);
                    delay(t);
                                                     //  (0010)
                    digitalWrite(out1,LOW);
                    digitalWrite(out2,LOW);
                    digitalWrite(out3,HIGH);
                    digitalWrite(out4,LOW);
                    delay(t);
                                                     //  (0011)
                    digitalWrite(out1,LOW);
                    digitalWrite(out2,LOW);
                    digitalWrite(out3,HIGH);
                    digitalWrite(out4,HIGH);
                    delay(t);
                                                           //  (0001)  对应8拍不同的输出值。
                    digitalWrite(out1,LOW);
                    digitalWrite(out2,LOW);
                    digitalWrite(out3,LOW);
                    digitalWrite(out4,HIGH);
                    delay(t);
          }
        }
        void wait() {
                    digitalWrite(out1,LOW);
                    digitalWrite(out2,LOW);
                    digitalWrite(out3,LOW);
                    digitalWrite(out4,LOW);
                    //delay(10);
         }
    [/mw_shl_code]

    App Inventor2

    App Inventor2

    APP 界面

    APP 界面
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    求一份 新版 nano V3.0 ATMEGA328P 改进版原理图
    求一份 新版 nano V3.0 AT
    如标题,求一份 新版 nano V3.0 ATMEGA328P 改进版的原理图。 串口方案为 CH340C。
    中国电子学会提供fritzing的免费版本
    中国电子学会提供fritzing
    看到网上经常有朋友说找不到fritzing的免费版本,这里推荐一个绝对安全的下载方式http
    更智能的电脑远程开关机-基于继电器
    更智能的电脑远程开关机-
    我只是刚刚入门的萌新,所以有不足请指出 先展示下 功能:开关机,开关机检测,
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表