PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 14-03-2011, 06:46 PM   #1
cuongdkz88
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.
cuongdkz88 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-03-2011, 05:09 PM   #2
000007
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.
000007 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-03-2011, 01:48 PM   #3
akatsu
Đệ 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;
}
/////////////////////////////////////////////////////////////////////
akatsu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-10-2013, 03:58 PM   #4
cau am chen
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
cau am chen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-03-2011, 08:09 AM   #5
cuongdkz88
Nhập môn đệ tử
 
Tham gia ngày: Nov 2010
Bài gửi: 7
:
thank đại ca
cuongdkz88 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-11-2011, 10:28 PM   #6
th43v3r89
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!
th43v3r89 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-10-2013, 11:30 PM   #7
phuphuongbk
Đệ tử 2 túi
 
Tham gia ngày: Nov 2012
Bài gửi: 27
:
Trích:
Nguyên văn bởi th43v3r89 View Post
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!
Mô phỏng chỉ là 1 phần nhỏ thôi.nó là trong điều kiện hoàn hoản rồi.Còn thực tế ms xảy ra nhiều vấn đề. Đừng tin quá nhiều vào mô phỏng bạn ak. Ko biết code bạn thế nào nh theo t thì nên thêm 1 lệnh delay (khoảng 1ms) khi chuyển kênh.
phuphuongbk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 01:23 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam