đếm Xung Encoder Và Xác định Chiều Quay - Dien Tu Viet Nam

  • Đăng ký hoặc đăng nhập
    • Logging in... Ghi Nhớ? Ðăng Nhập Forgot password or user name? hoặc Đăng ký
    • Log in with Facebook
  • Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.
Thông báo Collapse No announcement yet. đếm xung encoder và xác định chiều quay Collapse X Collapse
  • Bài viết
  • Hoạt động gần đây
  • Tìm kiếm
  • Trang of 2
  • Lọc
  • Giờ All Time hôm nay Last Week Last Month
  • Show All Discussions only Photos only Videos only Links only Polls only Events only
Filtered by: Clear All new posts Trước 1 2 template Next
  • thanhnguyen0 thanhnguyen0 Thành viên tích cực
    • Tham gia: May 2008
    • Bài viết: 102
    • Share
    • Tweet
    #1

    đếm xung encoder và xác định chiều quay

    14-12-2009, 10:39 các bạn trả lời giúp mình một câu hỏi này nhé: nội dung : mình làm bài tập đọc encoder, gửi chiều quay và số xung đọc được của chiều quay đó lên cho máy tính (mình dùng encoder tuơng đối)(mình có kèm theo code viết trong c)- trên máy tính khi mình thử với nút nhấn thì nó nhận ổn định lắm, nhưng khi đưa encoder thât nối với VDK thì nó nhảy loạn xạ, trong chuơng trình viết cho VDK mình dùng ngắt ngoài 1 nối với 1 chân tạo xung encoder, khi nào có ngắt ngoài thì mình kiểm tra tiếp xung còn lại, nếu xung còn lại đang ở mức 1 thì xác định nó dang quay thuận - nếu đang ở mức 0 thì là quay nghịch, code mình viết như vậy đấy, mà sao khi mình thử với encoder quay bằng tay(chỉ quay theo một chiều duy nhất) thế mà có lúc nó nó gửi lên cho máy tính đang quay thuận có lúc gửi cho máy tính là quay nghịch- còn đếm xung cũng vậy, đếm lung tung. huhu ai đã làm về encoder rồi vui lòng giúp em với em cảm ơn code: #include<reg51.h> #include<math.h> sbit xung_a=P3^3; // thu xung a cua encoder-ngat ngoai 1 -PIN 13 sbit xung_b=P1^7; //thu xung b cua encoder bit thu; void isr_external1(void) interrupt 2 { //delayms(14); thu=xung_b; if(thu==1) gui_serial('k'); //gui kt quay nguoc chieu kim dong ho else gui_serial('c'); //quay cung chieu dong ho led=~led; } void main(void) { TMOD=0x20; TH1=-3; TR1=1; SM1=1; REN=1; EA=1; EX1=1; IT1=1; xung_a=1; xung_b=1; TI=0; while(1); } void gui_serial(unsigned char tam) { TI=0; SBUF=tam; while(TI==0); } Tags: None
  • Mr_se7en Mr_se7en Thành viên tích cực
    • Tham gia: Mar 2009
    • Bài viết: 192
    • Share
    • Tweet
    #2 14-12-2009, 20:22 Nguyên văn bởi thanhnguyen0 Xem bài viết các bạn trả lời giúp mình một câu hỏi này nhé: nội dung : mình làm bài tập đọc encoder, gửi chiều quay và số xung đọc được của chiều quay đó lên cho máy tính (mình dùng encoder tuơng đối)(mình có kèm theo code viết trong c)- trên máy tính khi mình thử với nút nhấn thì nó nhận ổn định lắm, nhưng khi đưa encoder thât nối với VDK thì nó nhảy loạn xạ, trong chuơng trình viết cho VDK mình dùng ngắt ngoài 1 nối với 1 chân tạo xung encoder, khi nào có ngắt ngoài thì mình kiểm tra tiếp xung còn lại, nếu xung còn lại đang ở mức 1 thì xác định nó dang quay thuận - nếu đang ở mức 0 thì là quay nghịch, code mình viết như vậy đấy, mà sao khi mình thử với encoder quay bằng tay(chỉ quay theo một chiều duy nhất) thế mà có lúc nó nó gửi lên cho máy tính đang quay thuận có lúc gửi cho máy tính là quay nghịch- còn đếm xung cũng vậy, đếm lung tung. huhu ai đã làm về encoder rồi vui lòng giúp em với em cảm ơn code: #include<reg51.h> #include<math.h> sbit xung_a=P3^3; // thu xung a cua encoder-ngat ngoai 1 -PIN 13 sbit xung_b=P1^7; //thu xung b cua encoder bit thu; void isr_external1(void) interrupt 2 { //delayms(14); thu=xung_b; if(thu==1) gui_serial('k'); //gui kt quay nguoc chieu kim dong ho else gui_serial('c'); //quay cung chieu dong ho led=~led; } void main(void) { TMOD=0x20; TH1=-3; TR1=1; SM1=1; REN=1; EA=1; EX1=1; IT1=1; xung_a=1; xung_b=1; TI=0; while(1); } void gui_serial(unsigned char tam) { TI=0; SBUF=tam; while(TI==0); } Mình đang làm đồ án về cái đề tài giống bạn. Mình sử dụng 89xxx, encoder 100 xung, xung A và B mình đưa vào 2 chân T0 và T1 Mình chưa viết được chương trình giao tiếp máy tính nữa. Có gì bạn giúp đỡ mình với nhé ,cung thảo luận và chia sẻ. Bạn gửi đề tài vào email nay nhé: [email protected] PS: Cùng trao đổi nhé

    Comment

    Gửi bài viết Huỷ bỏ
  • designer designer Thành viên tích cực
    • Tham gia: May 2008
    • Bài viết: 268
    • Share
    • Tweet
    #3 14-12-2009, 20:57 Sao bạn không đềm số xung và hiển thị số xung đếm được lên PC, còn chiều quay thì nên dùng led để hiển thị trước đã vì khi bạn dùng tay quay có thể lúc bạn buông tay ra để quay lần tiếp theo thì động cơ bị "giật lùi" nên VDK sẽ đọc là chiều ngược lại. Bạn cấp nguồn cho động cơ quay liên tục thử xem chiều đọc được có bị lộn nữa không! Mình viết bằng ASM nên nên không biết nói code của bạn thế nào.

    Comment

    Gửi bài viết Huỷ bỏ
  • thanhnguyen0 thanhnguyen0 Thành viên tích cực
    • Tham gia: May 2008
    • Bài viết: 102
    • Share
    • Tweet
    #4 14-12-2009, 23:29 Nguyên văn bởi designer Xem bài viết Sao bạn không đềm số xung và hiển thị số xung đếm được lên PC, còn chiều quay thì nên dùng led để hiển thị trước đã vì khi bạn dùng tay quay có thể lúc bạn buông tay ra để quay lần tiếp theo thì động cơ bị "giật lùi" nên VDK sẽ đọc là chiều ngược lại. Bạn cấp nguồn cho động cơ quay liên tục thử xem chiều đọc được có bị lộn nữa không! Mình viết bằng ASM nên nên không biết nói code của bạn thế nào. như bạn nói có thể đúng là động cơ khi quay bằng tay có thể bị giật lùi. nên nó nhảy tùm lum, mình cho encoder gửi xung liên tục lên PC, có nghĩa là mỗi khi có ngắt ngoài là gửi lên máy tính liền, cách này chỉ áp dụng với động cơ quay với tốc độ chậm, còn khi mình tăng tốc động cơ lên nhanh hơn thì trên PC nó "đơ" luôn. kg biết mọi người có ý kiến hay cách nào khác để đọc giá trị của encoder chính xác hơn kg thì giúp mình với !!! cảm ơn nhiều

    Comment

    Gửi bài viết Huỷ bỏ
  • thanhnguyen0 thanhnguyen0 Thành viên tích cực
    • Tham gia: May 2008
    • Bài viết: 102
    • Share
    • Tweet
    #5 14-12-2009, 23:30 Nguyên văn bởi Mr_se7en Xem bài viết Mình đang làm đồ án về cái đề tài giống bạn. Mình sử dụng 89xxx, encoder 100 xung, xung A và B mình đưa vào 2 chân T0 và T1 Mình chưa viết được chương trình giao tiếp máy tính nữa. Có gì bạn giúp đỡ mình với nhé ,cung thảo luận và chia sẻ. Bạn gửi đề tài vào email nay nhé: [email protected] PS: Cùng trao đổi nhé chào bạn, có gì mình cùng trao đổi nha!! à mà mình làm là kg phải đề tài đâu bạn ạ, chỉ là bài tập thôi bạn.

    Comment

    Gửi bài viết Huỷ bỏ
  • Mr_se7en Mr_se7en Thành viên tích cực
    • Tham gia: Mar 2009
    • Bài viết: 192
    • Share
    • Tweet
    #6 14-12-2009, 23:45 Nguyên văn bởi thanhnguyen0 Xem bài viết chào bạn, có gì mình cùng trao đổi nha!! à mà mình làm là kg phải đề tài đâu bạn ạ, chỉ là bài tập thôi bạn. Ok! bạn gửi vào email mình đi rồi có địa chỉ mình gửi lại cho bạn sơ đồ và mô phỏng . Nhớ gửi cả giao tiếp nữa nhé (full) để mình cùng nghiên cứu

    Comment

    Gửi bài viết Huỷ bỏ
  • Mr_se7en Mr_se7en Thành viên tích cực
    • Tham gia: Mar 2009
    • Bài viết: 192
    • Share
    • Tweet
    #7 14-12-2009, 23:49 Nguyên văn bởi thanhnguyen0 Xem bài viết như bạn nói có thể đúng là động cơ khi quay bằng tay có thể bị giật lùi. nên nó nhảy tùm lum, mình cho encoder gửi xung liên tục lên PC, có nghĩa là mỗi khi có ngắt ngoài là gửi lên máy tính liền, cách này chỉ áp dụng với động cơ quay với tốc độ chậm, còn khi mình tăng tốc động cơ lên nhanh hơn thì trên PC nó "đơ" luôn. kg biết mọi người có ý kiến hay cách nào khác để đọc giá trị của encoder chính xác hơn kg thì giúp mình với !!! cảm ơn nhiều Đúng là khi encoder quay bằng tay có thể bị giật lùi vì trục encoder ko tròn mà có cạnh. mình vừa chế 1 cái bánh xe và 1 cái động cơ cho encoder quay. Dùng biến áp thay đổi được điện áp để điều khiển động cơ

    Comment

    Gửi bài viết Huỷ bỏ
  • designer designer Thành viên tích cực
    • Tham gia: May 2008
    • Bài viết: 268
    • Share
    • Tweet
    #8 15-12-2009, 00:07 Nguyên văn bởi thanhnguyen0 Xem bài viết như bạn nói có thể đúng là động cơ khi quay bằng tay có thể bị giật lùi. nên nó nhảy tùm lum, mình cho encoder gửi xung liên tục lên PC, có nghĩa là mỗi khi có ngắt ngoài là gửi lên máy tính liền, cách này chỉ áp dụng với động cơ quay với tốc độ chậm, còn khi mình tăng tốc động cơ lên nhanh hơn thì trên PC nó "đơ" luôn. kg biết mọi người có ý kiến hay cách nào khác để đọc giá trị của encoder chính xác hơn kg thì giúp mình với !!! cảm ơn nhiều Bạn đang hỏi vì sao chương trình của bạn xác định chiều quay không đúng nên mình nói chung như vậy, còn về PC bị "đơ" còn phụ thuộc vào tốc độ truyền nhận dữ liệu, bạn truyền lên PC lúc nào nữa (nếu mỗi ần co ngắt ngoài là truyền lên PC 1 lần thì không "đơ" mới lạ). Bạn có thể định thời gian truyền lên PC 100ms/lần xem, nhắc lại chiều quay bạn nên dùng 2 con led hiển thị trên phần cứng trước đã rồi hãy nghĩ tới việc truyền nó lên PC, khi hiển thị led sẽ không có chuyện PC bi "đơ" vì bạn có làm gì dính đến PC nữa đâu. Có gì sai mọi người chỉ giúp mình nha.

    Comment

    Gửi bài viết Huỷ bỏ
  • duonghoang duonghoang Thành viên tích cực
    • Tham gia: Nov 2006
    • Bài viết: 599
    • Share
    • Tweet
    #9 15-12-2009, 04:14 jump: If encoder1=0 and encoder2 =0 then Goto next else Goto jump end if next: if encoder 1=1 then goto next1 else goto next end if next1: if encoder2 =1 then Print " Quay phải" else Print " Quay trái" end if Nếu encoder quay nhanh tí thì thời gian thực hiện đoạn code trên cũng ko ảnh hưởng lớn đến chương trình ^^ Have fun 0988467839

    Comment

    Gửi bài viết Huỷ bỏ
  • thanhnguyen0 thanhnguyen0 Thành viên tích cực
    • Tham gia: May 2008
    • Bài viết: 102
    • Share
    • Tweet
    #10 15-12-2009, 06:59 cảm ơn các bạn designer và duonghoang và Mr_se7en đã nhiệt tình góp ý. còn cách của bạn designer và duonghoang để mình thử lại rồi thông báo kết quả cho sau nhé . chân thành cảm ơn.

    Comment

    Gửi bài viết Huỷ bỏ
  • Mr_se7en Mr_se7en Thành viên tích cực
    • Tham gia: Mar 2009
    • Bài viết: 192
    • Share
    • Tweet
    #11 15-12-2009, 08:19 Nguyên văn bởi thanhnguyen0 Xem bài viết cảm ơn các bạn designer và duonghoang và Mr_se7en đã nhiệt tình góp ý. còn cách của bạn designer và duonghoang để mình thử lại rồi thông báo kết quả cho sau nhé . chân thành cảm ơn. Sao chưa gửi mail vậy?

    Comment

    Gửi bài viết Huỷ bỏ
  • thanhnguyen0 thanhnguyen0 Thành viên tích cực
    • Tham gia: May 2008
    • Bài viết: 102
    • Share
    • Tweet
    #12 15-12-2009, 10:51 Nguyên văn bởi Mr_se7en Xem bài viết Sao chưa gửi mail vậy? đợi tui viết cái code, mốt nộp bài tập mà cái encoder chưa đọc ổn định nữa, bực mình ghê, bây giờ đang đang chạy đua với thời gian đây, chờ tui rảnh rảnh tí tui gửi cho nha.!

    Comment

    Gửi bài viết Huỷ bỏ
  • Mr_se7en Mr_se7en Thành viên tích cực
    • Tham gia: Mar 2009
    • Bài viết: 192
    • Share
    • Tweet
    #13 16-12-2009, 11:08 Nguyên văn bởi thanhnguyen0 Xem bài viết đợi tui viết cái code, mốt nộp bài tập mà cái encoder chưa đọc ổn định nữa, bực mình ghê, bây giờ đang đang chạy đua với thời gian đây, chờ tui rảnh rảnh tí tui gửi cho nha.! Ok, thanks bạn nhiều

    Comment

    Gửi bài viết Huỷ bỏ
  • Mr_se7en Mr_se7en Thành viên tích cực
    • Tham gia: Mar 2009
    • Bài viết: 192
    • Share
    • Tweet
    #14 27-12-2009, 09:29 Bạn đã làm xong chưa? sao chưa thấy gửi wa cho mình vậy???????????

    Comment

    Gửi bài viết Huỷ bỏ
  • tri_cuong46 tri_cuong46 Thành viên chính thức
    • Tham gia: Jun 2007
    • Bài viết: 86
    • Share
    • Tweet
    #15 29-12-2009, 08:53 Mình làm cái này rồi, lúc đó cũng hiển thị quay giật lùi khi động cơ sắp dừng lại. Tuy nhiên sau khi tối ưu thời gian xử lý ngắt cho mỗi lần ngắt thì hết, đảm bảo sai số encode gần như là không. Mình viết chương trình ở đây bằng ASM bạn có thể tham khảo. Chương trình viết bằng C mình mất rồi, bạn có thể chuyển qua C được. Còn nếu không chạy được nữa thì có lẽ nên kiểm tra lại encoder đi bạn ạ. http://dientuvietnam.net/forums/showthread.php?t=31853 Ở đây có cả hiển thị giao điện bằng máy tính viết bằng VB, bạn chỉ cần viết chương trình vxl tương thích với chương Vb là có thể điều khiển được động cơ luôn. Còn chương trình C để mình tìm lại đã. Nếu cần mình sẽ gởi bạn chương trình VB hoàn chỉnh. Thân chào! Last edited by tri_cuong46; 29-12-2009, 08:59. Cường - Giải Pháp IOT Việt https://iotvn.vn

    Comment

    Gửi bài viết Huỷ bỏ
Trước 1 2 template Next Về tác giả Collapse thanhnguyen0 Tìm hiểu thêm về thanhnguyen0 Bài viết mới nhất Collapse
  • bqviet Trả lời cho Tư vấn. Nên mua máy mài, máy khoan cầm tay dùng loại công tắc nào ? bởi bqviet Còn cả anh tài Milwaukee mở đại lý ở VN đâu vài năm. Đám máy mài cắt của hãng này vẫn dùng cò bóp kèm nút chốt.
    • Channel: Điện tử gia dụng
    Hôm qua, 18:26
  • ittc Trả lời cho Tư vấn. Nên mua máy mài, máy khoan cầm tay dùng loại công tắc nào ? bởi ittc Úp, hóng thêm ý kiến ạ.
    • Channel: Điện tử gia dụng
    Hôm qua, 07:44
  • bqviet Trả lời cho Xin ý kiến về mạch UPS 12v cho Modem/Wifi/Camera/DVR bởi bqviet Mạch cồng kềnh nhưng khá bài bản. Nếu tự làm để học thì cũng đáng để bắt tay nghịch chơi. Nếu chỉ cần sản phẩm thì các sàn thương mại điện tử có sẵn UPS DC này ra 5V hoặc 12V rất sẵn, chạy pin, giá cũng không đắt.
    • Channel: Điện tử sáng tạo
    23-12-2025, 18:28
  • mylinhatt Bảo dưỡng máy phay CNC để duy trì độ chính xác và giảm rủi ro hư hỏng bởi mylinhatt Trong vận hành thực tế, nhiều xưởng gia công gặp tình trạng máy phay CNC bắt đầu sai kích thước, bề mặt rung nhẹ hoặc phát sinh lỗi thay dao dù chương trình và dao cắt không thay đổi. Phần lớn các vấn đề này không xuất phát từ lập trình mà đến từ việc bảo dưỡng máy chưa được thực hiện đúng và đủ....
    • Channel: Máy công cụ
    22-12-2025, 11:27
  • ittc Trả lời cho Tư vấn. Nên mua máy mài, máy khoan cầm tay dùng loại công tắc nào ? bởi ittc Hì, em tính đi mua 1 cái máy Khoan và máy Mài (cắt), em đã chính thức gạt thằng BOSCH sang 1 bên vì giá cao hơn Dewalt và Makita, hơn nữa xem Cataloge của nó thì hàng ít model mẫu mã hơn. Thôi thì dùng gia đình Dewalt và Makita là ok rồi, thế...
    • Channel: Điện tử gia dụng
    22-12-2025, 07:20
  • DaoVanTrong Xin ý kiến về mạch UPS 12v cho Modem/Wifi/Camera/DVR bởi DaoVanTrong Chào Anh Em. Nay em có tạo 1 sơ đồ mạch UPS sau, xin Ae cho ý kiến. Và nếu biết sản phẩm này nếu có sẵn thì em xin link để mua (nếu giá phù hợp) thì em đỡ phải làm ạ, vì em tìm nhưng không thấy: ╔═══════════════════[ĐIỆN_LƯỚI_220V]════════════════╗...
    • Channel: Điện tử sáng tạo
    21-12-2025, 23:32
  • nguyendinhvan Trả lời cho Nên mua máy phay CNC cũ, máy mới phổ thông hay máy chất lượng cao? Góc nhìn từ bài toán sản xuất thực tế bởi nguyendinhvan Ngày trước, khi KT đang tăng trưởng, một cái máy tự động cũ tầm trung, thì khoảng 5 năm là hoàn vốn. Nhưng hiện tại, mọi việc đều chậm trễ, cạnh tranh, nên theo các xếp tính thì phải hơn 10 năm làm việc ngon lành thì mới hoàn vốn....
    • Channel: Máy công cụ
    20-12-2025, 20:23
  • Status Trả lời cho cách làm led Hao Quang.có pro nào biết k nhỉ ??? bởi Status Hello! I'm from Kazakhstan. Can anyone share the HEX file with me? The download link in post 50 doesn't work.
    • Channel: Vi điều khiển họ 8051
    18-12-2025, 00:05
  • mylinhatt Nên mua máy phay CNC cũ, máy mới phổ thông hay máy chất lượng cao? Góc nhìn từ bài toán sản xuất thực tế bởi mylinhatt Chào anh em cơ khí, Trong quá trình tư vấn đầu tư thiết bị cho xưởng, mình gặp rất nhiều câu hỏi kiểu: “Nên mua máy phay CNC cũ để tiết kiệm, chọn máy mới phổ thông cho yên tâm, hay cố gắng lên máy chất lượng cao để làm hàng khó?”. Thực tế, đây không phải câu hỏi chỉ về...
    • Channel: Máy công cụ
    17-12-2025, 13:38
  • thanhvapu VAPU - Phần Mềm Giúp Bảo Vệ Và Giám Sát Con Cái Trên Internet bởi thanhvapu Việc con chơi game một cách lành mạnh và có thời gian nhất định là điều bố mẹ có thể khuyến khích để phát triển các kỹ năng mềm của con, thế nhưng bố mẹ luôn trăn trở làm sao để con không bị NGHIỆN GAME dẫn đến việc LÉN LÚT CHƠI...
    • Channel: Quảng cáo
    05-02-2025, 14:24
Xem toàn bộ Copyright © 2000-2025 Dientuvietnam.net. Founded by BinhAnh. Developed by R&P. All rights reserved. Forum software powered by vBulletin® Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Múi giờ GMT+7. Trang này được tạo vào lúc 00:24. Đang tải... Ðồng ý Không OK OK Huỷ bỏ X

Từ khóa » đếm Xung Encoder Bằng Arduino