搜索代码

Controlling a Servo Motor using an ESP32 and Bluetooth: Push-Return ESP-SERV-BT-2

Controlling a Servo Motor using an ESP32 and Bluetooth: Push-Return ESP-SERV-BT-2

This video shows how to control position of Servo Motor using ESP32 Microcontroller and Bluetooth to move it from 0° to 180° or from 180° to 0° or set your own values. You need to download the libary specifically work with ESP32 Arduino IDE. The link to use in the "preferences" of Arduino IDE for ESP32 board https://dl.espressif.com/dl/package_esp32_index.json Watch video for instructions.
284-Resources for this sketch
语言: C++
++
/*
 * Original Servo Library source: https://github.com/RoboticsBrno/ESP32-Arduino-Servo-Library
 * 
 * This is Arduino code to control a servo motor with ESP32 boards over Bluetooth.
 * Watch video instructions for this code: https://youtu.be/-_eomicMTSo
   
 * Written/updated by Ahmad Shamshiri for Robojax Video channel www.Robojax.com
 * Date: January 5, 2019, in Ajax, Ontario, Canada
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purposes only.
 * This code has been downloaded from https://robojax.com
 
 * Get this code and other Arduino codes from Robojax.com.
 Learn Arduino step by step in a structured course with all materials, wiring diagrams, and libraries
 all in one place. 

****************************
Get early access to my videos via Patreon and have your name mentioned at the end of every 
video I publish on YouTube here: http://robojax.com/L/?id=63 (watch until the end of this video for a list of my Patrons)
****************************

or make a donation using PayPal http://robojax.com/L/?id=64

 *  * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.* 
 * This code has been downloaded from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
#include <Servo_ESP32.h>

static const int servo1Pin = 19; //printed G19 on the board

Servo_ESP32 servo1;
const char turnON ='a';
const int type =2;//watch video for details. Link is at the top of this code (robojax)

int servo1Angle =90;
int servo1AngleStep =10;

int servo1AngleMin =0;
int servo1AngleMax = 180;

int buttonPushed =0;
char receivedChar;// received value will be stored as CHAR in this variable

#include "BluetoothSerial.h"
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif

BluetoothSerial SerialBT;

void setup() {
  Serial.begin(115200);
  SerialBT.begin("ESP32_Robojax"); //Bluetooth device name
  Serial.println("The device started, now you can pair it with bluetooth\n with ESP32_Robojax");
  
    servo1.attach(servo1Pin);
    //Servo control using ESP32 from Robojax.com

}

void loop() {
  //Robojax.com ESP32 Servo BT code
    receivedChar =(char)SerialBT.read();

  if(receivedChar == turnON){
    buttonPushed = 1;
  }
  
   if( buttonPushed ){
       servo1Angle += servo1AngleStep;
       // reverse the direction of the moving at the ends of the angle:
        if (servo1Angle >= servo1AngleMax) {
          servo1AngleStep = -servo1AngleStep;
            if(type ==1)
            {
                buttonPushed =0;                   
            }
        }
        
        if (servo1Angle <= servo1AngleMin) {
          servo1AngleStep = -servo1AngleStep;
           if(type ==2)
            {
                buttonPushed =0;       
            }
        }
     SerialBT.print("Moving to:");// write on BT app
     SerialBT.println(servo1Angle);// write on BT app 
    Serial.print("Moving to:");//print on Serial Monitor
    Serial.println(servo1Angle); //print on Serial Monitor     
                  
   }//if pushed
   
   servo1.write(servo1Angle);
   delay(20);

}

资源与参考

尚无可用资源。

文件📁

没有可用的文件。