Thông báo

Collapse
No announcement yet.

AVR và triac

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

  • #16
    Nguyên văn bởi toan88_tnt Xem bài viết
    làm phiền anh chút nữa.Vậy muốn thay đổi độ sáng đèn,tốc độ của quạt thì phải thay đổi giá trị nạp cho OCR phải không.Mỗi lần ấn tăng/giảm,lại phải can thiệp ngắt,nạp lại ocr ah??
    cảm ơn!
    OK đúng rồi. Giá trị đầu ra cao hay thấp do OCR quy định mà. Cứ quất OCR= xxx không cần can thiệp ngắt véo làm gì, mọi thứ có phần cứng lo
    Đã bỏ nghề về quê chăn gà...

    Comment


    • #17
      Nguyên văn bởi Katecka Xem bài viết
      OK đúng rồi. Giá trị đầu ra cao hay thấp do OCR quy định mà. Cứ quất OCR= xxx không cần can thiệp ngắt véo làm gì, mọi thứ có phần cứng lo
      ơ,vẫn phải có ngắt bắt điểm 0 chứ?Mà có nhất thiết phải dùng timer không vậy ,liệu có thể chơi thẳng anh delay_us() hoặc delay_ms() đựoc không vậy.
      Sườn chương trình như này:
      int i=5;(i từ 0 đến 9)
      chương trình ngắt ngoài()//sườn lên
      {
      delay_ms(i);//trẽ i ms rồi tạo xung mở triac
      triac=1;//mo triac
      delay_us(100);
      triac=0;//tắt xung cực G
      }
      void main()
      {
      if(nhan_tang==0)// nhấn nút tăng
      while(!nhan_tang);chờ nhả nút nhấn tăng
      i--;
      if(nhan_giam==0)// nhấn nút giảm
      while(!nhan_giam);chờ nhả nút nhấn giảm
      i++;
      if(i>=9) i=9;
      if(i<=0) i=0;
      }
      Xin mọi người giúp tiếp!
      Gian Khó Cuộc Đời Nuôi Ta Lớn!
      Giang Hồ Đẫm Máu Dạy Ta Khôn!

      (@_@)______________(@_@)

      Comment


      • #18
        cứu cứu!!!!

        xin moị người chỉ giúp,mạch này sai ở đâu mà khi em đo chân INT0 (cho chưong trình phục vụ ngắt mà không thấy gì cả), chẳng thấy có hiện tựong ji` cả.

        Đây là đoạn code viết bằng codevision,lúc cài đặt,em chọn ngắt bàng sườn lên:

        Chip type : ATmega8
        Program type : Application
        AVR Core Clock frequency: 4.000000 MHz
        Memory model : Small
        External RAM size : 0
        Data Stack size : 256
        ************************************************** ***/

        #include <mega8.h>
        #include <delay.h>

        #define triac PORTB.1
        #define tang PINC.0
        #define giam PINC.1
        int i=5;


        // External Interrupt 0 service routine
        interrupt [EXT_INT0] void ext_int0_isr(void)
        {

        delay_ms(i);
        triac=0;
        delay_us(100);
        triac=1;
        PORTB.0=1;//cai này để kiểm tra xem co' ngắt không
        delay_ms(100);

        }
        void main(void)
        {

        PORTB=0x00;
        DDRB=0xFF;

        PORTC=0x00;
        DDRC=0x00;

        PORTD=0x00;
        DDRD=0x00;

        // External Interrupt(s) initialization
        // INT0: On
        // INT0 Mode: Rising Edge
        // INT1: Off
        GICR|=0x40;
        MCUCR=0x03;
        GIFR=0x40;

        // Global enable interrupts
        #asm("sei")

        while (1)
        {
        // Place your code here
        if(tang==0)
        while(!tang);
        --i;
        if(giam==0)
        while(!giam);
        ++i;
        if(i<=0) i=0;
        if(i>=9) i=9;

        };
        }
        Xin giúp đỡ,cảm ơn!
        Gian Khó Cuộc Đời Nuôi Ta Lớn!
        Giang Hồ Đẫm Máu Dạy Ta Khôn!

        (@_@)______________(@_@)

        Comment


        • #19
          Nguyên văn bởi toan88_tnt Xem bài viết
          xin moị người chỉ giúp,mạch này sai ở đâu mà khi em đo chân INT0 (cho chưong trình phục vụ ngắt mà không thấy gì cả), chẳng thấy có hiện tựong ji` cả.

          Đây là đoạn code viết bằng codevision,lúc cài đặt,em chọn ngắt bàng sườn lên:

          Xin giúp đỡ,cảm ơn!
          Tôi hay dùng LM393 kèm theo một trở treo 4,7k lên 5V. Nếu bạn dùng LM358 thì bạn nên dùng một trở 10k kéo xuống đất(bạn dùng sườn lên mà). Chắc ăn hơn bạn dùng trở phân áp tạo một điện áp khoảng 0,5 volt ở chân 2 của LM358, làm thế này để cho chân ra 1 bằng 0 khi áp vào chân 3 < 0,5 volt.
          Tôi cũng chưa rõ switch của bạn đấu đúng chưa, và mạch reset thiếu trở 10k kéo lên 5V.

          Bạn thử khắc phục xem, nếu có gì tôi sẽ thảo luận tiếp với bạn.

          Chúc bạn thành công!!!

          Comment


          • #20
            uh.Cảm ơn bạn nha.
            Cái mạch reset thì mình set trở treo trong avr .nó resat đc mà.
            còn đầu vào chân 3 OA mình lấy ở chân đâu ra + của cầu diode để bắt điểm 0 cho triac.
            Gian Khó Cuộc Đời Nuôi Ta Lớn!
            Giang Hồ Đẫm Máu Dạy Ta Khôn!

            (@_@)______________(@_@)

            Comment


            • #21
              Hi,
              Thông thường những project này thì người ta dùng trực tiếp điện lưới luôn, không dùng biến áp để cấp nguồn cho VĐK như vậy mạch sẽ gọn nhẹ hơn. Hãy tưởng tượng bạn dùng để điều chỉnh tốc độ quạt mà phải gắn thêm một hộp điều khiển bên ngoài nữa thì rất chuối, nếu kích thước mạch đủ nhỏ để nhét toàn bộ vào chân đế của máy quạt sẽ tốt hơn, vã lại các mạch này thường thao tác bằng điều khiển không dây (hồng ngoại hoặc RF) hoặc đơn giản là các phím bấm nên cũng chẳng có nguy hiểm gì cả. Nếu bác muốn làm theo kiểu này thì bác search tài liệu Transformerless power supply sẽ có những thông tin bổ ích. Nếu muốn cụ thể hơn có thể search tài liệu giao tiếp X10 dùng PIC của Microchip. Nếu bác muốn dùng theo kiểu của bác củng tốt nhưng mạch phát hiện điểm 0 (zero detector) dùng luôn 1 điện trở đấu thẳng từ nguồn xoay chiều luôn khỏi cần dùng BJT thì sẽ phát hiện chính xác điểm 0 hơn.
              Thân ái.
              Đường đến những ngày vinh quang không còn xa
              Con đường chúng ta... chúng ta đã chọn.

              Comment


              • #22
                Nguyên văn bởi Hard Xem bài viết
                Hi,
                Thông thường những project này thì người ta dùng trực tiếp điện lưới luôn, không dùng biến áp để cấp nguồn cho VĐK như vậy mạch sẽ gọn nhẹ hơn. Hãy tưởng tượng bạn dùng để điều chỉnh tốc độ quạt mà phải gắn thêm một hộp điều khiển bên ngoài nữa thì rất chuối, nếu kích thước mạch đủ nhỏ để nhét toàn bộ vào chân đế của máy quạt sẽ tốt hơn, vã lại các mạch này thường thao tác bằng điều khiển không dây (hồng ngoại hoặc RF) hoặc đơn giản là các phím bấm nên cũng chẳng có nguy hiểm gì cả. Nếu bác muốn làm theo kiểu này thì bác search tài liệu Transformerless power supply sẽ có những thông tin bổ ích. Nếu muốn cụ thể hơn có thể search tài liệu giao tiếp X10 dùng PIC của Microchip. Nếu bác muốn dùng theo kiểu của bác củng tốt nhưng mạch phát hiện điểm 0 (zero detector) dùng luôn 1 điện trở đấu thẳng từ nguồn xoay chiều luôn khỏi cần dùng BJT thì sẽ phát hiện chính xác điểm 0 hơn.
                Thân ái.
                Uhm,mình cũng hướng làm điều khiển quạt bằng sóng RF mà,phần RF thì mình giao tiếp điều khiển được qua các LED đơn rồi, còn đến mấy ông Triac này thìa bị mắc chưa được.Ý bạn là đấu thẳng vào chân ra cầu diode bằng 1 R vào chân INT ah.Thế có ổn không.vì mình search thì thấy mạch Zezo detector này người ta thường cho qua một bộ so sánh OA mà.
                Xin các bạn giúp tiếp!
                Cảm ơn nhiều!
                Gian Khó Cuộc Đời Nuôi Ta Lớn!
                Giang Hồ Đẫm Máu Dạy Ta Khôn!

                (@_@)______________(@_@)

                Comment


                • #23
                  Vì đầu vào Into0 của vi điều khiển cũng là đầu vào số nên nếu đưa tín hiệu tương tự vào nó vẫn hiểu là 1 và 0 cơ mà cần j OA cho vuông cạnh xung nữa, độ chệch điểm 0 mình có thể sử lý trong chương trình
                  Thiết kế chế tạo các loại máy xoáy nắp, chiết rót định lượng dùng trong dược phẩm và thực phẩm.

                  Comment


                  • #24
                    Nguyên văn bởi Le Thi Bich Xem bài viết
                    Vì đầu vào Into0 của vi điều khiển cũng là đầu vào số nên nếu đưa tín hiệu tương tự vào nó vẫn hiểu là 1 và 0 cơ mà cần j OA cho vuông cạnh xung nữa, độ chệch điểm 0 mình có thể sử lý trong chương trình
                    tức là cho thẳng chân dương cầu Diode vào INT0 mà không qua OA, hay tran gì hả bạn. Bạn có thể nói rõ hơn giúp mình không.
                    Gian Khó Cuộc Đời Nuôi Ta Lớn!
                    Giang Hồ Đẫm Máu Dạy Ta Khôn!

                    (@_@)______________(@_@)

                    Comment


                    • #25
                      Cho qua OA tức là thêm một bộ so sánh nhằm mục đích tạo ra một cạnh xung tương đối vuông (chuẩn hóa cạnh xung) vì nếu cho thẳng đầu vào thì cạnh xung dốc (hình sin), Nhưng chân vi điều khiển nhận vào là tín hiệu số luôn có một mốc điện áp, cứ trên mốc đó nó hiểu là 1 dưới mốc đó nó hiều là 0 mặc kệ cạnh đầu vào có dốc đứng hay dốc thoai thoải,
                      Cho thêm OA càng tốt không sao cả nhưng không cần OA vẫn hoạt động được bạn cho chân dương cầu đi ốt qua một điện trở khoảng 100 Omh cẩn thận thì thêm một con zenner 5V là được. Nên chọn xung vào int0 là cạnh xuống sau đó thêm một tí tẹo delay cho đúng điêm 0 thật là ok
                      Thiết kế chế tạo các loại máy xoáy nắp, chiết rót định lượng dùng trong dược phẩm và thực phẩm.

                      Comment


                      • #26
                        ôk.Mình đã xử lí được ngắt, bắt điểm 0 rồi.Nhưng không hiểu triac sao ý.
                        Mình cho chân "triac=0" mà tải là 1 bóng đèn quả nhót không sáng.Lạ một điều là khi dùng 1 vật kim loại chạm vào chân G thì đèn lóe sáng rồi tắt ngay.Mình lắp mạch như trong datasheet của MOC3020.
                        Xin chỉ giúp.
                        Cảm ơn các bạn nhiều!
                        Gian Khó Cuộc Đời Nuôi Ta Lớn!
                        Giang Hồ Đẫm Máu Dạy Ta Khôn!

                        (@_@)______________(@_@)

                        Comment


                        • #27
                          Bạn xem giữa Triac và moc3020 lắp có đúng chiều ko?
                          Cung cấp Oscilocope , Inverter , Switching , DC power supply , AC millivolt meter ....

                          Comment


                          • #28
                            cậu đó muốn bạn sử dụng bộ ADC của AVR để dò đồng bộ với điện 220 VAC đấy, tốt nhất là bạn mua một con TCA785 về lắp mạch đi chạy ngon ngay
                            Cái gì biết nói biết. Cái không biết nói không biết. Ấy là biết đấy!
                            email:

                            Comment


                            • #29
                              Cảm ơn mọi người, mình mở đc triac rồi nhưng chác bắt 0 chưa chính xác nên đèn bị nháy.Phải không nhỉ.
                              Đây là đoạn code chương trình trong phần ngắt sườn lên để điều khiển chân "triac".khi có ngắt t tạo một xung kích ra chân "triac" mà sao đèn quả nhót cứ nhấp nháy.
                              interrupt [EXT_INT0] void ext_int0_isr(void)
                              {
                              // Place your code here
                              delay_ms(4);
                              triac=0;
                              delay_us(10);
                              triac=1;
                              }
                              xin hãy chỉ giúp!
                              Last edited by toan88_tnt; 25-04-2010, 07:50.
                              Gian Khó Cuộc Đời Nuôi Ta Lớn!
                              Giang Hồ Đẫm Máu Dạy Ta Khôn!

                              (@_@)______________(@_@)

                              Comment


                              • #30
                                Xin hãy giúp mình với!

                                mong các bạn giúp mình tại sao với đoạn code và mạch trên mà khi điều khiển đèn lại bị nháy.
                                Cảm ơn các bạn nhiều!
                                Gian Khó Cuộc Đời Nuôi Ta Lớn!
                                Giang Hồ Đẫm Máu Dạy Ta Khôn!

                                (@_@)______________(@_@)

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X