PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC - Thiết kế và Ứng dụng

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

PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 19-04-2007, 07:55 AM   #16
ThaiVu
Đệ tử 1 túi
 
Tham gia ngày: Jul 2006
Bài gửi: 17
:
PicBasic Pro rat pho bien trong gioi binh dan,ho khong duoc di hoc nhung lai thich tay may . PBP rat de viet , de hieu va co nhieu commands thuc dung cho viec sang che may moc. so di no khong duoc pho bien o VN vi no phat xuat tu Basic Stamp trong gioi hobby dien tu (khong phai nhu C tu cac truong dai hoc VN) o My va Au chau. Hy vong sinh vien cac nghanh khac (khong can phai hoc C) cung co the lam quen de dang de sang kien cua ho de thuc hien trong thuc te. Day la thu vui cho moi gioi.
Chao ban va chuc ban thanh cong.
TV
ThaiVu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-04-2007, 05:06 AM   #17
hatuan296
Làm quen với PIC
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: Hcm
Bài gửi: 160
:
Sẵn tiện chủ đề này . mình cũng co một câu hỏi mong các bạn giúp mình nha .

mình dùng cảm biến nhiệt là Lm35 , pic là 18f4520 , Vref- nối mass , vref+ nối biến trở , cân chỉnh được 2,7v . Mình lập trình cho hiển thị nhiệt độ trên LCD . code được viết bằng Picbasic Pro .
khai báo các thanh ghi ADC như sau :

ADCON1 = %00011111 ' CHUYEN PORTA , PORTE SANG DIGITAL
ADCON0 = %00010011 ' Set PORTA analog CHON ADC KENH 4

Kết quả , Lcd vẫn hiện thị được nhiệt độ . nhưng khi tăng nhiệt độ tại cảm biến , thì giá trị của LCD lại giảm đi . .

đây là câu hỏi mình mong các bạn giúp mình nha . Cảm ơn rất nhiều .
hatuan296 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-04-2007, 09:40 AM   #18
ThaiVu
Đệ tử 1 túi
 
Tham gia ngày: Jul 2006
Bài gửi: 17
:
Chao ban Hatuan296,
Minh khong biet nhieu ve 18F4520, nhung dua theo data sheet thi thay ban can coi lai:
1. ADCON0 = %00010011 cho thay ban chon AN4 la analog input cho cam bien, nhu vay ADCON1 = %00011111 cho thay khong co port A nao cho AN4.
theo thien y cua minh thi nen viet ACDCON0 = %00000011, ADCCON1 = %00011110, TRISA = %11111111 .(minh chon AN0 cho cam bien, AN0 la analog input, con lai la digital input).
2. Khong thay ban nhac den ADCON2( noi ve right, left justify, accquisition time, A/D conversion clock ) minh khong ro DEFINE ADC_CLOCK 3 va DEFINE ADC_SAMPLESUS 50 co the dung cho 18F4520 duoc khong. Neu thu chay duoc, cho minh biet voi.
Day cung la dip de minh hoc ve PIC 18FXXXX.
Chuc ban thanh cong.
Thai Vu
ThaiVu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-04-2007, 03:41 PM   #19
hatuan296
Làm quen với PIC
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: Hcm
Bài gửi: 160
:
Chào bạn THAIVU . chương trình của mình không thể sửa như bạn được , vì yêu cầu phần cứng là thiết kế cho AN4 nhận tín hiệu từ LM35 rồi . Còn các các chân PORTA.0 , PORTA.1 kết nối I2C .

Còn thanh ghi ADCON2 thì mình chưa đụng tới , vì thật sự cũng chưa biết nó là gì . Nếu được mong bạn chia sẽ nha . thanks
hatuan296 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-04-2007, 04:21 PM   #20
hatuan296
Làm quen với PIC
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: Hcm
Bài gửi: 160
:
mình đã thử sửa chương trình lại như sau :

ADCON1 = %00011010 ' CHUYEN PORTA , PORTE SANG DIGITAL trừ từ AN0 đến AN4

ADCON0 = %00010011 ' Set PORTA analog CHON ADC KENH 4
Define ADC_BITS 8 ' Set number of bits in result
Define ADC_CLOCK 4 ' Set clock source (4 : 4 TOSC)
DEFINE ADC_SAMPLEUS 50 'ADC sampling time in microseconds

thì vẫn bị tình trạng là nhiệt độ tại cảm biến tăng lên . nhưng nhiệt độ hiển thị trên lại bị giảm xuống . Mình cũng thật không biết lài tại sao nữa .
Mặc dù câu lệnh hết sức đơn giản :

MAIN :

ADCIN 4 , TEMP ' đọc giá trị adc kênh 4 , đưa vào biến TEMP

PAUSE 200 ' chờ 200 mili giây

LCDOUT DEC2 TEMP ' xuất biến temp ra lcd dưới dạng số thập phân

PAUSE 500 ' chờ 500 mili giây

GOTO MAIN ' làm lại từ đầu .


Mong bác náo rành cái này thì giúp với . mình đang bí quá . thanks
hatuan296 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-04-2007, 06:26 PM   #21
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Theo cấu hình của bạn, nguồn áp chuẩn cho +VREF sẽ được nối vào AN3, bạn có nối như vậy chứ?

Chương trình của bạn chỉ dùng AN4, vậy các AN2 đến AN0 có được dùng không? Nếu có thì dùng như thế nào? Nếu không thì tại sao lại chọn cấu hình analog từ AN0 đến AN4.

Cái bất lợi của ngôn ngữ cấp cao là chúng ta khó kiểm soát được cách thức các module phần cứng được sử dụng và thiết lập. Ví dụ câu lệnh ADCIN 4 , TEMP của bạn, thực sự là nó đang thực hiện những gì?

Tôi không dùng LM35, nhưng đã từng dùng AD22100 (tương tự LM35) để đo nhiệt độ và hiển thị lên LCD. Tôi đã hiển thị nhiệt độ ở dạng xx.x độ C. Không hề có chuyện nhiệt độ tăng mà giá trị hiển thị giảm.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-04-2007, 06:34 PM   #22
meishun
Đệ tử 6 túi
 
meishun's Avatar
 
Tham gia ngày: Jul 2006
Bài gửi: 135
:
Chào các bạn, mình đã làm mạch đo nhiệt độ dùng PIC16F877A và cảm biến nhiệt độ LM35DZ, đo nhiệt độ môi trường và hiển thị lên LED 7 đoạn. Nay mình post lên cho mọi người cùng tham khảo.( đề tài này mình viết bằng Hợp Ngữ)
File Kèm Theo
File Type: pdf DO NHIET DO.pdf (15.9 KB, 435 lần tải)
File Type: pdf DONHIETDO2.pdf (10.3 KB, 353 lần tải)
meishun vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-04-2007, 03:57 AM   #23
hatuan296
Làm quen với PIC
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: Hcm
Bài gửi: 160
:
Vậy là mình đã giãi quyết xong rắc rối . sau khi bỏ cả ngày hôm nay để kiểm tra , chỉnh sữa :

. kiểm tra mạch in , thấy không sai . chân vref+ được cân chỉnh ở 2,73 v
. kiểm tra chương trình ( viết lại nhiều chương trình cho nhiều loại 18F như 4520 , 4525 , 458 , 4610 , 4620 , 4680 ) . con nào cũng không chịu chạy .

rốt cuộc đành chạy ra chợ Nhật Tảo kiếm 2 con LM35 mới nguyên về . thì lại chạy được . , tăng nhiệt độ tại cảm biến thì số trên LCD sẽ tăng chứ không giảm như trước .

Sau đây là chương trình mình đã dùng :

Code:
 ADCON1 = %00011111     ' CHUYEN PORTA , PORTE SANG DIGITAL
 ADCON0 = %00010011     ' Set PORTA analog CHON ADC KENH 4      
 Define	ADC_BITS	8	chỉ dùng ADC 8 bit
 Define ADC_CLOCK   4     ' Set clock source (4 : 4 TOSC)
 DEFINE ADC_SAMPLEUS 50 'ADC sampling time in microseconds


MAIN :

ADCIN 4 , TEMP ' đọc giá trị adc kênh 4 , đưa vào biến TEMP

PAUSE 200 ' chờ 200 mili giây 

LCDOUT DEC3 TEMP ' xuất biến temp ra lcd dưới dạng số thập phân 3 chữ số

PAUSE 500 ' chờ 500 mili giây 

GOTO MAIN ' làm lại từ đầu .
Chương trình vẫn vậy , không có gì thay đổi cả . và là chương trình rất cơ bản .
To THAIVU : hy vong sẽ có dịp trao đổi thêm về kinh nghiệm lập trình Pic dùng Picbasic Pro với bạn . thân chào !

à , các bạn cho mình hỏi thêm . với Vref+ trong ADC 8 bit thì mình cân chỉnh bao nhiêu , 10 bit thì bao nhiêu là chính xác ? Đề tài trên mình đã cân chỉnh là 2,73 v cho ADC 8 bit như vậy có đúng không ?

thay đổi nội dung bởi: falleaf, 27-04-2007 lúc 08:38 AM.
hatuan296 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-05-2007, 02:45 PM   #24
boys3509_2006
Đệ tử 2 túi
 
Tham gia ngày: Feb 2006
Bài gửi: 32
:
trời ạ mới có 2 tuần ko đăng nhập mà cái luồng này đã loạn xì ngầu lên cả rùi, vùa có 16F877A vừa có 16F4520, LM35DZ, lại còn sài cả BASIC nữa chứ, rối quá. giao trước là chỉ dùng LM335, 16F877A và CCS thui mừ.
boys3509_2006 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-05-2007, 09:37 PM   #25
huybo02
Đệ tử 4 túi
 
Tham gia ngày: Aug 2006
Bài gửi: 61
:
Code:
#include <16F877.h>
#device 16F877*=16 ADC=10
#include <math.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=1000000)
#define use_portd_lcd TRUE
#include<lcd.c>
long adc,nhietdo;
int8 a,b,c,d;
void tachhang(int&a,int&b,int&c,int&d);
char so[11] ="0123456789";
void main()
{
setup_adc(adc_clock_internal);
setup_adc_ports(AN0);
set_adc_channel(0);
delay_ms(100);

while(true)
{
adc=read_adc();
nhietdo = (adc-559)/0.2024;
tachhang(a,b,c,d);
lcd_init();
delay_ms(100);
lcd_putc(so[a]);
lcd_putc(so[b]);
lcd_putc(so[c]);
lcd_putc('.');
lcd_putc(so[d]);
delay_ms(900);
}
}

void tachhang(int&a,int&b,int&c,int&d)
{
   a=nhietdo/1000;
   b=(nhietdo%1000)/100;
   c=(nhietdo%100)/10;
   d=nhietdo%10;
}


/* 5V = 1024 muc =>1 muc ADC ung voi ap =4.88 => 10mV tuong ung voi 2.048 muc ADC
0oC = 273oK => 0oC ung voi muc dien the 2.73V ung voi 559 muc ADC
Nhiet do = dien the Analog/10 - 273
Tuong ung
Nhiet do = (adc -559)/2.024
Xuat gia tri nhiet do ra LED 7 doan hay LCD*/
Làm được rồi hi`. Dùng ADC 10bit Vref =5V Xuất ra LCD 4bit

thay đổi nội dung bởi: namqn, 06-05-2007 lúc 10:33 PM.
huybo02 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-05-2007, 09:14 AM   #26
boys3509_2006
Đệ tử 2 túi
 
Tham gia ngày: Feb 2006
Bài gửi: 32
:
Bạn ko dùng ngắt ngoài àh, nếu vậy thì khi truyền dữ liệu qua PC bằng RS232 nó sẽ liên tục thông báo nhiệt độ đo được. chẳng hạn khi bạn viết câu thông báo ('nhiệt độ đo được là',temp) thì nó sẽ liên tục viết ra câu thông báo trên. Ko biết có pác nào biết cách khắc phục ko ?
boys3509_2006 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-01-2009, 02:03 AM   #27
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
đề tài này sao không thấy ai tích cực viết tiếp nhỉ !
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-01-2009, 11:42 AM   #28
vuvulinh_8x
Đệ tử 1 túi
 
vuvulinh_8x's Avatar
 
Tham gia ngày: Jun 2008
Bài gửi: 19
:
Đo nhiệt độ 2 kênnh

Trích:
Nguyên văn bởi dientudong View Post
đề tài này sao không thấy ai tích cực viết tiếp nhỉ !
. Mình cũng muốn thảo luận một tý. Mình tham khảo code của bác Linh, công nhận Tutorial bác ấy viết hay, mình viết code để PIC đọc 2 kênh ADC. Vấn để ở đây là mình muốn truyền kết quả đo được lên mobile( việc truyền lên mobile khó quá) hoặc máy tính.Mình đang làm nhưng chưa được, mình post code đo 2 kênh lên trước nhé. Mong các bác cho ý kiến, để truyền kết quả cho mobile hoặc PC.
File Kèm Theo
File Type: rar nhieu kenh.rar (56.1 KB, 150 lần tải)
__________________
Tôi ơi đừng tuyệt vọng!
vuvulinh_8x vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-01-2009, 04:12 PM   #29
dientudong
Đệ tử 5 túi
 
Tham gia ngày: Oct 2008
Bài gửi: 95
:
bạn có thể cho mình biết sao cách kết nối LCD có vẻ khác so với cách kết nối mà mình hay dùng để hiển thị.
dientudong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-01-2009, 03:47 PM   #30
vuvulinh_8x
Đệ tử 1 túi
 
vuvulinh_8x's Avatar
 
Tham gia ngày: Jun 2008
Bài gửi: 19
:
Lcd

Trích:
Nguyên văn bởi dientudong View Post
bạn có thể cho mình biết sao cách kết nối LCD có vẻ khác so với cách kết nối mà mình hay dùng để hiển thị.
Không biết bác kết nối LCD như thế nào, và khác ở điểm nào? Mình tham khảo sơ đồ trên forum thôi, theo mình hiểu thì kết nối như vậy với LCD 4bit là đủ : các chân được nối đất mặc định mức logic 0 để chúng làm việc ở một chế độ thôi nếu muốn bác có thể nối vào chân vdk để thay đổi, và ở chế độ 4 bit chỉ cần nối 4 chân. Mình có một tài liệu ở bên vagam rất hay, bạn có thể tham khảo!.............( ủa up mãi không được nè! Tại server lỗi khi khác mình up nhé!
__________________
Tôi ơi đừng tuyệt vọng!
vuvulinh_8x 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à 12:40 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