zoukankan      html  css  js  c++  java
  • esp32 arduino 蓝牙 使用uln2003 驱动四相五线步进电机备忘

    代码很简单,直接能看明白

    // Load libraries
    #include "BluetoothSerial.h"
    
    // Check if Bluetooth configs are enabled
    #if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
    #error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
    #endif
    
    // Bluetooth Serial object
    BluetoothSerial SerialBT;
    
    // GPIO where LED is connected to
    const int p1 = 12;
    const int p2 = 13;
    const int p3 = 25;
    const int p4 = 26;
    int  angle = 0;
    char inputdata = 0;  //Variable for storing received data
    
    
    void setup() {
      // 初始化引脚
      pinMode(p1, OUTPUT);
      pinMode(p2, OUTPUT);
      pinMode(p3, OUTPUT);
      pinMode(p4, OUTPUT);
      digitalWrite(p1, LOW);
      digitalWrite(p2, LOW);
      digitalWrite(p3, LOW);
      digitalWrite(p4, LOW);
      //初始化蓝牙
      Serial.begin(115200);
      // Bluetooth device name
      SerialBT.begin("ESP32");
      Serial.println("The device started, now you can pair it with bluetooth!");
      
    }
    void right() {
      angle = angle + 45;
      for (int i = 0; i < 16; i++) {
        digitalWrite(p1, HIGH);
        digitalWrite(p2, LOW);
        digitalWrite(p3, LOW);
        digitalWrite(p4, LOW);
        delay(10);
        digitalWrite(p1, LOW);
        digitalWrite(p2, HIGH);
        digitalWrite(p3, LOW);
        digitalWrite(p4, LOW);
        delay(10);
        digitalWrite(p1, LOW);
        digitalWrite(p2, LOW);
        digitalWrite(p3, HIGH);
        digitalWrite(p4, LOW);
        delay(10);
        digitalWrite(p1, LOW);
        digitalWrite(p2, LOW);
        digitalWrite(p3, LOW);
        digitalWrite(p4, HIGH);
        delay(10);
      }
    
    
    }
    //左转
    void left() {
      angle = angle - 45;
      for (int i = 0; i < 16; i++) {
        digitalWrite(p1, LOW);
        digitalWrite(p2, LOW);
        digitalWrite(p3, LOW);
        digitalWrite(p4, HIGH);
        delay(10);
        digitalWrite(p1, LOW);
        digitalWrite(p2, LOW);
        digitalWrite(p3, HIGH);
        digitalWrite(p4, LOW);
        delay(10);
        digitalWrite(p1, LOW);
        digitalWrite(p2, HIGH);
        digitalWrite(p3, LOW);
        digitalWrite(p4, LOW);
        delay(10);
        digitalWrite(p1, HIGH);
        digitalWrite(p2, LOW);
        digitalWrite(p3, LOW);
        digitalWrite(p4, LOW);
        delay(10);
      }
    }
    // 回原位并拉低所有电平
    void stoprun() {
      int zero = angle / 45;
      Serial.print("zero:");
      Serial.print(zero);
      if (zero > 0) {
        for (int i = 0; i<zero; i++) {
    
          Serial.print("stop:left
    ");
          left();
        }
      }
      if (zero < 0) {
        for (int i = 0; i<-zero; i++) {
          right();
          Serial.print("stop:right
    ");
        }
      }
      digitalWrite(p1, LOW);
      digitalWrite(p2, LOW);
      digitalWrite(p3, LOW);
      digitalWrite(p4, LOW);
    }
    void loop() {
      if (SerialBT.available() > 0)     // Send data only when you receive data:
      {
        inputdata = SerialBT.read();        //Read the incoming data & store into data
        Serial.print(inputdata);
        Serial.print("
    ");
    
        if (angle / 360 == 1) {
          angle = 0;
        }
        //接收到1右转45度
        if (inputdata == '1')
        {
          right();
          SerialBT.printf("%s:%d", "right", angle);
        }
        //接收到0拉低所有电平,回原位
        else if (inputdata == '0')
        {
          stoprun();
          SerialBT.print("LED OFF
    ");
        }
        //接受到2左转
        else if (inputdata == '2')
        {
          left();
          SerialBT.print("LED OFF
    ");
        }
      }
    
    }
    
    
    
  • 相关阅读:
    数据结构与算法----双向链表
    数据结构与算法----数学应用之一元多项式
    数据结构----线性表顺序和链式结构的使用(c)
    Android--Otto事件总线 -- 组件之间通讯框架使用 --模式解析
    递归 —— 二分查找法 —— 归并排序
    自己做悬浮拖拽按钮依赖
    RePlugin 插件化-内置加载
    Android图片处理--缩放
    数据结构与算法---常用三大排序算法
    Android图片处理--全景查看效果
  • 原文地址:https://www.cnblogs.com/asia9847/p/14393037.html
Copyright © 2011-2022 走看看