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 17-10-2010, 09:25 AM   #1
hoangtuan8911
Nhập môn đệ tử
 
Tham gia ngày: Oct 2010
Bài gửi: 5
:
đo nhiệt độ dùng pic 16f877a và lm35 giao tiếp PC

em chưa biết gì vê pic cũng như cách làm mạch đo nhiệt độ này, vì vậy áo ai có thể hướng dẫn cho em không ạ? vì đồ án môn học thầy kêu làm, mà pic thì em giờ mới học, đợi học xong rồi làm thì môn này em rớt chắc, rất mong là mấy anh chị hướng dẫn cơ bản để em có thể làm được đề tài này

em nói sơ qua đề tài của em, em muốn dùng lm35 và pic đo nhiệt độ, rồi gửi kết quả đo về máy tính qua cổng COM, máy tính sử dụng VB để thiết kế giao diện và ra quyết định tắt, mở lò nhiệt, hay điều chỉnh nhiệt độ đặt cho lò nhiệt (có thể sử dụng khâu PID).

em xin lỗi vì em mới làm thành viên, tìm hoài không thấy bài em cần nên lập topic này, nếu như đã có topic này rồi thì em thành thật xin lỗi!'

thanks to all
hoangtuan8911 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-10-2010, 07:52 AM   #2
thundernhut
Đệ tử 2 túi
 
Tham gia ngày: Jul 2009
Bài gửi: 33
:
cái này cũng đơn giản này,
bạn đọc phần cấu hình bộ dao động, timer, ADC của PIC 16f887
rồi tìm hiểu cách giao tiếp cổng com.
vậy là xong , tài liệu trên mạng khá nhiều
thundernhut vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-10-2010, 02:27 PM   #3
hoangtuan8911
Nhập môn đệ tử
 
Tham gia ngày: Oct 2010
Bài gửi: 5
:
cho em hỏi tí nữa, em vẫn không biết làm cách nào để tăng giảm điện áp vào của lò nhiệt.

vì thực ra em làm 1 lò ấp trứng (một mô hình đơn giản sử dụng một bóng đèn), em muốn thay đổi điện áp qua bóng đèn để tăng giảm nhiệt độ

có ai co thể chỉ cho em với, em cảm ơn nhiều nhiều!
hoangtuan8911 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-03-2011, 11:16 AM   #4
nhauruou
Nhập môn đệ tử
 
Tham gia ngày: Nov 2010
Bài gửi: 5
:
em cũng đang rất cần đề tài này. mọi người có tài liệu nào gữi cho em với. mail của em là nhaukhongxin@gmail.com
nhauruou vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-03-2011, 01:29 AM   #5
hein_ts
Đệ tử 6 túi
 
Tham gia ngày: Feb 2011
Bài gửi: 156
:
Hjhj. Hôm nay vui vui khi trên diễn đàn mình đã được làm đệ tử một túi. Thực ra mình mới nghiên cứu pic được gần tháng nay thôi mà. Về vấn đề của bạn mình có vài góp ý như sau:
Các nguyên liệu:
Labview( nếu bạn chưa học VB thì đảm bảo học cái này nhanh và giao diện trông nó "khoa học hơn nhiều)
PicC (CCS) đương nhiên là bạn đang nghiên cứu nhé:
Đầu tiên là lập trình cho Pic:
Nên dùng ADC 10bit, sẽ chính xác hơn nhiều phải không ạ?
Pic sẽ đọc một giá trị ADC qua đó tính ra nhiệt độ để làm các thao tác tiếp theo.
Nếu dùng bộ PWM chuyên sâu thì e rằng hơi phức tạp vì môi trường truyền nhiệt là không đồng nhất. Bạn chỉ nên chạy 2 chế độ là sáng mờ và sáng nhất.
Nhiệt độ đọc được sẽ đem so sánh với giá trị máy tính gửi xuống
nếu nhỏ hơn thì làm cho bóng điện ở chế độ full
nếu nếu lớn hơn khoảng cho phép thì chạy chế độ 50% chẳng hạn.
Vấn đề là điều xung cho bóng đèn dây tóc phải không ạ?
IRF840N 10A 500V, chỉnh lưu điện lưới tín hiệu qua so quang. Máy hết pin thông cảm
hein_ts vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-04-2011, 05:35 PM   #6
kshoaiviet
Nhập môn đệ tử
 
Tham gia ngày: Mar 2011
Bài gửi: 7
:
mong cai anh chi dum bai cua em sai o diem nao,tks



#incluce <16F877A.h> //Khai báo con bit ta sử dụng và file khai báo các bít các thanh ghi quan trọng trong con bit này
#incluce <def_877a.h> //Khai báo sự định nghĩa các thanh ghi và các bít quan trọng
#divice*=16 adc=10 //Khai báo dùng poiter 16 bít và ADC 10 bít
#FUSES NOWDT, HS, NOPUT,NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT //Khai báo các config
#use delay(clock=20000000) //Khai báo sử dụng hàm delay và tần số dao động sử dụng
int8 high,low; //Khai báo các biến số nguyên 1byte(8bít)
//Khai báo mảng hằng số là số nguyên 1 byte
int8 const a[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 };
//Chương trình con tách hàng chục và hàng đơn vị thành hai số chứa trong hai biến đã khai báo trên high va low
Void convert_bcd(int8 x)
{
low=x%10;//chia lấy phần dư=hàng đơn vị
high=x/10;
high=high%10; //high=số hàng chục
}
// Chương trình con giải mã và hiển thị nhiệt độ
Void display()
{
PORTB=a[low]; // Gửi dữ liệu đến LED1
RD0=0; // Bật LED1,LED1 sẽ hiển thị đúng giá trị của low

delay_2ms(2); // Cho trễ 2ms
RD0=1 // tắt LED1
PORTB=a[high]; // LED2
RD1=0;
delay_ms(2);
RD1=1;
}
//Chương trình con thực hiện việc báo động
Void bao_dong(){
int8 i;
for(i=0;i<200;i++)
{
REO=0;delay_us(100);
REO=1;delay_us(100);
} //kêu 200 tiếng
}
// Chương trình chính
void main() {
float value;
int 16 i;

trisb = 0x00; //thiết lập các chân của PORTB là các chân Ouput
trisc = 0x00; //thiết lập các chân của PORTC là các chân Ouput
trisd = 0x00; //thiết lập các chân của PORTD là các chân Ouput
trise = 0x00; //thiết lập các chân của PORTE là các chân Ouput
trisa = 0xff; //thiết lập các chân của PORTa là các chân Input
portC = 0xff; //thiết lập các chân của PORTC xuất ra điện áp ở mức cao
portD = 0xff; //thiết lập các chân của PORTd xuất ra điện áp ở mức cao


//Thiết lập cho ADC
Setup_adc(ADC_CLOCK_INTERNAL_; //Chia ra cách thức hoạt động của ADC là thời gian lấy mẫu bằng xung clock
//Thiết lập chân lấy tín hiệu Analog là chân ANO
setup_adc_ports(AN0);
setup_adc_chanel(0)

delay_us(10); //Trễ 10us

value=(float)read_adc();
value=(value – 558.5)/2.048;
convert_bcd(int8)value0;
i=0;
//Vòng lặp vô tận
While(1)
{
i++;
value = (float)read_adc();
value = (value – 558.5)/2.048; //for 5V supply
if(i==150) { convert_bcd(int8)value);i=0;}
if(((int8)value > 40) || ((int8)value < 15)) bao_dong();
}
}
kshoaiviet vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-04-2011, 05:59 PM   #7
tanbka
Đệ tử 5 túi
 
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Nội
Bài gửi: 91
:
Ít nhất bạn cũng phải cho mọi người biết bệnh mình đang mắc phải chứ, đi kiểm tra tổng thế thế này mất thời gian lắm.
tanbka vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-07-2011, 08:48 AM   #8
windy_90
Nhập môn đệ tử
 
Tham gia ngày: Jul 2011
Bài gửi: 3
:
chào mọi người!
mình muốn nhờ các bạn một tí ?
có ai có đọan code về điều khiển lò nhiệt dùng PID bằng pic 16f877a cho mình với.
mình đang làm đề tài này mà viết mãi không chạy.
windy_90 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-07-2011, 09:18 AM   #9
windy_90
Nhập môn đệ tử
 
Tham gia ngày: Jul 2011
Bài gửi: 3
:
Pid

đây là hình mô phỏng minh cần làm.mình làm mạch điều khiển lò nhiệt dùng PID viết bằng CCS với pic 16f877a.có bạn nào có thể giúp mình viết đoạn code được không?
lm35 sẽ đưa vào chân A0.bàn phím dùng để cài đặt nhiệt độ đặt cho lò nhiệt.mình viết không được phần lấy mẫu PID để biết nhiệt độ hồi tiếp về,để cài đặt cho hệ số P,I,D.
ai có thể giúp mình không?thanks
windy_90 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-07-2011, 10:57 AM   #10
pdkxlily
Đệ tử 2 túi
 
Tham gia ngày: Mar 2011
Bài gửi: 27
:
value = (float)read_adc();
value = (value – 558.5)/2.048;
cho mình hỏi float ở đây có ý ngiã gì vậy ,có fai đọc số thập phân là cần float :-?
pdkxlily vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-07-2011, 01:55 PM   #11
danghien719
Đệ tử 3 túi
 
danghien719's Avatar
 
Tham gia ngày: Jan 2010
Bài gửi: 52
:
hì, float ở đây chả là cái gì bạn ạ.
read_adc() trả về là int8.
nhưng bạn thấy đấy value của mình là chia cho 2.048 là chia số thực ko phải nguyên vì thế value phải khai báo thì phép toán mới đúng, còn ko nó chia sẽ sai.
Vì thế câu lệnh trên cần khai báo như thế này là được rồi :

float value ;
value = read_adc();
value = (value = 558.5)/2.048
thế là đc rồi bạn ạ.
Thân !
__________________
HIENCLUBVN -Naval Academy
danghien719 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-07-2011, 01:59 PM   #12
danghien719
Đệ tử 3 túi
 
danghien719's Avatar
 
Tham gia ngày: Jan 2010
Bài gửi: 52
:
Trích:
Nguyên văn bởi windy_90 View Post
chào mọi người!
mình muốn nhờ các bạn một tí ?
có ai có đọan code về điều khiển lò nhiệt dùng PID bằng pic 16f877a cho mình với.
mình đang làm đề tài này mà viết mãi không chạy.
Hì, cái bạn quan tâm thì cũng là cái mình quan tâm.
Cũng có 1 số đồ án làm điều khiển nhiệt dùng PID nhưng mình thấy chưa hiệu quả lắm.
Mình có làm nhưng ko chơi PID đc, mình dùng TRIAC điều khiển tuyến tính chứ ko dùng PWM như nhiều người.
Nếu bạn cần mình có thể send 2 đồ án :
1. điều khiển nhiệt + PID +LM35
2. điều khiển nhiệt + TRIAC + DS18B20

Thân.
__________________
HIENCLUBVN -Naval Academy
danghien719 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-07-2011, 09:57 PM   #13
pdkxlily
Đệ tử 2 túi
 
Tham gia ngày: Mar 2011
Bài gửi: 27
:
Trích:
Nguyên văn bởi danghien719 View Post
Hì, cái bạn quan tâm thì cũng là cái mình quan tâm.
Cũng có 1 số đồ án làm điều khiển nhiệt dùng PID nhưng mình thấy chưa hiệu quả lắm.
Mình có làm nhưng ko chơi PID đc, mình dùng TRIAC điều khiển tuyến tính chứ ko dùng PWM như nhiều người.
Nếu bạn cần mình có thể send 2 đồ án :
1. điều khiển nhiệt + PID +LM35
2. điều khiển nhiệt + TRIAC + DS18B20

Thân.
send mình 2 cái đồ án đó đi bạn email : iphuoc.bi@yahoo.com.vn tiện thể cho mình hỏi cách xuất xuất ra ký tự độ C ,mình ko bik xuất cái ký tự đặc biệt đó
pdkxlily vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-07-2011, 10:03 PM   #14
windy_90
Nhập môn đệ tử
 
Tham gia ngày: Jul 2011
Bài gửi: 3
:
pid

co ai co the xem giup minh,code nay` dung hay sai hok z?
mạch của mình dùng adc 10 bit,lcd 8 bit,biến dat là gtri đặt lấy từ bàn phím,thuc la` giá trị thực lấy từ cảm biến LM35,kp=8,ki=1,kd=10.
sao mà nó hok xuất xung hok bt nữa?
có bạn nào có thể giúp mình hok?
File Kèm Theo
File Type: txt pid.txt (859 Bytes, 94 lần tải)
windy_90 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-07-2011, 09:12 PM   #15
sonluyen
Nhập môn đệ tử
 
Tham gia ngày: May 2010
Bài gửi: 9
:
cái này y hệt cái đồ án của mình =.=!
vào http://www.picvietnam.com/forum/showthread.php?t=10317 ma xem cái nền vb có thể viết theo.
code thì có thể tìm hiểu kĩ về PID.mình nghĩ như vậy là đủ để hoàn thành 1 cách ok
lưu ý là mình đua links k phải muốn maketing sản phẩm của mình.mình chỉ muốn đưa cái phông vb để bạn tham khảo
sonluyen 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à 06:19 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