แหล่งดาวน์โหลดLibraryรวม :
Arduino IDE Code
/*************************************************************
Download latest Blynk library here:
https://github.com/blynkkk/blynk-library/releases/latest
Blynk is a platform with iOS and Android apps to control
Arduino, Raspberry Pi and the likes over the Internet.
You can easily build graphic interfaces for all your
projects by simply dragging and dropping widgets.
Downloads, docs, tutorials: http://www.blynk.cc
Sketch generator: http://examples.blynk.cc
Blynk community: http://community.blynk.cc
Follow us: http://www.fb.com/blynkapp
http://twitter.com/blynk_app
Blynk library is licensed under MIT license
This example code is in public domain.
*************************************************************
This example runs directly on ESP32 chip.
Note: This requires ESP32 support package:
https://github.com/espressif/arduino-esp32
Please be sure to select the right ESP32 module
in the Tools -> Board menu!
Change WiFi ssid, pass, and Blynk auth token to run :)
Feel free to apply it to any other example. It's simple!
*************************************************************/
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 OLED(-1);
#include <ESP32Servo.h>
//////////////////////// set power motor //////////////////////////
int power1 = 150 ;
/////////////////////////////////// Setup Port ////////////////////
#define DR1 2 ///1A
#define DR2 15 /// 1A
#define PWMR 13 /// 1A
/////////////////////////////////
#define DL1 16 // 2A
#define DL2 17 // 2A
#define PWML 4 /// 2A
/////// ช่อง B //////////////////////////////////
#define DL1b 18 // 1B
#define DL2b 19 //1B
#define PWMLb 12 //1B
//////////////////////////////////
#define DR1b 26 //2B
#define DR2b 27 //2B
#define PWMRb 14 // 2B
///////////////////////////////////////////////////////////////////
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "JRunGgRgKeC4KMUJwCCnpBoSx6DnEUmpox";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "BJHome1";
char pass[] = "1234567890";
///////////////////////////////////////////////////////////////////
void setup()
{// setup port motor//
pinMode(DL1, OUTPUT);
pinMode(DL2, OUTPUT);
pinMode(PWML, OUTPUT);
pinMode(DR1, OUTPUT);
pinMode(DR2, OUTPUT);
pinMode(PWMR, OUTPUT);
////////////////////////////
pinMode(DL1b, OUTPUT);
pinMode(DL2b, OUTPUT);
pinMode(PWMLb, OUTPUT);
pinMode(DR1b, OUTPUT);
pinMode(DR2b, OUTPUT);
pinMode(PWMRb, OUTPUT);
// Debug console
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
}
//////////////////////// set control robot virtual ///////
BLYNK_WRITE(V0)
{
if (param[0])
f();
else
RUN(0,0);
}
BLYNK_WRITE(V1)
{
if (param[0])
r();
else
RUN(0,0);
}
BLYNK_WRITE(V2)
{
if (param[0])
b();
else
RUN(0,0);
}
BLYNK_WRITE(V3)
{
if (param[0])
l();
else
RUN(0,0);
}
//////////////////////// set function motor ///////////////
void f(){RUN(power1,power1);}
void b(){RUN(-power1,-power1);}
void l(){runa(-power1,-power1);runb(power1,power1);}
void r(){runa(power1,power1);runb(-power1,-power1);}
//////////////////////////////////////////////
void RUN(int m1,int m2){runa(m1,m2);runb(m1,m2);}
void run(int spl, int spr) // ประกาศฟังก์ชัน run(กำลังมอเตอร์ซ้าาย,กำลังมอเตอร์ขวา);
{
if (spl > 0)
{
digitalWrite(DL1, LOW);
digitalWrite(DL2, HIGH);
analogWrite(PWML, spl);
}
else if (spl < 0)
{
digitalWrite(DL1, HIGH);
digitalWrite(DL2, LOW);
analogWrite(PWML, -spl);
}
else
{
digitalWrite(DL1, LOW);
digitalWrite(DL2, LOW);
analogWrite(PWML, -255);
}
//////////////////////////////////////
if (spr > 0)
{
digitalWrite(DR1, LOW);
digitalWrite(DR2, HIGH);
analogWrite(PWMR, spr);
}
else if (spr < 0)
{
digitalWrite(DR1, HIGH);
digitalWrite(DR2, LOW);
analogWrite(PWMR, -spr);
}
else
{
digitalWrite(DR1, LOW);
digitalWrite(DR2, LOW);
analogWrite(PWMR, -255);
}
}
void runa(int spl, int spr) // ประกาศฟังก์ชัน run(กำลังมอเตอร์ซ้าาย,กำลังมอเตอร์ขวา);
{
if (spl > 0)
{
digitalWrite(DL1, LOW);
digitalWrite(DL2, HIGH);
analogWrite(PWML, spl);
}
else if (spl < 0)
{
digitalWrite(DL1, HIGH);
digitalWrite(DL2, LOW);
analogWrite(PWML, -spl);
}
else
{
digitalWrite(DL1, LOW);
digitalWrite(DL2, LOW);
analogWrite(PWML, -255);
}
//////////////////////////////////////
if (spr > 0)
{
digitalWrite(DR1, LOW);
digitalWrite(DR2, HIGH);
analogWrite(PWMR, spr);
}
else if (spr < 0)
{
digitalWrite(DR1, HIGH);
digitalWrite(DR2, LOW);
analogWrite(PWMR, -spr);
}
else
{
digitalWrite(DR1, LOW);
digitalWrite(DR2, LOW);
analogWrite(PWMR, -255);
}
}
void runb(int sprb, int splb) // ประกาศฟังก์ชัน run(กำลังมอเตอร์ซ้าาย,กำลังมอเตอร์ขวา);
{ if (splb > 0)
{
digitalWrite(DL1b, LOW);
digitalWrite(DL2b, HIGH);
analogWrite(PWMLb, splb);
}
else if (splb < 0)
{
digitalWrite(DL1b, HIGH);
digitalWrite(DL2b, LOW);
analogWrite(PWMLb, -splb);
}
else
{
digitalWrite(DL1b, LOW);
digitalWrite(DL2b, LOW);
analogWrite(PWMLb, -255);
}
//////////////////////////////////////
if (sprb > 0)
{
digitalWrite(DR1b, LOW);
digitalWrite(DR2b, HIGH);
analogWrite(PWMRb, sprb);
}
else if (sprb < 0)
{
digitalWrite(DR1b, HIGH);
digitalWrite(DR2b, LOW);
analogWrite(PWMRb, -sprb);
}
else
{
digitalWrite(DR1b, LOW);
digitalWrite(DR2b, LOW);
analogWrite(PWMRb, -255);
}}