อุปกรณ์
1.ARDUINO UNO R3
2.L298N MOTOR DRIVER
3.ESP-01S ESP8266-01S โมดูล Serial
Wifi ESP 8266 รุ่น ESP-01S
4.DC MOTOR
5.Character LCD Display
6.ล้อ
บล็อกไดอะแกรม
ดาวน์โหลด แอพพลิเคชั่น
CODE
#include<TEE_ESP_WIFI.h>
#include <SoftwareSerial.h>
#define pinEN 9
#define ESP_Rx 10
#define ESP_Tx 11
String ssid="SUTHIWAS_EARTH";
String pwd ="12345678";
ESP wifi(ESP_Rx,ESP_Tx,pinEN);
void print_debug(String data)
{Serial.print(data);}
// Motor A
int dir1PinA = 2;
int dir2PinA = 3;
int speedPinA = 6; // เพื่อให้ PWM สามารถควบคุมความเร็วมอเตอร์
// Motor B
int dir1PinB = 4;
int dir2PinB = 5;
int speedPinB = 7; // เพื่อให้ PWM สามารถควบคุมความเร็วมอเตอร์
//LCD
#include <LiquidCrystal.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
pinMode(LED, OUTPUT);
digitalWrite(LED,LOW);
Serial.begin(9600);
wifi.begin(9600);
Serial.println("ESP8226");
wifi.Event_debug = print_debug;
wifi.reset();
wifi.setmode(STATION_AP); /
if(wifi.setAP(ssid,pwd,1,WPA_WPA2_PSK))
{
wifi.multipleconnect(MULTIPLE);
wifi.startserver("8000");
String ip = wifi.myip();
Serial.begin(9600);
//กำหนด ขา เพื่อใช้ในการควบคุมการทำงานของ Motor ผ่านทาง L298N
pinMode(dir1PinA,OUTPUT);
pinMode(dir2PinA,OUTPUT);
pinMode(speedPinA,OUTPUT);
pinMode(dir1PinB,OUTPUT);
pinMode(dir2PinB,OUTPUT);
pinMode(speedPinB,OUTPUT);
}
lcd.begin();
lcd.backlight();
Serial.begin(9600);
}
void loop()
{
String data = wifi.readstringdata();
if(data.length())
{
if(data=="1")
{
// Motor A
analogWrite(speedPinA, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinA, HIGH);
digitalWrite(dir2PinA, LOW);
// Motor B
analogWrite(speedPinB, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinB, HIGH);
digitalWrite(dir2PinB, LOW);
lcd.setCursor(0, 0);
lcd.print(" Forward ");
lcd.setCursor(0, 1);
}
if(data=="2")
{
// Motor A
analogWrite(speedPinA, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinA, HIGH);
digitalWrite(dir2PinA, LOW);
// Motor B
analogWrite(speedPinB, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, HIGH);
lcd.setCursor(0, 0); //
lcd.print(" LEFT ");
lcd.setCursor(0, 1);
}
if(data=="3")
{
// Motor A
analogWrite(speedPinA, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinA,LOW);
digitalWrite(dir2PinA, HIGH);
// Motor B
analogWrite(speedPinB, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinB, HIGH);
digitalWrite(dir2PinB, LOW);
lcd.setCursor(0, 0); //
lcd.print(" RIGHT ");
lcd.setCursor(0, 1); //
}
if(data=="4")
{
// Motor A
analogWrite(speedPinA, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinA,LOW);
digitalWrite(dir2PinA, HIGH);
// Motor B
analogWrite(speedPinB, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, HIGH);
lcd.setCursor(0, 0);
lcd.print(" REVERSE ");
lcd.setCursor(0, 1);
}
if(data=="5")
{
// Motor A
analogWrite(speedPinA, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, LOW);
// Motor B
analogWrite(speedPinB, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, LOW);
lcd.setCursor(0, 0); /
lcd.print(" STOP ");
lcd.setCursor(0, 1);
}
Serial.println(data);
}
}
ลิงก์วีดีโอการทำงาน
https://www.youtube.com/watch?v=Px3DrdTiTGE&feature=youtu.be
ดาวน์โหลด แอพพลิเคชั่น
CODE
#include<TEE_ESP_WIFI.h>
#include <SoftwareSerial.h>
#define pinEN 9
#define ESP_Rx 10
#define ESP_Tx 11
String ssid="SUTHIWAS_EARTH";
String pwd ="12345678";
ESP wifi(ESP_Rx,ESP_Tx,pinEN);
void print_debug(String data)
{Serial.print(data);}
// Motor A
int dir1PinA = 2;
int dir2PinA = 3;
int speedPinA = 6; // เพื่อให้ PWM สามารถควบคุมความเร็วมอเตอร์
// Motor B
int dir1PinB = 4;
int dir2PinB = 5;
int speedPinB = 7; // เพื่อให้ PWM สามารถควบคุมความเร็วมอเตอร์
//LCD
#include <LiquidCrystal.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
pinMode(LED, OUTPUT);
digitalWrite(LED,LOW);
Serial.begin(9600);
wifi.begin(9600);
Serial.println("ESP8226");
wifi.Event_debug = print_debug;
wifi.reset();
wifi.setmode(STATION_AP); /
if(wifi.setAP(ssid,pwd,1,WPA_WPA2_PSK))
{
wifi.multipleconnect(MULTIPLE);
wifi.startserver("8000");
String ip = wifi.myip();
Serial.begin(9600);
//กำหนด ขา เพื่อใช้ในการควบคุมการทำงานของ Motor ผ่านทาง L298N
pinMode(dir1PinA,OUTPUT);
pinMode(dir2PinA,OUTPUT);
pinMode(speedPinA,OUTPUT);
pinMode(dir1PinB,OUTPUT);
pinMode(dir2PinB,OUTPUT);
pinMode(speedPinB,OUTPUT);
}
lcd.begin();
lcd.backlight();
Serial.begin(9600);
}
void loop()
{
String data = wifi.readstringdata();
if(data.length())
{
if(data=="1")
{
// Motor A
analogWrite(speedPinA, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinA, HIGH);
digitalWrite(dir2PinA, LOW);
// Motor B
analogWrite(speedPinB, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinB, HIGH);
digitalWrite(dir2PinB, LOW);
lcd.setCursor(0, 0);
lcd.print(" Forward ");
lcd.setCursor(0, 1);
}
if(data=="2")
{
// Motor A
analogWrite(speedPinA, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinA, HIGH);
digitalWrite(dir2PinA, LOW);
// Motor B
analogWrite(speedPinB, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, HIGH);
lcd.setCursor(0, 0); //
lcd.print(" LEFT ");
lcd.setCursor(0, 1);
}
if(data=="3")
{
// Motor A
analogWrite(speedPinA, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinA,LOW);
digitalWrite(dir2PinA, HIGH);
// Motor B
analogWrite(speedPinB, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinB, HIGH);
digitalWrite(dir2PinB, LOW);
lcd.setCursor(0, 0); //
lcd.print(" RIGHT ");
lcd.setCursor(0, 1); //
}
if(data=="4")
{
// Motor A
analogWrite(speedPinA, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinA,LOW);
digitalWrite(dir2PinA, HIGH);
// Motor B
analogWrite(speedPinB, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, HIGH);
lcd.setCursor(0, 0);
lcd.print(" REVERSE ");
lcd.setCursor(0, 1);
}
if(data=="5")
{
// Motor A
analogWrite(speedPinA, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinA, LOW);
digitalWrite(dir2PinA, LOW);
// Motor B
analogWrite(speedPinB, 250); //ตั้งค่าความเร็ว PWM ผ่านตัวแปร ค่าต่ำลง มอเตอร์จะหมุนช้าลง
digitalWrite(dir1PinB, LOW);
digitalWrite(dir2PinB, LOW);
lcd.setCursor(0, 0); /
lcd.print(" STOP ");
lcd.setCursor(0, 1);
}
Serial.println(data);
}
}
ลิงก์วีดีโอการทำงาน
https://www.youtube.com/watch?v=Px3DrdTiTGE&feature=youtu.be
No comments:
Post a Comment