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. |
Bạn dùng hàm set_ADC_channel() để chọn ADC cần dùng.
|
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; } ///////////////////////////////////////////////////////////////////// |
thank đại ca
|
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!
|
loi nay la j vay cac anh oi
loi nay la j vay cac anh oi
|
Trích:
|
Múi giờ GMT. Hiện tại là 04:42 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam