Mạch chống nhiễu cho Endstop - Limit Switch - Máy in 3D & CNC

Theo đúng tiêu chí thì mình sẽ chia sẻ những lỗi phát sinh, hoặc kiến thức tìm hiểu được trong quá trình mày mò tìm hiểu linh tinh.
Gần đây khi setup Endstop - Limit Switch cho máy CNC thì bị lỗi, mà trước đó không hề gặp trên máy in 3D. Sau tìm hiểu thì thấy lỗi phát sinh do nhiễu tín hiệu đầu vào của Endstop, và thử nhiều cách thì thấy có 1 vài các hiệu quả. Mình sẽ mô tả chi tiết hơn về lỗi và cách khắc phúc ở phía dưới.

Endstop - Limit Switch được sử dụng rất nhiều trong máy in 3D và CNC. Do đó đi kèm với nó là khá nhiều tính huống lỗi khó hiểu phát sinh trong quá trình sử dụng.
Lỗi mình gặp phải khi setup cho máy CNC Mini với các thông số như sau:
- Board Arduino Uno
- Board CNC Shield v3
- Spindle: Motor 775
- Firmware: GRBL

- Bị lỗi với loại Endstop sau:

1. Mô tả

Quá trình setup ban đầu gồm tổng 6 Endstop cho 3 trục thì bình thường không thấy lỗi gì, kiểm tra hành trình các trục, Homing thì tất cả Endstop vẫn hoạt động bình thường.

Cho đến khi lắp Spindle vào test thử thì lỗi bắt đầu phát sinh, khi spindle bắt đầu bật.
Nếu tốc độ thấp hoặc cực thấp (tốc độ bạn ko thể phay hoặc khoan bất cứ vật liệu gì) thì di chuyển, và các Endstop vẫn hoạt động bình thường.

Khi tăng tốc độ lên đủ tốc độ để có thể sử dụng thì máy sẽ báo "Hard limit has been triggered. Machine position is likely lost due to sudden halt. Re-homing is highly recommended." thông báo này nghĩa là có tín hiệu Endstop bị chạm.

Theo mình nhận thấy cũng như tìm vài bài về lỗi tương tự thì đó là do khi Spindle quay sinh ra từ tường, làm nhiễu tín hiệu của Endstop.

Từ đó mình thử 1 vài cách cơ bản để chống nhiễu như:
- Để toàn bộ mạch vào 1 hộp kim loại kín
- Thay dây dẫn có chống nhiễu cho dây tín hiệu của Endstop
... thì đều không có hiệu quả.

2. Giải pháp

Cuối cùng mình tìm thấy cách hiệu quả nhất để khắc phục là dùng công tắc Limit Switch thường, đi kèm với 1 mạch chống nhiễu.
Nguồn: <Source>
Cấu tạo mạch thì có 2 loai:
- Sử dụng điện trở và tụ cơ bản : Cách này mình chưa thử, nhưng không chắc về độ hiệu quả
- Sử dụng Opto Quang - Phần từ cách li quang - Wikipedia  : Mình sử dụng cách này và hiệu quả đảm bảo 100% , dù có chạy MAX tốc độ của Spindle thì các Endstop vẫn hoạt động ổn định.

*Ghi chú:
- C (COM):
- NO (Normal Open): Cổng thường mở
- NC (Normal Close): Cổng thường đóng
Bình thường thì C - NC nối với nhau, còn khi vật cản chạm vào Limited Switches thì C-NO nối với nhau.

2.1. Mạch chống nhiễu đơn giản



2.2. Chống nhiễu sử dụng Opto Quang - Phần từ cách ly quang

Cách này mình đã test và có hiệu quả.
Có 2 cấu tạo khác nhau chỉ ở cách cấp nguồn cho mạch.
- Cấp chung nguồn với mạch điều khiển Arduino
- Cấp nguồn riêng để bảo tín hiệu không vị trộn, đảm bảo nhiều không bao giờ xảy ra.
Mình thì sử dụng cách cấp chung nguồn và chống nhiễu vẫn hoạt động tốt.

2.2.a. Sơ đồ nguyên lý



2.2.b. Cấu tạo mạch



2.2.c. Kết nối

Kết nối 2 chân C & NO trên Limit Switch tương ứng lần lượt với các cổng GND và LIM_X (Y/Z).
5 chân còn lại sẽ kết nối với các chân tương ứng trên mạch CNC Shield v3.

Tham khảo: Hướng dẫn kết nối dây mạch CNC Shield v3 <link>

Sau khi kết nối xong các bạn có chạy thoải mái không lo các yếu tó ngoại cảng gây nhiễu tín hiệu của Endstop.

3. Các mạch khác

Trên thị trường có 1 vài mạch được sản xuất theo KIT có sẵn đầy đủ, không phải bản mở rộng trên mạch Arduino như mạch CNC Shield v3. Thì có tích hợp sẵn chống nhiễu nên có thể kết nối trực tiếp Limit Switch với mạch đó mà không cần qua mạch chống nhiễu

- Mạch Woodpeker


- Mạch Cronos Maker
Cảm ơn các bạn đã tham khảo bài chia sẻ này, mong nó sẽ có ích cho các bạn.

______________________________

Các bạn có thắc mắc, cần tư vấn thêm thì có thể liên hệ mình qua các thông tin sau:


Post a Comment

Previous Post Next Post

Contact Form