Các vấn đề ADC/DAC trong PIC
Collapse
X
-
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!
-
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.
Leave a comment:
-
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!
Leave a comment:
-
Bạn à Vss ở đây mang giá trị âm=.> Vậy âm của âm = dương rùi.Nguyên văn bởi dipkevu Xem bài viếtthank 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
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é
Leave a comment:
-
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
Leave a comment:
-
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
#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);
}
}
Leave a comment:
-
Ý của bạn là đọc giá trị âm về nhiệt độ à???Nguyên văn bởi dipkevu Xem bài viếtbiế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]
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
Leave a comment:
-
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.
Leave a comment:
-
Cài đặt Vff-=-5V, Vff+=+5V ...Nguyên văn bởi dipkevu Xem bài viếtanh 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 đỡ!
Leave a comment:
-
Nguyên văn bởi ThanhPhuc Xem bài viếtBạ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 đỡ!
Leave a comment:
-
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 đỡ!
Leave a comment:
-
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 đó )
Leave a comment:
-
code adc
ai cho minh xin 1 code lap trinh adc pig 18f4550 dung de thay doi time nhấp led ở port d.thank allNguyên văn bởi totite Xem bài viếtTấ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.
Leave a comment:
-
các bác cho em hỏi tần số lấy mẫu của ADC trong Pic có thay đổi được không, nếu thay đổi được thì phải làm như thế nào vậy ạ? Em chưa dùng Pic bao giờ mong các bác chỉ giáo, em đang cần chức năng AD này để làm trên FPGA.
Thanks alot !
Leave a comment:
dự án của bạn Tra theo mã, xem datasheet và đặt hàng trực tuyến. MicrochipROHMEpsonTaejin
Đặt hàng & tư vấn
Hà Nội024.3640 8561
TP.HCM028.3811 9870
Quét mã hoặc bấm để chat Zalo với R&PChat Zalo
Quét mã hoặc bấm để chat Zalo với R&PChat Zalo
Bài viết mới nhất
Collapse
-
Trả lời cho Hỏi về biến áp xungbởi nhathung1101Ngày xưa cô giáo bảo: Để chống nhiễu cao tần thì bọc lớp đồng mỏng quanh biến áp.
Ngày nay có lẽ do keo lởm, nên người ta buộc dây cho nó khỏi long ra....

















-
Channel: Điện tử dành cho người mới bắt đầu
09-11-2026, 20:51 -
-
-
bởi lamvu0677chào mọi người, trong con biến áp xung người ta hay quấn thêm mấy vòng dây thiếc quanh lõi từ thì e không hiểu nó có ý nghĩa hay tác dụng là gì , bác nào chuyên môn thông cho e phát.như ảnh dưới1 Photo
-
Channel: Điện tử dành cho người mới bắt đầu
-
Leave a comment: