Hướng Dẫn điều Khiển động Cơ Bằng ESP8266
Có thể bạn quan tâm
Jump to navigation
Bạn đang tìm kiếm điều gì?
Điểm cộng đồng là gì? Nó có ích gì cho bạn, tìm hiểu ngay!
Cộng đồng Arduino Việt Nam
Bạn đang ở đây
- Arduino.vn
- Nào cùng làm
- Hướng dẫn điều khiển động cơ bằng ESP8266
Chúng ta đã từng điều khiển động cơ trong các dự án xe điều khiển bằng combo thần thánh Arduino + Blutooth HC05 . Hôm nay chúng ta sẽ cùng tìm hiểu xem liệu ESP8266 có thể thay thế cho combo huyền thoại này không nhé
Chuẩn bị
Mạch esp8266
1 mạch cầu H
2 động cơ
Lập trình cho Esp8266
Trước khi làm bước này thì các bạn nên tham khảo qua bài viếthttp://arduino.vn/bai-viet/1496-esp8266-ket-noi-internet-phan-1-cai-dat-esp8266-lam-mot-socket-client-ket-noi-toi
Sau khi đã đọc xong bài viết trên thì chúng ta bắt đầu nào
Sau khi điều chỉnh IDE giống như trong hình các bạn chỉ cần copy đoạn code này và nạp cho Esp thôi.
#define ENA 14 // Enable/speed motors Right GPIO14(D5) #define ENB 12 // Enable/speed motors Left GPIO12(D6) #define IN_1 15 // L298N in1 motors Right GPIO15(D8) #define IN_2 13 // L298N in2 motors Right GPIO13(D7) #define IN_3 2 // L298N in3 motors Left GPIO2(D4) #define IN_4 0 // L298N in4 motors Left GPIO0(D3) #include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> String command; //String to store app command state. int speedCar = 800; // 400 - 1023. int speed_Coeff = 3; const char* ssid = "NodeMCU Car"; ESP8266WebServer server(80); void setup() { pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT); pinMode(IN_1, OUTPUT); pinMode(IN_2, OUTPUT); pinMode(IN_3, OUTPUT); pinMode(IN_4, OUTPUT); Serial.begin(115200); // Connecting WiFi WiFi.mode(WIFI_AP); WiFi.softAP(ssid); IPAddress myIP = WiFi.softAPIP(); Serial.print("AP IP address: "); Serial.println(myIP); // Starting WEB-server server.on ( "/", HTTP_handleRoot ); server.onNotFound ( HTTP_handleRoot ); server.begin(); } void goAhead(){ digitalWrite(IN_1, LOW); digitalWrite(IN_2, HIGH); analogWrite(ENA, speedCar); digitalWrite(IN_3, LOW); digitalWrite(IN_4, HIGH); analogWrite(ENB, speedCar); } void goBack(){ digitalWrite(IN_1, HIGH); digitalWrite(IN_2, LOW); analogWrite(ENA, speedCar); digitalWrite(IN_3, HIGH); digitalWrite(IN_4, LOW); analogWrite(ENB, speedCar); } void goRight(){ digitalWrite(IN_1, HIGH); digitalWrite(IN_2, LOW); analogWrite(ENA, speedCar); digitalWrite(IN_3, LOW); digitalWrite(IN_4, HIGH); analogWrite(ENB, speedCar); } void goLeft(){ digitalWrite(IN_1, LOW); digitalWrite(IN_2, HIGH); analogWrite(ENA, speedCar); digitalWrite(IN_3, HIGH); digitalWrite(IN_4, LOW); analogWrite(ENB, speedCar); } void goAheadRight(){ digitalWrite(IN_1, LOW); digitalWrite(IN_2, HIGH); analogWrite(ENA, speedCar/speed_Coeff); digitalWrite(IN_3, LOW); digitalWrite(IN_4, HIGH); analogWrite(ENB, speedCar); } void goAheadLeft(){ digitalWrite(IN_1, LOW); digitalWrite(IN_2, HIGH); analogWrite(ENA, speedCar); digitalWrite(IN_3, LOW); digitalWrite(IN_4, HIGH); analogWrite(ENB, speedCar/speed_Coeff); } void goBackRight(){ digitalWrite(IN_1, HIGH); digitalWrite(IN_2, LOW); analogWrite(ENA, speedCar/speed_Coeff); digitalWrite(IN_3, HIGH); digitalWrite(IN_4, LOW); analogWrite(ENB, speedCar); } void goBackLeft(){ digitalWrite(IN_1, HIGH); digitalWrite(IN_2, LOW); analogWrite(ENA, speedCar); digitalWrite(IN_3, HIGH); digitalWrite(IN_4, LOW); analogWrite(ENB, speedCar/speed_Coeff); } void stopRobot(){ digitalWrite(IN_1, LOW); digitalWrite(IN_2, LOW); analogWrite(ENA, speedCar); digitalWrite(IN_3, LOW); digitalWrite(IN_4, LOW); analogWrite(ENB, speedCar); } void loop() { server.handleClient(); command = server.arg("State"); if (command == "F") goAhead(); else if (command == "B") goBack(); //Các dòng này các bạn có thể điều chỉnh để phù hợp với app điều khiển của mình else if (command == "L") goLeft(); else if (command == "R") goRight(); else if (command == "I") goAheadRight(); else if (command == "G") goAheadLeft(); else if (command == "J") goBackRight(); else if (command == "H") goBackLeft(); else if (command == "0") speedCar = 400; else if (command == "1") speedCar = 470; else if (command == "2") speedCar = 540; else if (command == "3") speedCar = 610; else if (command == "4") speedCar = 680; else if (command == "5") speedCar = 750; else if (command == "6") speedCar = 820; else if (command == "7") speedCar = 890; else if (command == "8") speedCar = 960; else if (command == "9") speedCar = 1023; else if (command == "S") stopRobot(); } void HTTP_handleRoot(void) { if( server.hasArg("State") ){ Serial.println(server.arg("State")); } server.send ( 200, "text/html", "" ); delay(1); }Sau khi nạp code xong chúng ta mở Serial Monitor để xem địa chỉ IP nhé (Lưu ý sau khi mở Serial Monitor các bạn nhớ ấn nút reset trên esp mới có thể xem được địa chỉ IP)
Lập trình app Inventor để điều khiển esp nào
Trước khi bắt đầu thì các bạn đọc lại bài viết này để hiểu cơ bản về app Inventor nhé
http://arduino.vn/tutorial/2181-huong-dan-tao-app-dieu-khien-led-bang-giong-noi-thong-qua-app-inventor
Đọc xong rồi chúng ta tiếp tục nhé
Sau khi khời tạo app Inventor chúng ta thực hiện giống như trong ảnh là đã có 1 phần mềm điều khiển tuyệt vời cho esp rồi
Kết luận
Chắc các bạn cũng thắc mắc bài viết này hướng dẫn điều khiển động cơ bằng esp8266 thì sao lại ko có mục nào nói đến động cơ nhỉ? Mình không viết bởi vì sơ đồ nối động cơ với mạch cầu H trong Cộng đồng Arduino đã có quá nhiều rồi nên mình không muốn viết hehe, bạn nào không biết thì chỉ cần seach mạch cầu H là ra cả tá tài liệu thôi hehe
Rate node lên16 thành viên đã đánh giá bài viết này hữu ích. Từ khóa: ESP8266 Chuyên mục: Nào cùng làm! Các dự án được truyền cảm hứngSelect any filter and click on Apply to see results
Các bài viết cùng tác giả Bạn có một DỰ ÁN hay giống thế này? Chia sẻ nhé!Đây là một phiên bản mới của iNut PLC cho phép chúng ta lập trình trực tiếp trên App iNut mà không cần phải sử dụng Node-RED. Nhưng nếu sài iNut Node-RED thì vẫn được nha!
Rate node lên4 thành viên đã đánh giá bài viết này hữu ích. Từ khóa: inut plcplc internet Bạn có một DỰ ÁN hay giống thế này? Chia sẻ nhé!Chúng ta có thể điều khiển led qua app inventor bằng giọng nói, từ đó có thể mở rộng ra để điều khiển các thiết bị khác
Rate node lên23 thành viên đã đánh giá bài viết này hữu ích. Từ khóa: App Inventorarduinođiều khiển led bằng nút nhấnCửa cuốn thông minh
Đăng nhập Tên người dùng * Mật khẩu *- Tạo tài khoản mới
- Yêu cầu mật khẩu mới
mã số thuế
Thành viên trực tuyến
Hiện đang có 0 người trực tuyến.
Thành viên mới- du123lich123du
- HuyTĐ
- Lê Hồng Hiếu
- NhatNguyen0901
- beaglebone
- trần minh trí 009
- LÊ TRỌNG TRÍ
- Koishi_chan
Arduino.vn được xây dựng trên nền tảng Drupal 7, phiên bản hiện tại 2.3 tên mã Chia sẻ tình yêu với Arduino.
Đây là trang thông tin phi lợi nhuận ra đời hướng tới cộng đồng trẻ, những chủ nhân tương lai của đất nước. Tìm hiểu thêm
Lấy tin RSS Nội dung trên trang Arduino.vn được phân phối theo giấy phép Creative Commons Attribution-ShareAlike 4.0 International License.Vui lòng ghi rõ nguồn và link về bài gốc nếu bạn tham khảo nội dung từ website này.Bạn ơi ^_^!
Mục lục
Hãy trở thành thành viên của Cộng đồng Arudino Việt Nam để mở khóa chức năng này.
Mục lục Bạn ơiCùng đăng nhập vào Cộng đồng Arduino Việt Nam để mở hết các chức năng của Cộng đồng nhé.
Từ khóa » Thư Viện Esp8266webserver.h
-
Phần 2: Kết Nối Internet → ESP8266 Làm Web Server - Ohtech
-
Master - GitHub
-
Esp8266/ESPWebServer: HTTP Server Library For ESP8266 ... - GitHub
-
ESP8266 Làm Web Server - Lập Trình Arduino Kết Nối Wifi - OhStem
-
Hướng Dẫn ESP8266 #3: Sử Dụng Thư Viện WiFi Manager - MTE
-
Cài đặt Thư Viện - Lập Trình ESP8266 Arduino
-
ESP8266: Thư Viện WiFi Manager - Quản Lý Kết Nối Wifi
-
[IoT] Bài 5: Tạo WebServer Với ESP8266 Và Lập Trình Cho Esp8266 ...
-
ESP8266WebServer.h - Installation & Troubleshooting
-
ESP8266WiFi Library - ESP8266 Arduino Core Documentation
-
Sử Dụng Thư Viện WiFi Manager Smart Config - VLOGS CHIPKOOL
-
Sử Dụng Thư Viện WiFi Manager Smart Config - ECHIPKOOL SHOP
-
Cài đặt Kết Nối Wifi Cho ESP8266 - Viblo
-
[Phần 2] Lập Trình Trực Tiếp Trên ESP8266 Bật/Tắt LED