|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
14-03-2011, 06:46 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Nov 2010
Bài gửi: 7
: |
cách sử dụng cùng lúc 3 bộ adc với pic 16f887
em đang làm đồ án sử dụng 3 biến trở làm đầu vào cho 3 kênh adc. em sử dụng setup_adc_ports( RA0_RA1_RA3_ANALOG );
nhưng em chưa hiểu adc=read_adc() thì làm thế nào để đọc được kết quả của 3 kênh ạ. xin các tiền bối giúp em với. |
18-03-2011, 05:09 PM | #2 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 3
: |
Bạn dùng hàm set_ADC_channel() để chọn ADC cần dùng.
|
19-03-2011, 01:48 PM | #3 |
Đệ tử 2 túi
Tham gia ngày: Aug 2010
Bài gửi: 27
: |
bạn có thể làm như thế này mình ví dụ dùng 2 kênh adc thôi nha.còn lại bạn làm tương tự nhá. đây là code đo adc 2 kênh dùng để tính Công Suất= UxI. Thân
///////////////////////////////////////////////////////////////////////////////////// #include <16F877A.h> #include <def_877a.h> #device adc=8 #FUSES HS #use delay(clock=8000000) #include <lcd1_doan.c> int16 giatriadc0,giatriadc1; float tong,von,ampe; void channel_0(); void channel_1(); void congsuatP(); #int_rda void main() { set_adc_channel(1); setup_adc(adc_clock_internal); setup_adc_ports(ALL_ANALOG); enable_interrupts(int_rda) ; enable_interrupts(global) ; lcd_init(); printf(lcd_putc,"*DH-CNTPHCM_HUI*"); while(1) { channel_0(); delay_ms(100); channel_1(); delay_ms(10); congsuatP(); lcd_gotoxy(1,2); printf(lcd_putc,"%3.1f",tong); lcd_gotoxy(7,2); lcd_putc("KW"); } } void channel_0() { set_adc_channel(1); giatriadc0=read_adc(); von=(float)giatriadc0*76/51; } void channel_1() { set_adc_channel(2); giatriadc1=read_adc(); ampe=(float)giatriadc1/51; } void congsuatP() { tong=(float)von*ampe/1000; } ///////////////////////////////////////////////////////////////////// |
30-03-2011, 08:09 AM | #4 |
Nhập môn đệ tử
Tham gia ngày: Nov 2010
Bài gửi: 7
: |
thank đại ca
|
01-11-2011, 10:28 PM | #5 |
Nhập môn đệ tử
Tham gia ngày: Mar 2010
Bài gửi: 3
: |
Bạn ơi cho mình hỏi. tại sao mình dùng 2 kênh adc. 1 kênh đọc nhiệt độ LM 35, 1 kênh nối với quang trở . chạy mô phỏng proteus thì OK rồi. nhưng khi chạy mạch thật thì nó bị lỗi. giá trị trả về của 2 kênh adc bị ảnh hưởng lẫn nhau, khi che quang trở đi thì nhiệt độ bị thay đổi. nhiệt độ cứ nhảy loạn xạ hết cả lên. ko giống như mô phỏng. mình để delay giữa 2 lần đọc ADC 2 kênh cỡ ms. code giống như trên. thanks!
|
17-10-2013, 03:58 PM | #6 |
Nhập môn đệ tử
Tham gia ngày: Oct 2013
Bài gửi: 1
: |
loi nay la j vay cac anh oi
loi nay la j vay cac anh oi
|
19-10-2013, 11:30 PM | #7 | |
Đệ tử 2 túi
Tham gia ngày: Nov 2012
Bài gửi: 27
: |
Trích:
|
|
|
|