Thông báo

Collapse
No announcement yet.

Các vấn đề ADC/DAC trong PIC

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

  • #46
    code adc

    Nguyên văn bởi totite Xem bài viết
    Tất nhiên rùi! Nếu không thì dùng cái gì để đọc data về? Nhưng nếu bạn dùng con serial AD thì chỉ cần 2 chân thôi.
    ai cho minh xin 1 code lap trinh adc pig 18f4550 dung de thay doi time nhấp led ở port d.thank all

    Comment


    • #47
      Hi chào các anh em
      mình đang làm về con 18F4550 mình có một vấn đề này cần các anh em chỉ bảo giúp
      có nghĩa là con này nó có thể đọc được adc ,nhưng mà mình có thể sử dụng con này đọc hai kênh adc riêng biệt sau đó đưa ra các kênh riêng biệt(ví dụ như là đưa ra hai cổng hiển thị lên led nhưng giá trị riêng biệt của từng cổng đó )

      Comment


      • #48
        anh có thể nói rõ hơn dc ko anh, e đang cần xử lý giá trị am ADC đọc dc để hiển thị LCD, nhưng ADC ko doc dc giá trị âm,thuật toán ntn z a? e dùng nguồn +-5 như anh nói,mong anh giúp đỡ!

        Comment


        • #49
          Nguyên văn bởi ThanhPhuc Xem bài viết
          Bạn nên xem lại datasheet phần AD, với Ref - khi đo điện áp âm kết quả luôn luôn =0.
          Theo mình bạn nên dùng nguồn đối xứng +-2,5V,với đầu vào AD dùng mass 0V,với đầu ra dùng mass
          -2,5V khi lập trình nên xử lý phần hiển thị điện áp âm(hiển thị dấu -).
          Chúc bạn thành công.


          anh có thể nói rõ hơn dc ko anh, e đang cần xử lý giá trị am ADC đọc dc để hiển thị LCD, nhưng ADC ko doc dc giá trị âm,thuật toán ntn z a? e dùng nguồn +-5 như anh nói,mong anh giúp đỡ!

          Comment


          • #50
            Nguyên văn bởi dipkevu Xem bài viết
            anh có thể nói rõ hơn dc ko anh, e đang cần xử lý giá trị am ADC đọc dc để hiển thị LCD, nhưng ADC ko doc dc giá trị âm,thuật toán ntn z a? e dùng nguồn +-5 như anh nói,mong anh giúp đỡ!
            Cài đặt Vff-=-5V, Vff+=+5V ...
            ĐT : 01676455880

            Comment


            • #51
              biết là vậy rồi! nhưng làm sao để đọc dc giá trị âm của lm35-->xử lý-->xuất ra LCD
              đây là hình ảnh trên proceus, mong các bác giúp đỡ!
              Click image for larger version

Name:	Untitled.jpg
Views:	1
Size:	115.3 KB
ID:	1387457
              Last edited by dipkevu; 24-10-2013, 10:23.

              Comment


              • #52
                Cộng điện áp âm với 1 điện áp dương là hằng số sau đó đưa vào ADC. Cộng có thể dùng OP-AMP.

                Comment


                • #53
                  Nguyên văn bởi dipkevu Xem bài viết
                  biết là vậy rồi! nhưng làm sao để đọc dc giá trị âm của lm35-->xử lý-->xuất ra LCD
                  đây là hình ảnh trên proceus, mong các bác giúp đỡ!
                  [ATTACH=CONFIG]76750[/ATTACH]
                  Ý của bạn là đọc giá trị âm về nhiệt độ à???
                  Sơ đồ bạn đưa có phần không đúng rùi R2 là phải lối với -Vss
                  R2= - Vss/ 50uA
                  V OUT=+1,500 mV at +150˚C
                  = +250 mV at +25˚C
                  = −550 mV at −55˚C
                  ĐT : 01676455880

                  Comment


                  • #54
                    uhm! thank ban!
                    R2=- Vss/50uA, điện trở âm luôn hả bạn
                    còn Nửa ADC có hiểu điện áp âm để xử lý xuất giá trị âm lên LCD ko z bạn
                    read=read_adc();
                    lcd init();
                    hangcot(1,1);
                    printf(hangcot," %u ",read);
                    dưới đây là toàn bộ code mình viết và hình proceus sau khi dc sửa lại

                    Click image for larger version

Name:	Untitled.gif
Views:	1
Size:	172.6 KB
ID:	1387516
                    #include <16F877A.h>
                    #device *=16 adc=10
                    #include <lcd_4bit.c>
                    #include <math.h>
                    #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT

                    #use delay(clock=20000000)
                    #use fast_io(d)
                    #byte porta=0x05
                    #byte portd=0x08
                    signed int8 read; // nhiet do am duong nen co dau

                    void main()
                    {
                    set_tris_a(1); // thiet lap pin porta.0 lam chan xuat du lieu
                    set_tris_d(0);

                    // Khoi tao cho ngat ngoai
                    enable_interrupts(INT_EXT);
                    ext_int_edge(H_TO_L);
                    enable_interrupts(GLOBAL);

                    // khoi tao ADC
                    setup_adc(adc_clock_internal); // thoi gian lay mau bang xung clock
                    setup_adc_ports(AN0); // xac dinh chan lay tin hieu analog va dien the chuan
                    set_adc_channel(0); //chon kenh bien doi ADC la kenh 0
                    delay_ms(100); // tao tre 50ms


                    while(TRUE)
                    {
                    lcd_init();
                    read=read_adc();
                    read =floor(read*0.488758553); //làm tròn nhiet do
                    hangcot(1,1);
                    printf(hienthi,"nd am duong");
                    hangcot(2,2);
                    printf(hienthi," %u ",read);



                    }
                    }

                    Comment


                    • #55
                      thank bạn nhưng mình chưa rõ lắm!
                      cộng ở chỗ nguồn( -Vref)-chân số 4 của PIC 16F877A hả bạn!
                      mục đích để làm gì vậy bạn

                      Comment


                      • #56
                        Nguyên văn bởi dipkevu Xem bài viết
                        thank bạn nhưng mình chưa rõ lắm!
                        cộng ở chỗ nguồn( -Vref)-chân số 4 của PIC 16F877A hả bạn!
                        mục đích để làm gì vậy bạn
                        Bạn à Vss ở đây mang giá trị âm=.> Vậy âm của âm = dương rùi.
                        Cái phần nguyên lý bạn hãy xem datasheet của LM35 nha....

                        Đúng rùi bạn ạ RA2 đó và bạn phải cấu hình cho PIC nữa nhé
                        ĐT : 01676455880

                        Comment


                        • #57
                          hình như ko dc bạn ơi! nếu cộng dùng op am hay dùng cổng đảo op am từ -5v sang 5v thì khác nào ta cấp nguồn (-Vref=+5V)
                          mà cấu hình cho pic là sao vậy bạn!
                          gần nộp đồ án 2 rồi, bạn giúp mình với!

                          Comment


                          • #58
                            Nếu là tôi : Tôi để nguyên +Vref và -Vref ( mặc định nối VDD và VSS ). Tín hiệu từ LM35 có dải từ -550mV đến 1500mV sẽ được đưa qua OPAMP để thực hiện cộng và nhân điện áp thành dải từ 0V đến khoảng gần 5V. Thực hiện cho ADC đọc điện áp này => tính toán => xong.

                            Comment


                            • #59
                              Vout mặc định bạn ơi! Vout là chân số 3 LM35 sẽ dc đưa vào chân pic(ADC) để đọc nếu dùng khuyếch đại thuật toán như ban cũng hợp lý nhưng sao đưa vào adc khi đã có Vout để đọc, mình cũng hơi mơ màng, theo như bạn, bạn có thể vẽ thử và gởi hình lên dc ko bạn! giúp mình nhen!

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X