Thường encoder co 2 kênh a b nên chỉ tìm được vị trí tương đối sau khi bật điện ah. Còn muôn về vị trí home đặt trước khi cấp điện cần có kênh thứ 3 Z, hoặc dùng công tắc hành trình ngoài để cài vị trí home. Bật điện lên xoay đến khi ctht tác động.
Encoder co 2 kênh A B, bạn dùng ngắt phát hiện cạnh lên của kênh A, trong ngắt đó bạn kiểm tra kênh B, nếu mức cao thì chạy thuận, mức thấp chạy ngược.
Tại em đang làm đồ án về phần này đó anh. Mà anh ơi. Ngắt timer dùng để định thời gian lấy mẫu (em chọn 0.1s) , tức là cứ 0,1s thì nó sẽ lấy xung về và tính toán tốc độ 1 lần đúng không anh. Nếu em lấy thời gian lấy mẫu quá lớn hoặc quá nhỏ thì có ảnh hưởng đến quá trình tính toán tốc độ không anh. Em cảm ơn ạ.
@@buonmotchutthoi688 tùy vào độ chính xác bạn muốn, và tốc độ xử lý của mcu, nếu lập trình stm thì yên tâm hơn, arduino là atmega nên tốc độ vừa phải nếu quay nhanh quá mât xung
xem trên phần số xung trả về có thể thấy xung nhảy có lúc ngắt quảng, có lúc lặp lại, có lúc đang quay 1 chiều nhưng giảm, có cách nào khắc phục vấn đề này không ah?
Chào anh Hoà! Hiện em đang cải tiến hộp số giảm tốc cơ thành điện tử sử dụng encoder để đo tốc độ động cơ chính sau đó đưa về arduino xử lý điều khiển động cơ bước thông qa modul L298, mình lập trình cho tốc độ stepper quay tỉ lệ phần trăm vs tốc độ động cơ chính, ví dụ động cơ chính quay 1000v/p thì stepper sẽ quay 100v/p, tỉ lệ này mình có thể thay đổi bằng biến trở. Mình sẽ có thêm một chân khi kích vào thì stepper sẽ đảo chiều quay. A có thể tư vấn cho e đc ko???
@@CoienTuVina_com sao code của anh em chạy thử thì thấy dù quay ngược hay xuôi thì giá trị trả về chỉ theo 1 chiều giảm xuống nhỉ? em dùng board Nano thì có gì khác không anh?
Code đây mọi người:
const int interrupt0 = 0;
const int phase_a=2;
const int phase_b = 3;
int pulse = 0;
void setup()
{
attachInterrupt ( interrupt0, int_, FALLING);
pinMode (phase_a, INPUT_PULLUP);
pinMode (phase_b, INPUT_PULLUP);
Serial.begin (9600);
}
void loop()
{
Serial.println (pulse);
}
// ---------------------
void int_()
{
if (digitalRead (phase_b)==LOW)
{
pulse++;
}
else
{
pulse--;
}
}
Anh ơi e cũng làm như video của a, của e encoder loại npn 600 xung mà k đọc được a ạ, nhờ a hướng dẫn a
Bạn có thể cho mình hỏi bạn đang dùng encoder loại gì được không ạ
Encoder 4 dây, có 2 kênh A và B, ngõ ra mở
anh ơi em muốn đổi chiều động cơ khi bấm nút thì phai viết code như nào vậy anh
Ad ơi...giờ em muốn cấp nguồn encoder quay về một vị trí cho trước khi encoder ở vị trí bất kì thì phải làm sao ạ..mong ad chỉ với ạ
Em cảm ơn !
Thường encoder co 2 kênh a b nên chỉ tìm được vị trí tương đối sau khi bật điện ah. Còn muôn về vị trí home đặt trước khi cấp điện cần có kênh thứ 3 Z, hoặc dùng công tắc hành trình ngoài để cài vị trí home. Bật điện lên xoay đến khi ctht tác động.
A ơi e đang có con encoder 24v xung ra của nó e đo được 30v giờ e muốn dùng arduino để đọc thì mình nên làm như nào cho hợp lí v ạ. E cảm ơn
dùng mạch cách ly opto hoặc cầu phân áp nha bạn
Cơ Điện Tử Vina vâng e cảm ơn a. Để e thử
làm thế nào để kiểm tra xem động cơ giảm tốc có tính hợp encoder có bao nhiêu xung thì làm như thế nào a( ko có nhãn mác gì)...
Mình muốn hiển thị chiều quay lên lcd thì dùng cách nào vậy anh
Encoder co 2 kênh A B, bạn dùng ngắt phát hiện cạnh lên của kênh A, trong ngắt đó bạn kiểm tra kênh B, nếu mức cao thì chạy thuận, mức thấp chạy ngược.
anh ơi cho em hỏi là. tại sao dùng encoder mà không dùng cảm biến khác để đo tốc độ động cơ vậy anh. em cảm ơn
Vì nguyên lý đơn giản, chi phí thấp. Bạn có khó khăn gì hả.
Tại em đang làm đồ án về phần này đó anh. Mà anh ơi. Ngắt timer dùng để định thời gian lấy mẫu (em chọn 0.1s) , tức là cứ 0,1s thì nó sẽ lấy xung về và tính toán tốc độ 1 lần đúng không anh. Nếu em lấy thời gian lấy mẫu quá lớn hoặc quá nhỏ thì có ảnh hưởng đến quá trình tính toán tốc độ không anh. Em cảm ơn ạ.
@@buonmotchutthoi688 tùy vào độ chính xác bạn muốn, và tốc độ xử lý của mcu, nếu lập trình stm thì yên tâm hơn, arduino là atmega nên tốc độ vừa phải nếu quay nhanh quá mât xung
@@buonmotchutthoi688 0.1s là ok rồi, càng nhỏ càng tốt, nhưng nhỏ quá làm ảnh hưởng tốc độ xử lý mcu
để ghi nhớ giá trị khí mất điện đếm xung khi mất điện làm thế nào ạ?
Dùng bộ nhớ eeprom nha bạn
rất hay và chi tiết
cho mình hỏi động cơ trên cấp nguồn cho nó là bao nhiêu vậy? mình củng có môt cái như vậy mà nó mất nhản
xem trên phần số xung trả về có thể thấy xung nhảy có lúc ngắt quảng, có lúc lặp lại, có lúc đang quay 1 chiều nhưng giảm, có cách nào khắc phục vấn đề này không ah?
Chào bạn. Nếu mình muốn đọc nhiều encoder về thì phải làm sao bạn, vì uno chỉ có 2 chân ngắt
dung vdk nhu avr, arm
Anh ơi em đếm khi qua 10 mà lùi lại nó lưu cái số 0 trên màn hình. Đang 11 đếm lùi 1 vòng nó xuống 10 rồi 90 80 70... thì làm sao
anh cho em hỏi là động cơ của robot chạy lệch nhau thì khắc phục làm sao anh?
anh ơi, cho em code này với ngắt được không ạ
Mạnh Linh Nguyễn Đình và
hay wa ah oi...em cung dang lam cai nay..
Hay, like sub ung ho ban
có thể hiển thị lên LCD được không ạ?
Anh ơi lập trình để arduino đếm được số vòng quay động cơ như nào ạ
Cho em xin code này với anh !
link code die r a ơi
Vâng ạ mong bạn thông cảm bên cơ điện tử vina.com đang cố gắng khôi phục lại các link
Chào anh Hoà! Hiện em đang cải tiến hộp số giảm tốc cơ thành điện tử sử dụng encoder để đo tốc độ động cơ chính sau đó đưa về arduino xử lý điều khiển động cơ bước thông qa modul L298, mình lập trình cho tốc độ stepper quay tỉ lệ phần trăm vs tốc độ động cơ chính, ví dụ động cơ chính quay 1000v/p thì stepper sẽ quay 100v/p, tỉ lệ này mình có thể thay đổi bằng biến trở.
Mình sẽ có thêm một chân khi kích vào thì stepper sẽ đảo chiều quay. A có thể tư vấn cho e đc ko???
làm sao đọc tốc độ của encoder vậy ad
code tải về chạy tòaan ra 0
sao ko thấy code
A cho e xin code được không ạ, thanks a
+Nguyen Phung Bạn có thể tải trên mô tả bên trên nhé, chọn vào "hiển thị thêm"
@@CoienTuVina_com sao code của anh em chạy thử thì thấy dù quay ngược hay xuôi thì giá trị trả về chỉ theo 1 chiều giảm xuống nhỉ? em dùng board Nano thì có gì khác không anh?
wtf this code was wrong!!!
:)
cho e xin phần mềm trong video