RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

Điều chế độ rộng xung

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts

  • phuthuygia
    replied
    Nguyên văn bởi the rock Xem bài viết
    Bác Binhanh có thể cho hỏi?
    -Giả sử tui muốn dùng vi điều khiển để điều chế độ rộng xung của một tín hiệu xoay chiều hình sin tần số 50Hz, biên độ khoảng 0-5V thì làm thế nào?. Vì theo tui biết thường vi điều khiển không làm việc với tín hiệu xoay chiều. Bác giải thích giúp nhé.
    Em cũng muốn hỏi câu này? xin các anh chỉ giáo...

    Leave a comment:


  • quynhnb
    replied
    Nguyên văn bởi kit Xem bài viết
    Đặc tính động học bao gồm những đặc tính gì vậy (đừng nói là tần số quay của động cơ nhé) ?
    Momen là điều quan trọng nhất đối với việc điều khiển động cơ dùng PWM. Nếu tần số điều chế càng cao, monen càng yếu nhưng động cơ quay đều hơn, giảm hiện tượng quay giật giật kiểu lúc chạy lúc dừng. Tần số điều chế thấp thì momen lại lớn nhưng bị giật giật thấy rõ, cái này làm động cơ rung giật mạnh. Để chọn được tần số phù hợp cần quan tâm đến công suất động cơ, tải của động cơ, cùng chế độ chạy của động cơ.

    Leave a comment:


  • lehuy
    replied
    cac bac noi ly thuyet kg ah . em doc hoai ma kg hieu . gia su em muon dieu khien den led ( thay cho dong co ) tu toi toi led sang max ( co 5 che do sang tu min toi max ) thi phai lam sao . ngoai ra con co the thay doi toc do sang bang bien tro ( dang volume ) duoc .
    mong cac tien boi chi giup cho ke ngu muoi nay
    Thank s , than chuc ca nha

    Leave a comment:


  • vodangks
    replied
    Trong con 89V51 thì có 5 kênh PWM, tần số xung là 1/256us = 3,906Khz.

    Leave a comment:


  • fly_1304
    replied
    mọi người cho em hỏi:em muốn tăng giảm tốc độ động cơ bằng điều chế xung PWM dùng 8051.mạch yêu cầu có nút điều chỉnh tăng giảm tốc độ.xung đưa vào mạch cầu H thì làm thế nào ạ????mọng mọi người giúp đỡ!(khi lập trình thay đổi biến delay)

    Leave a comment:


  • username
    replied
    Pac ITALY

    Nguyên văn bởi ATYLA Xem bài viết
    Chương trình chính
    Trong cái code bằng c pác viết tính độ rộng xung thế nào đây pác nhỉ ? xin chỉ giáo !

    Leave a comment:


  • kit
    replied
    Nguyên văn bởi saoxathu Xem bài viết
    Tần số để điều khiển cho động cơ DC là bao nhiêu phụ thuộc vào đặc tính động học của động cơ.
    Đặc tính động học bao gồm những đặc tính gì vậy (đừng nói là tần số quay của động cơ nhé) ?

    Leave a comment:


  • saoxathu
    replied
    Nguyên văn bởi ksngoc Xem bài viết
    cho mình hỏi điều khiển PWM là thay đổi thời gian tồn tại mức xung cao trong khi tần số không thay đổi vậy tần số để điều khiển cho động cơ DC là bao nhiêu vậy?
    Trong một số dong VDk có tích hợp các kênh PWM vậy sử dụng nó để tạo xung điều khiển đông cơ có gì khác?
    Tai hạ ngu muội xem nhiều rồi nhưng vẫn không hiểu dược vấn đề này nhờ các huynh chỉ giao giúp
    Tần số để điều khiển cho động cơ DC là bao nhiêu phụ thuộc vào đặc tính động học của động cơ.
    Đối với VĐK có tích hợp các kênh PWM sẽ làm việc chính xác, đơn giản trong việc lập trình.Mỗi chế độ PWM phù hợp với những ứng dụng khác nhau, không chỉ trong điều khiển động cơ.

    Leave a comment:


  • the rock
    replied
    Pwm

    Nguyên văn bởi BinhAnh Xem bài viết
    Ngoài cách của ATYLA đưa ra, cũng có một vài cách khác. Tui đưa ra 1 cách mà tui cho là khá tối ưu. Chỉ cần một Timer là giải quyết được. bài toán trên, ko mất nhiều thời gian chờ cho vi điều khiển 89C51 của ATMEL thông dụng. Cách thức thực hiện như sau:

    Gọi chu kỳ là T;
    Khai báo biến: x,y,Index. Trong đó:
    x là độ rộng xung cao;
    ylà độ rộng xung thấp;//Nên x+y=T
    Index là kiểu bit: 1 chỉ số ứng với xung cao, 0 ứng với chỉ số xung thấp;
    Cài đặt ngắt Timer;
    //Ngắt timer
    if(Index)
    {
    Đặt chân PWM lên mức cao;
    Nạp thời gian timer=x;//Phần cao
    }else
    {
    Đặt chân PWM xuống mức thấp;
    Nạp thời gian timer=y;//Phần thấp
    }
    Index=Not(Index);//đảo trạng thái biến chỉ số
    //Kết thúc ngắt timer

    Trong main(); khi thay đổi độ rộng, chỉ cần x=Value,y=T-x;

    Tuy nhiên có thể dùng giải pháp 2 timer, một cái để định thời cho chu kỳ, cái còn lại để định thời cho độ rộng xung cao.

    Do 89c51 của ATMEL ko tích hợp PWM, bởi vậy, nếu sử dụng trong những ứng dụng đòi hỏi cấp chính xác cao thì các giải pháp trên phải tính đến thời gian: thời gian đáp ứng và xử lý ngắt, thời gian mã lệnh để bù trừ.
    Bác Binhanh có thể cho hỏi?
    -Giả sử tui muốn dùng vi điều khiển để điều chế độ rộng xung của một tín hiệu xoay chiều hình sin tần số 50Hz, biên độ khoảng 0-5V thì làm thế nào?. Vì theo tui biết thường vi điều khiển không làm việc với tín hiệu xoay chiều. Bác giải thích giúp nhé.

    Leave a comment:


  • conan_godman
    replied
    Trong asm không có hàm con có đối số, nhưng bạn có thể dùng nhãn và lệnh call hay acall với thông số đc đặt sẵn trươc khi gọi nó thì nó sẽ thực thi như một chương trình con. Cuối chương trình con này bạn để lệnh ret. Dùng asm sẽ dễ tính ra thời gian hơn và ta có thể chính xac hóa thời gian nữa dựa trên số câu lệnh và thời gian thực hiện mỗi lệnh. ^^

    Leave a comment:


  • zemen
    replied
    Mình dùng cách này để tạo độ rộng xung cũng chỉ dùng 1 timer, không biết có hiệu quả không!

    //Giả sử xung ra ở chân P10, có độ rộng 30%, chu kì xung 1ms
    unsigned char đếm=0;
    void main(void)
    {
    P10=0;
    Khtao_T0(1ms);
    while(1);
    }

    void Ngat_T0(void) interrupt 1
    {
    đếm++;
    if(đếm==30) P10=0;
    if(đếm==100) {P10=1;đếm=0;}

    }

    Leave a comment:


  • dt3_27
    replied
    anh co the giai thich cho em asm duoc khong
    trong asm khong co cach nao de goi ham con nhu trong C

    Leave a comment:


  • ksngoc
    replied
    cho mình hỏi điều khiển PWM là thay đổi thời gian tồn tại mức xung cao trong khi tần số không thay đổi vậy tần số để điều khiển cho động cơ DC là bao nhiêu vậy?
    Trong một số dong VDk có tích hợp các kênh PWM vậy sử dụng nó để tạo xung điều khiển đông cơ có gì khác?
    Tai hạ ngu muội xem nhiều rồi nhưng vẫn không hiểu dược vấn đề này nhờ các huynh chỉ giao giúp

    Leave a comment:


  • BinhAnh
    replied
    Dùng 1 timer giải quyết bài toán PWM.

    Ngoài cách của ATYLA đưa ra, cũng có một vài cách khác. Tui đưa ra 1 cách mà tui cho là khá tối ưu. Chỉ cần một Timer là giải quyết được. bài toán trên, ko mất nhiều thời gian chờ cho vi điều khiển 89C51 của ATMEL thông dụng. Cách thức thực hiện như sau:

    Gọi chu kỳ là T;
    Khai báo biến: x,y,Index. Trong đó:
    x là độ rộng xung cao;
    ylà độ rộng xung thấp;//Nên x+y=T
    Index là kiểu bit: 1 chỉ số ứng với xung cao, 0 ứng với chỉ số xung thấp;
    Cài đặt ngắt Timer;
    //Ngắt timer
    if(Index)
    {
    Đặt chân PWM lên mức cao;
    Nạp thời gian timer=x;//Phần cao
    }else
    {
    Đặt chân PWM xuống mức thấp;
    Nạp thời gian timer=y;//Phần thấp
    }
    Index=Not(Index);//đảo trạng thái biến chỉ số
    //Kết thúc ngắt timer

    Trong main(); khi thay đổi độ rộng, chỉ cần x=Value,y=T-x;

    Tuy nhiên có thể dùng giải pháp 2 timer, một cái để định thời cho chu kỳ, cái còn lại để định thời cho độ rộng xung cao.

    Do 89c51 của ATMEL ko tích hợp PWM, bởi vậy, nếu sử dụng trong những ứng dụng đòi hỏi cấp chính xác cao thì các giải pháp trên phải tính đến thời gian: thời gian đáp ứng và xử lý ngắt, thời gian mã lệnh để bù trừ.
    Attached Files

    Leave a comment:


  • ATYLA
    replied
    Chương trình viết bằng C, (phần mềm Proview)

    Đoạn chương trình điều chế xung viết bằng C
    Attached Files

    Leave a comment:

Về tác giả

Collapse

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

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

Collapse

Đang tải...