Thông báo

Collapse
No announcement yet.

Nhờ các Pro chỉ bảo cho 1 con gà như em về AVR

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

  • #31
    Như vậy chưa ổn lắm bác ạ.Mình dùng nút bấm cơ khí, khi bấm còn bị dao động chán.Còn phải chống nhiễu nữa.Nên viết chương trình kiểm tra:nếu thấy phím được nhấn thì delay 1khoảng thời gian,sau đó kiểm tra lại,nếu vẫn nhấn thì mới nhận.rồi delay thêm 1 thời gian nếu cần.
    Dear haui0037!

    Bạn nói rất đúng, và điều đó tôi đã nói đến trong bài viết ở trên. Chính vì thế tôi đánh giá việc dùng phím bấm để tạo ra sự kiện đếm là không tối ưu. Không hiểu bạn đã xem qua chưa ạ!
    For a better world

    Comment


    • #32
      Nguyên văn bởi Toan.Lv Xem bài viết
      Dear haui0037!

      Bạn nói rất đúng, và điều đó tôi đã nói đến trong bài viết ở trên. Chính vì thế tôi đánh giá việc dùng phím bấm để tạo ra sự kiện đếm là không tối ưu. Không hiểu bạn đã xem qua chưa ạ!
      Uhm.em đọc rồi nhưng bác nói chung chung quá,nói là có thể dùng phần cứng hoặc phần mềm nhưng chẳng nói là phải làm thế nào.hì.bác kia hỏi là hỏi phương pháp cơ,ít nhất bác cũng phải nói là cần làm gì chứ.
      Dùng phím bấm cũng đc mà. nếu chống nhiễu tốt thì vẫn ok.
      Kể cả bác dùng hồng ngoại thì vẫn phải xử lý nhiễu.
      Không biết nói như vậy có đúng không?

      Comment


      • #33
        em dùng phần mềm kiểm tra đấy ạ, nếu mà nút ấn liên tục trong khoảng 0,1s thì mới chấp nhận nó là nút bấm, còn ít hơn thì là nhiễu ạ!
        Code:
        while(!button)
                        {
                        k=0;
                        i++;
                        t=1;
                        delay_ms(20);
                        if(i==5&&t==1);
                                 {       
                                 num++;
                                  if(num==100){num=0;}
                                 hienthi(num);
                                  t=0;
                                  i=0;
                                  }
                          while(!button)
                                {delay_ms(20);}
                        }
        bạn tranvietky có thể tăng thời gian lên nếu cần nhé!

        chống nhiễu mềm bằng cách này đã được mình kiểm tra trong thực tế rồi bạn nhé, hoàn toàn ổn! chỉ là thời gian giữa nhiễu và bấm có thể chưa phù hợp thôi!
        bạn chú ý phần code mà mình ghi phía trên nhé!
        mình kiểm tra nút bấm 5 lần, sau mỗi lần kiểm tra thì lại tạo trễ 20ms, nếu sau 5 lần tức là 100ms mà nút ấn vẫn được nhấn thì mình xác định nó là nút bấm và tăng số đếm lên 1 rồi hiển thị ra...

        Comment


        • #34
          theo em nút bấm phần cứng là thứ cổ điển từ trước tới nay người ta vẫn dùng, việc đếm sự kiện thì có thể dùng nút bấm hoặc 1 số loại khác( như là lazer, hồng ngoại...), vấn đề nhiễu của nút bấm thì do khá nhiều ấy tố, vd: tiếp xúc với các tinh thể áp điện, tia lửa điện khi bấm, lò so....,
          kể cả các loại đếm sự kiện bằng lazer em tin nhiễu vấn sảy ra đấy ạ!

          Comment


          • #35
            Các bác nói rất đúng...cho dù là dùng phím cứng cơ khí, hay bằng hồng ngoại đều có nhiễu và độ trễ....vì vậy ko thể bỏ qua các điểm này, với những bài tập nhỏ như thế này thì thầy giáo em ko cần quá đẹp hay quá chuẩn mà chỉ cần đầy đủ và hiểu đc bài viết
            Thank cả nhà quan tâm...em đang nghiên cứu cách xử lí bộ trễ..thầy em báo lên dùng 1 tụ C nữa..nối với nút bấm....còn theo em viết phần mềm hay hơn đỡ tốn linh kiện....

            Comment


            • #36
              Nguyên văn bởi fiuzu Xem bài viết
              em dùng phần mềm kiểm tra đấy ạ, nếu mà nút ấn liên tục trong khoảng 0,1s thì mới chấp nhận nó là nút bấm, còn ít hơn thì là nhiễu ạ!
              Code:
              while(!button)
                              {
                              k=0;
                              i++;
                              t=1;
                              delay_ms(20);
                              if(i==5&&t==1);
                                       {       
                                       num++;
                                        if(num==100){num=0;}
                                       hienthi(num);
                                        t=0;
                                        i=0;
                                        }
                                while(!button)
                                      {delay_ms(20);}
                              }
              bạn tranvietky có thể tăng thời gian lên nếu cần nhé!

              chống nhiễu mềm bằng cách này đã được mình kiểm tra trong thực tế rồi bạn nhé, hoàn toàn ổn! chỉ là thời gian giữa nhiễu và bấm có thể chưa phù hợp thôi!
              bạn chú ý phần code mà mình ghi phía trên nhé!
              mình kiểm tra nút bấm 5 lần, sau mỗi lần kiểm tra thì lại tạo trễ 20ms, nếu sau 5 lần tức là 100ms mà nút ấn vẫn được nhấn thì mình xác định nó là nút bấm và tăng số đếm lên 1 rồi hiển thị ra...
              Đọc doạn code này em đã hiểu cách xử lí của anh....cho dù em đã học C đc 3 năm nhưng bây giờ đọc lại code chưa đc tốt lắm nhưng vẫn hiểu và biết cách sủa ...cảm ơn bác rất nhiều....bác có số dt ko..cho em: để em học hỏi kinh nghiệm và chỉ giáo cái...

              Comment


              • #37
                em mới chuyển sang avr 1 thời gian thôi, trước đây em học về 8051, nên cũng biết chút ít thôi ạ! nếu bác hay online thì bác add nick yahoo của em nhé trungelli cảm ơn bác đã quan tâm!

                Comment


                • #38
                  Nguyên văn bởi tranvietky Xem bài viết
                  Các bác nói rất đúng...cho dù là dùng phím cứng cơ khí, hay bằng hồng ngoại đều có nhiễu và độ trễ....vì vậy ko thể bỏ qua các điểm này, với những bài tập nhỏ như thế này thì thầy giáo em ko cần quá đẹp hay quá chuẩn mà chỉ cần đầy đủ và hiểu đc bài viết
                  Thank cả nhà quan tâm...em đang nghiên cứu cách xử lí bộ trễ..thầy em báo lên dùng 1 tụ C nữa..nối với nút bấm....còn theo em viết phần mềm hay hơn đỡ tốn linh kiện....
                  Bác cứ nối vào cho em.Bọn em cũng toàn làm như vậy cả,tốn gì đâu(mua 1 gói bác dùng tẹt ga).làm cho con tụ 104 là được.nếu mạch có rơle cũng nối tụ vào nó.

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...
                  X