Thông báo

Collapse
No announcement yet.

Làm sao để lập trình được PWM bằng phần mềm ?

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

  • Làm sao để lập trình được PWM bằng phần mềm ?

    Em tính điều khiển độ sáng đèn LED thì biết được là dùng PWM để điều khiển đèn LED trong lúc tìm hiểu thì em bị 3 vấn đề mong mọi người chỉ dùm.
    1 - Ko biết có cách nào để lập trình nhiều ngõ ra PWM ko vậy ngoài cách sử dụng khối CCP của PIC? Chẳng hạn em muốn dùng PWM ở 8 cổng thì giải thuật là gì ?
    2 - Có phải tần số để điều chỉnh độ sáng của LED thấp nhất phải là 30Hz ko vậy (đọc của 1 bài nào đó trong diễn đàn). Tần số càng cao thì độ sáng của led tăng giảm mịn hơn ? Vậy em tính dùng tần số 10kHz liệu có ổn?
    3 - Em đọc ở đâu đó diễn đàn nói là nếu linh kiện có độ trễ quá lớn thì ko thể điều sung PWM được. Vậy từ chân ra của VXL ra Transistor A1015 và TIP122 liệu có thể điều xung ở tần số 10kHz -> 18khz được ko vậy ?
    Mong mọi người chỉ dùm em nhé, em xin cám ơn nhiều.

  • #2
    1. Có cách để lập trình nhiều ngõ ra PWM. Ngay cả khi MCU không có modul cho PWM như CCP, PWM.
    Để làm được thì hãy phân tích nguyên lý mạch PWM. Nó cần 1 tín hiệu hình tam giác, 1 tín hiệu so sánh và 1 con so sánh để cho tín hiệu ra. Dùng code để khởi tạo mấy thứ trên là được, muốn bao nhiêu ngõ khởi tạo từng đấy cái.
    2. Tần số điều chỉnh led thấp nhất phụ thuộc vào mắt. Chọn tần số nào để khi nhìn không thấy nháy, cảm thấy mắt thoải mái là được. Tần số mắt là 24h/s. Lấy tần số điều khiển LED là 60Hz là được. Độ mịn phụ thuộc vào độ phân giải của 2 tín hiệu là bao nhiêu bits ( nói ở mục 1).
    3. Không rõ tác giả muốn nói điều gì

    Comment


    • #3
      1. Có cách để lập trình nhiều ngõ ra PWM. Ngay cả khi MCU không có modul cho PWM như CCP, PWM.
      Để làm được thì hãy phân tích nguyên lý mạch PWM. Nó cần 1 tín hiệu hình tam giác, 1 tín hiệu so sánh và 1 con so sánh để cho tín hiệu ra. Dùng code để khởi tạo mấy thứ trên là được, muốn bao nhiêu ngõ khởi tạo từng đấy cái.
      Mình vẫn chưa hiểu lắm làm sao để được như vậy? B có thể giải thích rõ hơn chút siếu? Có phải cần 1 tín hiệu tam giác bên ngoài đưa vào chân pic rồi đưa vào bộ so sánh?
      2. Tần số điều chỉnh led thấp nhất phụ thuộc vào mắt. Chọn tần số nào để khi nhìn không thấy nháy, cảm thấy mắt thoải mái là được. Tần số mắt là 24h/s. Lấy tần số điều khiển LED là 60Hz là được. Độ mịn phụ thuộc vào độ phân giải của 2 tín hiệu là bao nhiêu bits ( nói ở mục 1).
      Vậy mình điều chỉnh PWM ở tần số 60Hz là có thể đảm bảo led sáng yếu mờ mạnh mà ko gây ra hiện tượng chớp đúng ko vậy ?
      3. Không rõ tác giả muốn nói điều gì
      À, ý mình là mình dùng khối công suất sử dụng tran C1815 kích Tip122 đó. Ý mình hỏi liệu những linh kiện này có đáp ứng được tần số 18khz đến 20kHz

      Comment


      • #4
        1. Các bộ PWM bằng analog phải cấp 1 xung tam giác và 1 điện áp tham chiếu để điều khiển độ rộng PWM. Một OPAMP sẽ làm nhiệm vụ so sánh 2 tín hiệu này để cho đầu ra mức cao hay thấp.
        Với xử lý số ( PWM mềm ) ta cần 1 biến có giá trị tăng giảm theo chu kỳ giống như xung tam giác. Một biến khác sẽ mang giá trị tham chiếu giống như điện áp tham chiếu điều khiển độ rộng xung của phần analog.
        Một đoạn lệnh xử lý để so sánh 2 biến và xuất giá trị 0 hay 1 ra chân MCU.

        2. PWM led ở 60Hz là LED không giật chớp, còn độ mịn phụ thuộc độ phân giải của 2 biến trong thuật toán. Nếu 2 biến đó là 8bits bạn sẽ điều khiển led sáng ở 256 mức khác nhau, nếu là 16 bít thì sẽ điều khiển độ sáng led có 65536 mức... Chú ý là độ mịn và độ nháy tỉ lệ nghịch với nhau.

        3. Đáp ứng tần số cỡ KHz thì transistor nào hầu như đều OK vì tần số đáp ứng của transistor toàn cỡ MHz trở lên.
        __
        Bạn xem nguyên lý của PWM ở hình dưới.
        Attached Files

        Comment


        • #5
          chao cac bac . E dang tim hieu ve con ic ds1307 va gap mot so vuong mac voi cac cau lenh ma khong hieu y nghia cua chung la gi.. hom nay e xin dang len day de nho cac bac giup e voi ạ!!

          //write_ds1307(2,0x15);
          //sec=read_ds1307(0); //
          min=read_ds1307(1); //
          hour=read_ds1307(2); //
          // printf(lcd_putchar,"%u",hour_digit2);

          e moi tap tenh vao nen chua am hieu nhieu. mong gap duoc cuu nhan phu troClick here to enlarge

          Comment


          • #6
            Nguyên văn bởi duong_act Xem bài viết
            1. Các bộ PWM bằng analog phải cấp 1 xung tam giác và 1 điện áp tham chiếu để điều khiển độ rộng PWM. Một OPAMP sẽ làm nhiệm vụ so sánh 2 tín hiệu này để cho đầu ra mức cao hay thấp.
            Với xử lý số ( PWM mềm ) ta cần 1 biến có giá trị tăng giảm theo chu kỳ giống như xung tam giác. Một biến khác sẽ mang giá trị tham chiếu giống như điện áp tham chiếu điều khiển độ rộng xung của phần analog.
            Một đoạn lệnh xử lý để so sánh 2 biến và xuất giá trị 0 hay 1 ra chân MCU.

            2. PWM led ở 60Hz là LED không giật chớp, còn độ mịn phụ thuộc độ phân giải của 2 biến trong thuật toán. Nếu 2 biến đó là 8bits bạn sẽ điều khiển led sáng ở 256 mức khác nhau, nếu là 16 bít thì sẽ điều khiển độ sáng led có 65536 mức... Chú ý là độ mịn và độ nháy tỉ lệ nghịch với nhau.

            3. Đáp ứng tần số cỡ KHz thì transistor nào hầu như đều OK vì tần số đáp ứng của transistor toàn cỡ MHz trở lên.
            __
            Bạn xem nguyên lý của PWM ở hình dưới.
            giải thích rất hay (Y). tuy chỉ đọc qua nhưng xin cảm ơn nhiều nhiều. Vì e, cũng đang tìm hiểu về PWM này (so sánh xung tam giác với tín hiệu chuẩn mà chưa rõ, đang đi tìm), và xuất ra mức 0 và 1 tương ứng với thời gian on-off của xung PWM.

            Comment


            • #7
              Nguyên văn bởi trongbang3 Xem bài viết
              giải thích rất hay (Y). tuy chỉ đọc qua nhưng xin cảm ơn nhiều nhiều. Vì e, cũng đang tìm hiểu về PWM này (so sánh xung tam giác với tín hiệu chuẩn mà chưa rõ, đang đi tìm), và xuất ra mức 0 và 1 tương ứng với thời gian on-off của xung PWM.
              Ở analog OPAMP sẽ so sánh điện áp 2 tín hiệu để điều khiển điện áp ra của PWM.
              Ở xử lý số, nó sẽ không hiểu 2V hay 5V là gì, nó chỉ hiểu 0,1 hay 100,1000 tóm lại là giá trị của biến/thanh ghi. Vậy nó sẽ so sánh giá trị 2 biến hoặc thanh ghi để điều khiển PWM.

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...
              X