Bài học thực hành

Build Python thành file EXE chạy trên window

Đoàn Văn Huân 27/04/2026
Build Python thành file EXE chạy trên window Bước 1: Copy chương trình Python đã chạy vào chatGPT và thêm cú pháp: "đóng gói chương trình python thành file setup exe có giao diện: chọn cổng camera kết nối, chọn cổng gửi tín hiệu sang serial cho arduino, nút start và stop để bắt đầu quét mầu, có thông báo bằng chữ 3 Mầu đỏ,vàng, xanh trên màn hình" Cú pháp phải đủ ý như trên Bước 2: Tạo file: tomato_app.py (Tên file rất quan trọng để có lệnh build file đó) Paste nội dung chatGPT đã gửi sa...

Lập trình PLC: Phân loại sản phẩm theo mầu sắc

Đoàn Văn Huân 19/04/2026
Lập trình PLC: Phân loại sản phẩm theo mầu sắc 🎯 Tổng quan hệ thống Thiết bị bạn có: Camera + PC nhận diện màu Arduino làm gateway I/O PLC Mitsubishi FX3U điều khiển máy Cảm biến hồng ngoại phát hiện vật Băng tải động cơ DC (qua relay) 2 xilanh khí nén phân loại → 3 loại sản phẩm 🧠 Nguyên lý hoạt động chuẩn công nghiệp Trình tự chạy: 1️⃣ Cảm biến IR phát hiện sản phẩm → báo PLC 2️⃣ PLC chạy băng tải đưa sản phẩm vào vùng camera 3️⃣ PC nhận diện màu → gửi kết quả sang Arduino 4️⃣ Arduino gử...

PROJECT MEGA DÂY CHUYỀN 3 PLC KẾT NỐI MẠNG (phần 7 - cuối)

Đoàn Văn Huân 18/04/2026
PROJECT MEGA DÂY CHUYỀN 3 PLC KẾT NỐI MẠNG 1. KIẾN TRÚC DÂY CHUYỀN Ví dụ dây chuyền sản xuất: Trạm PLC Nhiệm vụ Trạm cấp liệu PLC1 Cấp sản phẩm Trạm gia công PLC2 Gia công / cắt Trạm đóng gói PLC3 Đóng gói 👉 Các PLC phải nói chuyện với nhau 2. VÌ SAO CẦN KẾT NỐI PLC ↔ PLC ? Nếu không kết nối: Máy chạy lệch nhịp Dồn sản phẩm Kẹt dây chuyền 😱 Mục tiêu: Đồng bộ trạng thái Chia sẻ dữ liệu Truyền alarm 3. CÁC CHUẨN KẾT NỐI MITSUBISHI Giao thức Dùng khi ...

FULL PROJECT PLC FX3U + SERVO + BIẾN TẦN (Phần 6)

Đoàn Văn Huân 18/04/2026
FULL PROJECT PLC FX3U + SERVO + BIẾN TẦN 1. MÔ TẢ MÁY Máy cấp phôi + cắt: Chu trình: 1️⃣ Nhấn START 2️⃣ Biến tần chạy kéo vật liệu 3️⃣ Servo kéo đúng chiều dài cắt 4️⃣ Dao cắt hoạt động 5️⃣ Servo quay về gốc 6️⃣ Lặp lại 👉 Đây là cấu trúc máy rất phổ biến. 2. SƠ ĐỒ THIẾT BỊ Thiết bị Vai trò PLC FX3U Điều khiển trung tâm Servo Driver Điều khiển vị trí Biến tần Điều khiển tốc độ motor Sensor Phát hiện vật liệu Encoder (servo) Phản hồi vị trí 3. PHÂN CHIA NH...

FULL PROJECT PLC MÁY ĐÓNG GÓI TỰ ĐỘNG (phần 5)

Đoàn Văn Huân 18/04/2026
FULL PROJECT PLC MÁY ĐÓNG GÓI TỰ ĐỘNG 1. MÔ TẢ MÁY Chu trình máy: 1️⃣ Nhấn START 2️⃣ Băng tải chạy đưa sản phẩm vào vị trí 3️⃣ Cảm biến phát hiện sản phẩm 4️⃣ Dừng băng tải 5️⃣ Xi lanh đóng gói chạy 6️⃣ Giữ 2 giây 7️⃣ Xi lanh về 8️⃣ Tăng bộ đếm sản lượng 9️⃣ Lặp lại 2. DANH SÁCH I/O INPUT Thiết bị PLC Start X0 Stop X1 E-Stop X2 Sensor sản phẩm X3 Xi lanh về gốc X4 OUTPUT Thiết bị PLC Motor băng tải Y0 Van xi lanh ra Y1 Van xi lanh về Y2...

PHẦN PRO – LẬP TRÌNH PLC MITSUBISHI CHUYÊN SÂU (phần 4)

Đoàn Văn Huân 18/04/2026
PHẦN PRO – LẬP TRÌNH PLC MITSUBISHI CHUYÊN SÂU BÀI 21 — TƯ DUY STEP MACHINE CHUẨN CÔNG NGHIỆP Khi máy phức tạp → không dùng ladder thường nữa → Dùng STATE MACHINE (Step Ladder) Vì sao phải dùng Step? Máy thật có nhiều trạng thái: Idle Start Chạy Lỗi Reset Nếu không dùng Step: Code rối Máy dễ lỗi Khó sửa 👉 90% máy nhà máy dùng STEP. Cấu trúc Step chuẩn Step Ý nghĩa S0 Idle S1 Start S2 Run S3 Finish S9 Alarm Khởi tạo Step PLC luôn bắt đầu tại S0: &...

PHẦN NÂNG CAO PLC MITSUBISHI FX3U (phần 3)

Đoàn Văn Huân 18/04/2026
PHẦN NÂNG CAO PLC MITSUBISHI FX3U BÀI 11 — Thanh ghi dữ liệu D (Data Register) Đây là phần giúp PLC “thông minh”. PLC không chỉ ON/OFF mà còn tính toán số. Kiểu dữ liệu Ví dụ Hằng số K100 Thanh ghi D0, D1 Kết quả D10 1. Gán dữ liệu (MOV) Ví dụ gán giá trị 100 vào D0: MOV K100 D0 Copy dữ liệu: MOV D0 D10 2. Cộng – trừ – nhân – chia ADD D0 K50 D1 ; D1 = D0 + 50 SUB D1 K20 D2 ; D2 = D1 - 20 MUL D2 K2 D3 DIV D3 K4 D4 👉 Ứng dụng: Tính tốc độ Tính sản lượng Tính...

GIÁO TRÌNH THỰC HÀNH PLC MITSUBISHI FX3U (phần 2)

Đoàn Văn Huân 18/04/2026
GIÁO TRÌNH THỰC HÀNH PLC MITSUBISHI FX3U BÀI 1 — Làm quen GX Works2 + tạo project 1. Tạo Project mới Mở GX Works2 → New Project Chọn: PLC Series: FX CPU: FX3U Language: Ladder Sau khi tạo xong: Program → Main → Ladder 2. Cách viết Ladder cơ bản Thêm tiếp điểm Nhấn F5 → Contact Nhập: X0 Thêm coil Nhấn F7 → Coil Nhập: Y0 3. Download chương trình Các bước chuẩn khi nạp PLC: Compile → F4 Online → Write to PLC RUN PLC BÀI 2 — Điều khiển đèn bằng nút nhấn (Bài nhập môn) Yêu ...

GIÁO TRÌNH TỔNG QUAN LẬP TRÌNH PLC MITSUBISHI (phần 1)

Đoàn Văn Huân 18/04/2026
GIÁO TRÌNH TỔNG QUAN LẬP TRÌNH PLC MITSUBISHI PHẦN 1 — Tổng quan PLC Mitsubishi 1. PLC là gì? PLC (Programmable Logic Controller) là bộ điều khiển logic lập trình dùng để: Điều khiển máy móc công nghiệp Thay thế mạch relay truyền thống Hoạt động bền bỉ 24/7 trong môi trường công nghiệp Ứng dụng: Máy đóng gói Dây chuyền sản xuất Băng tải, thang máy, robot Hệ thống HVAC, xử lý nước… 2. Các dòng PLC Mitsubishi phổ biến Dòng Mức độ Phổ biến FX1S / FX1N Cơ bản Máy nhỏ FX...

Hướng dẫn sử dụng máy phay CNC GRBL control chức năng tạo bản đồ cao độ (Height map)

Đoàn Văn Huân 16/05/2024
Hướng dẫn sử dụng máy phay CNC GRBL control chức năng tạo bản đồ cao độ (Height map) B1: Bấm 2 nút xác định gốc tọa độ 0 và độ cao Z B2: Mở file cần phay B3: bấm Create trong Heightmap B4: Bấm auto để co kích thước theo đúng file phay B5: Chia các điểm x, y để tạo điểm xác định map B6: Điền Zb và Zt: giới hạn chênh lệch độ nghiêng so với gốc tọa độ 0 B7: Kẹp đầu dò hoặc cảm biến vào đầu mũi phay B8: Bấm Probe để tiến hành dò B9: Sau khi dò xong bấm OK B10: Vào File -> Save As: chọn đến thư...

Chạy mô phỏng File Hex trên Proteus với arduino Uno

Đoàn Văn Huân 05/01/2024
Chạy mô phỏng File Hex trên Proteus Hướng dẫn cách xuất file hex trong Arduino IDE Bước 1: Hiển thị thư mục lưu trữ file hex trong Arduino IDE Để có thể lấy được File Hex từ Arduino IDE thì các bạn cần phải biết được thư mục lưu trữ những tệp này ở đâu. Trên phần mềm Arduino IDE làm theo các bước sau: File –> Preferences –> Tích chọn vào “compile” –> Nhấn vào OK để lưu lại Tiếp theo, mình sẽ tiến hành “Verify” chương trình. Sau khi verify xong, xem phần “Output” t...

Nguyên lý và sơ đồ chân IC TP4056 sạc pin lithium

Đoàn Văn Huân 24/06/2023
Nguyên lý và sơ đồ chân IC TP4056 sạc pin lithium TEMP(Pin 1): Đầu vào Cảm biến Nhiệt độ Kết nối chân TEMP với đầu ra của nhiệt điện trở NTC trong bộ pin Lithium ion. Nếu điện áp của chân TEMP dưới 45% hoặc trên 80% điện áp cung cấp VIN trong hơn 0,15S, điều này có nghĩa là nhiệt độ của pin quá cao hoặc quá thấp, đang sạc cấm. Có thể tắt chức năng cảm biến nhiệt độ bằng cách nối đất chân TEMP. PROG(Chân 2): Cài đặt dòng sạc không đổi và Giám sát dòng sạc Dòng sạc chân được thiết lập bằng...

Mạch Hẹn Giờ Đóng Ngắt Relay Theo Thời Gian Thực

Nguyễn Tuấn Phong 27/04/2023
Mạch Hẹn Giờ Đóng Ngắt Relay Theo Thời Gian Thực 1. Mô tả sản phẩm -  Mạch Hẹn Giờ Đóng Ngắt Relay Theo Thời Gian Thực có chức năng hẹn thời gian đóng ngắt thiết bị trong ngày có thể điều chỉnh được chi tiết hơn với 5 lần tắt mở trong ngày và có thể cài đặt được theo ngày hoặc khoảng thời gian từ ngày A đến ngày B. -  Mạch sử dụng với 4 nút nhấn điều chỉnh giúp bạn dễ dàng hơn khi sử dụng. Màn hình hiển thị led 7 đoạn 4 số cho giao diện trực quan. -  Ngõ ra là tiếp đi...

Kinh nghiệm nạp code cho esp32_Cam

Đoàn Văn Huân 25/03/2023
Kinh nghiệm nạp code cho esp32_Cam Sử dụng mạch nạp https://giaiphapchung.vn/board-nap-ft232rl-arduino-mau-xanh   Cắm chân TX và RX như hình   Chú ý: Khi nạp thì Chân IO0 nối GND, nạp xong tháo ra. Khi nạp, bắt đầu Connecting..... thì bấm Reset trên ESP32_CAM thì nó mới nnạp, không thì hay báo lỗi kết nối. Code nạp thường vẫn lấy từ Example của ESP32 (CameraWebServer) sau đó chỉnh sửa theo nhu cầu. Khi nạp code xong, nó kết nối với Wifi xong thì mở monitor ra, bấm reset nó ch...

Mạch kích dương kích âm transistor PNP NPN

Đoàn Văn Huân 06/10/2022
Mạch kích dương kích âm transistor PNP NPN    Để hiểu rõ về mạch đóng mở kích dương và kích âm cho tran PNP và NPN bạn xem bài viết này    1. Hình dưới là dùng transistor loại NPN như: TIP122, S9014 (J6), S9013, S8050 (J3Y), Mosfet A03404, C1815 (HF), ...   Tín hiệu vào kích dương, UBE >0 thì transistor mới mở. Có thể bỏ R3.   2. Hình dưới là dùng transistor loại PNP như: S9012 (2T1), A1015 (BA), Tip41C, Tip42C, S8550 (2TY), ... Tín hiệu vào kích âm, UB...

Cài đặt board mới vào arduino IDE

Đoàn Văn Huân 27/09/2022
Cài đặt board mới vào arduino IDE Đây là những board không chính thức của arduino, tuy nhiên nếu bạn muốn sử dụng arduino IDE để lập trình những board mạch này thì bạn phải thêm board mới vào ứng dụng. Trước kia thì việc thêm một board mạch không chính thức mới vào arduino IDE rất phức tạp, bạn phải tải một phiên bản arduino IDE đã được build sẵn cũng với các board đó, việc update cũng rất vất vả. Nhưng từ phiên bản arduino ide 1.6.4 chúng ta có thể thêm hoặc xóa các board mạch mới một cách d...

Hướng dẫn nạp code Attiny13 bằng arduino Uno

Đoàn Văn Huân 14/09/2022
Hướng dẫn nạp code Attiny13 bằng arduino Uno Thứ tự chân kết nối với arduino như sau: ATTINY13 Chức năng 1 Chức năng 2 Arduino Uno 1 Reset T5 (Reset) 10 2 CLK T3 (In/Out)   3   T4 (In/Out)   4 GND     5 MOSI T0 (In/Out) 11 6 MISO T1 (In/Out) 12 7 SCK T2 (In/Out) 13 8 5V     Mở Arduino để nạp: Vào File --> Examp --> 11. Arduino ISP --> Nạp vào arduino. Vào File --> Frefe...

Sửa lỗi thư viện HX711.h cho cảm biến khối lượng Loadcell

Đoàn Văn Huân 05/08/2022
Sửa lỗi thư viện HX711.h cho cảm biến khối lượng Loadcell Kiểu code cũ trước của thư viện HX711: #include "HX711.h"   #define DOUT  3 #define CLK  2 HX711 scale(DOUT, CLK); float calibration_factor = -103525; void setup() {   Serial.begin(9600);   Serial.println("HX711 Calibration");   Serial.println("Remove all weight from scale");   Serial.println("After readings begin, place known weight on scale");   Serial.println("Press a,s,d,f to increase ca...