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

Hỏi về mô phỏng DC motor trong Proteus

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • it4rb
    Nhập môn đệ tử
    • Jun 2008
    • 10

    #1

    Hỏi về mô phỏng DC motor trong Proteus

    Chào các bác, em mô phỏng một con motor dc trong proteus, dùng pwm để thay đổi tốc độ, dùng ic l6202 để thay đổi hướng, Nhưng k0 hiểu sao nó cứ chạy loạn lên,mặc dù em xem dạng sóng pwm thấy khá đúng. Cụ thể là:
    +khi tốc độ thấp: đảo chiều công tắc nhưng motor ko đổi chiều
    +khi tốc độ cao: quay một chặp lại đảo chiều, mặc dù công tắc ko đảo
    Em mới tập làm nên gà lắm,mong các bác chỉ giáo.
    Attached Files
  • it4rb
    Nhập môn đệ tử
    • Jun 2008
    • 10

    #2
    Còn nữa, khi motor quay nhanh quá thì em nhìn ko ra nó quay theo chiều nào nữa, các bác cho em hỏi có phải dấu + - ở motor là chiều quay ko ạ? Còn chỉ số phía dưới motor là vận tốc hay gia tốc vậy?

    Comment

    • mtuankct
      Đệ tử 6 túi
      • Apr 2006
      • 125

      #3
      Con IC bạn dùng là môt con cầu H thôi
      Bạn sử dụng nó chưa đúng nguyên lý
      Để đảo chiều quay thì bạn cần đưa xung vào chấn IN1 hoặc IN2 chứ không phải là đưa thêm một con Fet vào chân SENSE như thế. Để động cơ quay theo chiều thuận thì đưa Enable lên 1 rồi đưa xung vào chân IN1 còn chân IN2 để ở mức logic 0 và ngược lại
      Còn chân SENSE thì nối trực tiếp xuống đất hoặc qua điện trở sun để đo dòng điện
      Bạn nên send kèm file hex đã dịch sẵn của chương trình thì mình mới kiểm tra được
      Còn cái số hiện phái dưới động cơ là tốc độ thôi, đơn vị là kRPM (revolutions per minute)

      Comment

      • vietanh
        Đệ tử 1 túi
        • Dec 2005
        • 20

        #4
        tôi đa sửa lại code va mạch cho bạn chạy binh thường không có vấn đề ji

        Code:
        #include <16f877a.h>
        #fuses HS,put,NOWDT
        #use delay(clock=20000000)   //// KHAI BAO    TS  XUNG LAM VIEC   CL    20MHZ
        #include <def_877a.h>
        #use fast_io(c)
        #use fast_io(b)
        #use fast_io(a)
        int16 speed=0;        
        ///////////////////////////////////////////////////////// HAM TOC DO //////////////////////////////////////////////////////////////////////////////////////////////
         void TOCDO()
        {
            delay_ms(200);
            
            if(!INPUT(PIN_B0)) SPEED = SPEED + 10;    //  LU  Y   KHI  VIET  THE  NAY  KHI TANG QUA GIA  TRI 1023  NO NHAY   VE  MO hay giam qua 0 no nhay gia tri cao nhat
             DELAY_US(20);
            if(!INPUT(PIN_B1)) SPEED = SPEED - 10;    //   CHO NEN   BAN CAN THUC HIEN THEM bp SO  SANH DE  DUA VE GIA TRI DUNG TRONG KHOANG TU 0>>> 1023
           
           
        }
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////          
                 
        ////////////////////////////////////////////////////////// CTC ////////////////////////////////////////////////////////////////////////////////////////////////////
        void main()
        {            
           setup_timer_2(T2_DIV_BY_16,255,1);
           TRISC=0x00;
           PORTC=0x00;
           set_tris_a(0b00000111);      ////////   TU  A0  DEN A3  LA  CHAN NHAP  DL
           set_tris_b(0b00000011);      ////////////////BO//////B1 //////////////////
           
           while(TRUE)  {
                       
             tocdo();                   //  goi thang toc do
             setup_ccp1(CCP_PWM);       //GOI hay thiet lap che do dc do rong xung cho chan C2    
             set_pwm1_duty(speed);      // DAT GIA TRI CHO MOT KHOANG CHU KY XUNG XUAT RA
           
              
              if(!input(pin_a0)){            // quay chieu thuan
              
                       output_high(pin_c0);   ////  THAY DOI CHIEU   TUC  IN1----- IN2 DAO CHIEU NHAU
                       output_low(pin_c3);
              
                       output_high(pin_d0);   ///  cho  them  cai led  hien thi cho  mau
                       output_low(pin_d1);
              
                      }
              
                  if(!input(pin_a1)) {        ///  chieu  nguoc
                  
                       output_low(pin_c0);
                       output_high(pin_c3);
                
                    
                       output_low(pin_d0);    ///  cho  them  cai led  hien thi cho  mau
                       output_high(pin_d1);
              
              
                     }
                  
                  
                  if(!input(pin_a2)){         ///  cho  them  nut  tat nua vao  
                  
                       output_c(0x00);        // tat  ca  port  c    neu  truong  hop cac   chan  khac van lam  viec khac  thi   dung   OUTPUT_LOW(PIN_......);
                       setup_ccp1(ccp_off);   /// tat con vit nay  di
                       output_d(0x00);        //  tat ca port d   cho nhanh  ////  TRUONG  TU TREN
                       SPEED=0;               // CHO GIA TRI TOC DO   ======  MO
                     
                     }
              
            } // DAU NGOAC NHON CUA WHILE
        }     //   HAM MAIN
        ///////////////////////////////////////////////////////  KET THUC ////////////////////////////////////////////////////////////////////////////////////
        TRANG WEB NÀY BỊ LỖI CODE CỦA BỘ GÕ LẠI PHAI CAI UNIKEY === ADMIN SỦA LẠI ĐI NHÉ
        Attached Files

        Comment

        • it4rb
          Nhập môn đệ tử
          • Jun 2008
          • 10

          #5
          Cám ơn các bác, nhưng mà em vẫn chưa hiểu lắm, em xem datasheet của nó thì thấy nguồn nuôi motor cấp từ 2 chân vs và sense nên mới đưa xung đã điều chế vô đó. Còn chân Enable chỉ chophép/ko cho phép hoạt động thôi mà. Các bác giải thích cặn kẽ giùm em xíu nha.
          Attached Files

          Comment

          • vietanh
            Đệ tử 1 túi
            • Dec 2005
            • 20

            #6
            bạn nên nhìn đọc cho kỹ trước khi hỏi . chỉ cần nhin sơ đồ khối đã chân nào làm nhiêm vu gì.. tuy tôi không học chuyên ngành điện tư rõ ràng là in1 int2 la chân cấp nguồn cho cổng logic nếu int1 có điên áp cao thì thằng logic phia cầu trái được cấp nguồn nên cho xung dche di qua tới mạch cầu l vế trái làm việc điên. áp lên cao và ngược lại .. bạn cứ tượng như là dùng 4 cái công tắc cho 1 mô to ban muốn đảo chiều nào mà không đươc,,,,

            Comment

            • mtuankct
              Đệ tử 6 túi
              • Apr 2006
              • 125

              #7
              Bạn nên đọc lại nguyên lý hoạt động của cầu H, có thể tìm trên diễn đàn này chắc cũng có mà. Lúc mới bắt đầu mình cũng chẳng hiểu cầu H là cái gì
              @vietanh: Mình thấy bộ gõ tiếng Việt của forum hoạt động bình thường mà

              Comment

              • baulong
                Đệ tử 1 túi
                • Apr 2009
                • 18

                #8
                tại sao không tải file được nhỉ

                Nguyên văn bởi mtuankct View Post
                Bạn nên đọc lại nguyên lý hoạt động của cầu H, có thể tìm trên diễn đàn này chắc cũng có mà. Lúc mới bắt đầu mình cũng chẳng hiểu cầu H là cái gì
                @vietanh: Mình thấy bộ gõ tiếng Việt của forum hoạt động bình thường mà
                Ban đầu nhấn save file lại thì hiện ra đuôi .rar nhưng sau đó thì lại hiện ra đuôi .htm để tải trang này... nhiều lần rùi không biết có phải chỉ mình em bị không nhỉ....

                Comment

                Working...