Thông báo

Collapse
No announcement yet.

làm sao để x8 xung encoder

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • làm sao để x8 xung encoder

    Em muốn xác định chiều quay động cơ và nhân xung encoder nên em đã đưa 2 kênh A,B của encoder về 2 ngắt ngoài 6,7 của mega128.
    chế độ ngắt là anychange (nếu theo em hiểu và làm là ngắt cả cạnh lên và cạnh xuống) nên ta sẽ có mỗi kênh sẽ x2 encoder, 2 kênh sẽ x4 encoder mà thôi.
    cụ thể như sau:
    Click image for larger version

Name:	encoder21250326745.H2P.jpg
Views:	1
Size:	18.6 KB
ID:	1417557
    trong ngắt kênh A, em sẽ kiểm tra mức logic của kênh A nếu =1 thì là ngắt cạnh lên, và =0 là ngắt cạnh xuống ==> từ đó đối chiếu với kênh B ta sẽ được chiều quay, và nhân 4 lần encoder như code sau đây.

    interrupt [EXT_INT6] void ext_int6_isr(void)
    {
    if ((kenh2==1)&&(kenh1==1)) encoder++;
    if ((kenh2==0)&&(kenh1==0)) encoder++;

    if ((kenh2==1)&&(kenh1==0)) encoder--;
    if ((kenh2==0)&&(kenh1==1)) encoder--;
    }
    interrupt [EXT_INT7] void ext_int7_isr(void)
    {
    if ((kenh1==1)&&(kenh2==0))encoder++;
    if ((kenh1==0)&&(kenh2==1))encoder++;

    if ((kenh1==1)&&(kenh2==1)) encoder--;
    if ((kenh1==0)&&(kenh2==0)) encoder--;
    }
    nhưng nếu anychange hiểu như thế này thì em lại nghĩ khác.
    Any logical change on INT1 generates a interupt reques (bất cứ 1 sự thay đổi nào trên chân INT1 sẽ tao ra một yêu cầu ngắt) như vậy thì không chỉ có ngắt rising và falling mà còn thêm 2 ngắt thay đổi mức logic nữa chứ. vd khi có cạnh lên thì sẽ có 2 yêu cầu ngắt (1 của rising và 1 của logic thay đổi từ 0->1) Dựa vào đó ta có thể x8 encoder không.
    và hình như em cũng nghe có ai nói là có thể x8 encoder rồi. nhưng ko biết cánh làm.
    các anh tư vấn giúp em thử.
    Last edited by tkbang; 13-06-2013, 16:09.

  • #2
    Ngắt anychange chỉ là ngắt sườn thôi bạn à, không phải ngắt mức logic đâu. Mình nghĩ không có cách nào x8 encoder được

    Comment

    Về tác giả

    Collapse

    tkbang Tìm hiểu thêm về tkbang

    Bài viết mới nhất

    Collapse

    • nguyendinhvan
      Trả lời cho Vấn đề về tốc độ quay
      bởi nguyendinhvan
      Sử dụng động cơ servor, hoặc lắp thêm một cái encoder vào động cơ bước. Encoder sẽ kiểm soát động cơ có quay hoặc đứng im.
      Hôm qua, 19:50
    • Andrea14
      Vấn đề về tốc độ quay
      bởi Andrea14
      Chào mọi người,

      Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
      12-12-2025, 12:42
    • bqviet
      Trả lời cho Đấu tắt điện cho máy tính bảng
      bởi bqviet
      Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
      06-12-2025, 17:17
    Đang tải...
    X