View Full Version : Học lập trình vi điều khiển pic với Mikroc qua các projects
1041002
08-11-2012, 02:08 PM
Mikroc là một chương trình lập trình, biên dịch rất hây, dể sử dụng và hổ trợ nhiều thư viện bổ ích. Tuy nhiên, ở Việt Nam, Mikroc chưa được phổ biến, các projects tham khảo còn hạn chế, mình lập ra topic này nhằm chia sẽ với các bạn các projects để các bạn học và nghiên cứu.
http://www.mikroe.com/img/logo.gif
|| Tải chương trình mikroC Pro for Pic ver 6.6.1) (http://www.dientudieukhien.net/2015/10/24/trinh-bien-dich-mikroc-pro-for-pic/)
|| Tải Mikroc for 8051 (http://www.dientudieukhien.net/2014/07/mikroc-pro-for-8051.html)
|| Tải Mikroc for AVR (http://adf.ly/1053162/mikroc-pro-for-avr-60)
SÁCH HỌC MIKROC TIẾNG VIỆT
http://cdn.mikroe.com/ebooks/sites/3/2016/02/21151552/pic-microcontrollers-programming-in-c-opt1.jpg
DANH MỤC SÁCH
* GIỚI THIỆU (http://www.dientudieukhien.net/2016/03/21/gioi-thieu-sach-programming-in-c/)
* THẾ GIỚI VI ĐIỀU KHIỂN (http://www.dientudieukhien.net/2016/03/22/the-gioi-vi-dieu-khie%CC%89n/)
* LẬP TRÌNH VI ĐIỀU KHIỂN (http://www.dientudieukhien.net/category/ebook-pic-programming-in-c/)
* VI ĐIỀU KHIỂN PIC 16F887 (http://www.dientudieukhien.net/category/ebook-pic-programming-in-c/)
* CÁC VÍ DỤ (http://www.dientudieukhien.net/category/ebook-pic-programming-in-c/)
PS: Sách được dịch hoàn thiện dần.
1/ Projects đơn giản đầu tiên: Project Hiển thị Led 7 Seg và chạy 8 led đơn kết hợp dùng ngắt ngoài dùng Pic 16f877A
Nội dung project này chủ yếu để ôn lại cách viết hiển thị hai Led 7 đoạn đếm từ 00->99, viết cho 8 Led đơn chạy qua trái<->phải. Đặt biệt ở project này có dùng ngắt ngoài PORTB để chọn giữa hai mode (7SEG hay 8 led đoen chạy).
MẠCH MÔ PHỎNG BẰNG PROTEUS 5.1
Mạch khi chạy nhưng chưa chọn mode
http://vd5plq.blu.livefilestore.com/y1pqOD3uNQkmHETghXWExT7JixaDIIvznZWYpxeB_wf3ZcbgI5 GM-Jk7zzZqhCpRpWjXwo6zHfmy9YaokTf799grAJOHZZMDAi3/Mach%20ngat%207%20seg%20va%208led%20don_off.bmp
Mạch khi chon mode Led 7 SEG
http://vd5plq.blu.livefilestore.com/y1pnZsWFe5GIrpCKTq82x_2VyrXGWljNzYuIlh4JUgq8_8Xm8y BGhqe3-jtVAkfc0BcIRP0pOJvovGYH3XWdHiBOfaTAsvZ8znL/Khi%20an%20Button%20BAT%20DEN%207SEG.bmp
Khi chọn mode 8 led đơn thì 7SEG tự động tắt
http://vd5plq.blu.livefilestore.com/y1pEnttEcz8vzexkzzI79ERbJh2uAn8ReTAxelUrrSAAC8GwWJ a3NaKfAGXjwIhujnb7Mfvd7MlfvwuxCZxWILlwazgeD_dRgjw/Khi%20Button%20BATDEN%20an.bmp
|| Tải soure code MikroC và mạch mô phỏng Proteus (http://www.dientudieukhien.net/2016/03/19/7-segment-led-button-interrupt/)
1041002
09-11-2012, 01:39 PM
LCD là một module rất được ưa chuộng trong việc hiển thị thông tin, lập trình các trang màn hình rất dễ dàng, lượng thông tin truyền tải được nhiều hơn. Một trong các bài học đầu tiên trong việc lập trình vi điều khiển là làm thế nào để chúng ta có thể xuất dữ liệu cần hiển thị ra màn hình LCD. mikroC Pro for Pic (http://www.dientudieukhien.net/category/complier/mikroc-compiler/) đã hổ trợ cho chúng ta thư viện hàm để làm điều đó.
https://dl.dropboxusercontent.com/u/108528403/blog/picture%20project%20post/mo-phong-LCD-LAPTRINH-LCD.jpg
Tiếp theo là project Traffic light, có thể set thời gian cho các led qua hệ thống các nút ấn. (http://www.dientudieukhien.net/2015/11/11/traffic-light-ver-2-co-chuc-nang-dat-thoi-gian-cho-cac-den/)
|| Tải code C và file mô phỏng proteus (http://www.dientudieukhien.net/2015/11/06/lcd-lap-trinh-vi-dieu-khien-giao-tiep-voi-lcd/)
1041002
11-11-2012, 01:02 AM
Mô tả: Project sử dụng cmu 16f877a, lcd 16x2, mạch mô phỏng đếm sản phẩm. Mỗi khi có một sản phẩm đi qua cảm biến (có thể sử dụng cảm biến hồng ngoại) thì giá trị số đếm sẽ tăng thêm 1 đơn vị. Khi nhấn Reset thì bộ đếm trở về 0.
http://3.bp.blogspot.com/-VW8jNNSye9g/UJ6Fv1OqgZI/AAAAAAAAA44/3Puj7yyNIJE/s640/mophongdemsanpham.gif
Sau đây là hình ảnh mô phỏng bằng protues:
https://dl.dropboxusercontent.com/u/108528403/blog/picture%20project%20post/dem%20san%20pham%2016f877a.jpg
|| Tải code C và file mô phỏng bằng proteus (http://www.dientudieukhien.net/2015/11/13/dem-san-pham/)
letuanvu_91
12-11-2012, 10:26 PM
Thank anh rat nhieu, tai lieu nay o Viet Nam h dung la hiem that
1041002
13-11-2012, 11:21 PM
Sau đây là hình ảnh của project:
http://www.dientudieukhien.net/wp-content/uploads/dieu-khien-tat-mo-thiet-bi-16f84a.jpg
Các bạn nhìn vào ảnh sẽ thấy sơ đồ gồm các khối: CMU: 16f84, nút bấm chọn mode (Reset, Enter, Timeup), hiển thị 7seg, đóng mở rờle.
Các bạn ấn Timeup để tăng một đơn vị thời gian (ở đây là phút), xong các bạn nhấn Enter hệ thống sẽ hoạt động, khi thời gian xuống tới 0--> rờ le đóng. Việc đóng hây mở rờ le khi đến mức thời gian ta set là do ta qui định khi viết phần mềm.
|| Các bạn tải toàn bộ project
tại đây (code mikroC Pro for Pic và file proteus) (http://www.dientudieukhien.net/category/tutorials/tutorials-pic/led-7-segment/)
1041002
15-11-2012, 02:21 PM
Mô tả: khi nhấn button increase thì giá trị tăng một đơn vị, khi nhấn button decrease thì giá trị giảm một đơn vị, kết quả hiển thị lên 2 led 7segment. Khi giảm đến 0 thì dù có nhấn button decrease thì vẫn không giảm nữa. Ngôn ngữ lập trình mikroc pro, có file mô phỏng isis.
http://3.bp.blogspot.com/-z4yX8T6OELQ/UKOyS93IuaI/AAAAAAAAA8U/veR-rKXsQjI/s640/BUTTON+VA+7SEG.jpg
|| Link tải code và file mô phỏng protues (http://www.dientudieukhien.net/2015/11/11/traffic-light-ver-2-co-chuc-nang-dat-thoi-gian-cho-cac-den/)
toancscdt
24-11-2012, 05:19 PM
mình gặp lỗi này lúc dùng không biết là lỗi gì? 1041002 có thể giúp mình cái
http://ns5.upanh.com/b6.s11.d1/117ce46b17dda3757446957f4c9bef2d_51164985.capture. png (http://www.upanh.com/capture_upanh/v/9vmc5o6r9am.htm)
1041002
27-11-2012, 02:14 PM
Mình chưa gặp lỗi này lần nào, mình chạy mikroc pro trên winxp. Bạn sử dụng win vista hả gì? bạn xem bản này có hổ trợ không, lỗi này là lỗi phần mềm, chú không phải lỗi biên dịch!
1041002
27-11-2012, 02:16 PM
CMU: 16f877A
Ngôn ngữ: Mikroc pro
Mô phỏng: ISIS
Đã test trên thực tế:
http://4.bp.blogspot.com/-GZ6iDCH5TSg/ULRTV7Ka9kI/AAAAAAAAA9E/VHq8UBVcFC4/s640/lm35+7seg+comma.jpg
Có video hôm nào post
|| Tải code isis tại đây (http://www.dientudieukhien.net/2015/10/29/lap-trinh-pic16f877a-lm35-hien-thi-len-led-7-doan-co-dau-thap-phan/)
1041002
27-11-2012, 02:19 PM
Cái folder program của bạn có "(x86)" có thể xảy ra lỗi, bạn thử cài ở ngoài folder đó xem sao! Chúc bạn thành công!
luffy_1102
10-03-2013, 07:30 PM
Link phần mềm bi die rồi bạn
trnghia1004
20-04-2013, 04:50 PM
bạn ơi cho mình hỏi bị bị lỗi này mà không biết sữa sao:
char *text = "Wellcome";
char *text1 = "Bonjour";
int i,j;
void main()
{
TRISB = 0;
Lcd_Init(&PORTB);
Lcd_Cmd(LCD_CURSOR_OFF);
Lcd_Cmd(LCD_CLEAR);
Lcd_Out(1,1,text);
Delay_ms(3000);
Lcd_Out(2,2,text1);
Delay_ms(3000);
Lcd_Cmd(Lcd_CLEAR);
Lcd_Cmd(LCD_CURSOR_OFF);
Delay_ms(2000);
Lcd_Cmd(LCD_SHIFT_RIGHT);
Delay_ms(1000);
Lcd_Cmd(LCD_SHIFT_LEFT);
}
Nó báo lỗi : routine LCD_Out is not defined.
vdk_pic
25-05-2013, 01:33 PM
vào đây lấy ví dụ về tham khảo http://www.mikroe.com/ ,từng modun có giải thích rất rõ ràng
nhu.ta532
02-06-2013, 11:12 PM
vào đây lấy ví dụ về tham khảo http://www.mikroe.com/ ,từng modun có giải thích rất rõ ràng
sao không thấy ví dụ nào nhỉ ?
phamhoangphuong
11-12-2013, 03:33 PM
Linh kiện: LCD 16x2, cmu: 16f877a, ngôn ngữ: mikroc pro
Một số hình ảnh:
http://1.bp.blogspot.com/-9-sti2D49KU/UJyUdVGhDzI/AAAAAAAAA30/Ztb91e5wc2g/s640/lcd+pic1.jpg
http://1.bp.blogspot.com/-g9EwKl90dvE/UJyUfV3cIGI/AAAAAAAAA38/IBktrIl7S0M/s640/lcd+pic2.jpg
|| Tải code và ISIS: http://adf.ly/1053162/lcd-with-16f877a
Share thi up len cho dang hoang. khong thi thoi
1041002
02-03-2014, 02:15 PM
sao không thấy ví dụ nào nhỉ ?
Bạn xem ví dụ tại đây nè: http://www.mikroe.com/chapters/view/17/chapter-4-examples/
Hoặc bạn có thể tham khảo nhiều ví dụ về lập trình Pic bằng ngôn ngữ mikroc tại blog của mình: http://dientudieukhien.net
1041002
02-03-2014, 02:20 PM
Link phần mềm bi die rồi bạn
Link còn tốt mà bạn: http://www.dientudieukhien.net/2015/10/24/trinh-bien-dich-mikroc-pro-for-pic/
1041002
02-03-2014, 02:24 PM
Bạn nè, link tải vẫn ok, có lẽ bạn không biết tải tài liệu cho link rút gọn dạng adf.ly rồi. Bạn tìm hiểu cách tải trên google nha, vì hiện nay link tải dạng này nhiều lắm! thanks.
1041002
07-03-2014, 11:24 PM
Hình ảnh của project:
|| Tải project tại đây (ISIS+code): http://dientublog.blogspot.com/2014/02/example-4-pic-16f887-tmr0-overflow.html
1041002
23-03-2014, 08:47 AM
* Ở ví dụ này, các bạn sẽ biết cách ghi giá trị từ PORTB vào địa chỉ EEPROM và xuất giá trị đó ra PORTD.
Cmu: 16f887
Video: xem theo link dưới
https://www.youtube.com/watch?v=1LjFmcgdXuU
|| Tải project tại đây :http://dientublog.blogspot.com/2014/03/using-eeprom-memory-pic-16f887.html
1041002
01-04-2014, 03:25 PM
* Project: dùng vi điều khiển pic16f887 lấy tín hiệu từ cảm biến nhiệt ds1820, xử lí, xuất kết quả ra màng hình LCD.
* Ảnh của project:
http://2.bp.blogspot.com/-UMDXp6hjRMQ/UzSlzHJCnRI/AAAAAAAABmk/2RoF1W-4aZA/s1600/ds18s20+with+pic16f887_mikroc.jpg
* Video:
(Không biết cách chèn video)
|| Tải project link sau (ISIS + Mikroc source):
http://dientublog.blogspot.com/2014/03/pic-16f887-base-ds1820-digital.html
danhtq
01-04-2014, 05:18 PM
Em đang làm một mạch điều khiển tốc độ động cơ dùng pic16f887
nhưng em không biết ngắt ngoài để đếm xung và tính vận tốc như thế nào. mong anh chỉ giáo em với. (em dùng mikroC.)
cảm ơn anh nhiều !!!
1041002
04-07-2014, 12:29 AM
Em đang làm một mạch điều khiển tốc độ động cơ dùng pic16f887
nhưng em không biết ngắt ngoài để đếm xung và tính vận tốc như thế nào. mong anh chỉ giáo em với. (em dùng mikroC.)
cảm ơn anh nhiều !!!
Bạn tham khảo project đếm xung để phát triển nhé:
http://www.dientudieukhien.net/wp-content/uploads/countting-pulses-768x427.jpg
Xem tại đây (http://www.dientudieukhien.net/2016/01/19/dem-xung/)
1041002
04-07-2014, 12:45 AM
Sau đây là một project điều khiển tốc độ motor dc bằng cách điều chế độ rộng xung.
CMU: pic 16f877a
Ngôn ngữ lập trình: mikroc Pro for Pic ver 6.4
Một số hình ảnh của project:
Sơ đồ nguyên lý: Xem trong ảnh
Mô phỏng bằng Protues: xem trong ảnh
|| Tải toàn bộ project và mô phỏng theo link sau:
http://dientublog.blogspot.com/2014/07/ieu-khien-toc-o-motor-dc-bang-ieu-che.html
1041002
28-10-2014, 09:54 AM
Chào các bạn, trong các bài trước mình chia sẽ các project cho vi điều khiển pic. Hôm nay, mình chia sẽ cùng các bạn project cho 8051, ở đây cũng lập trình bằng ngôn ngữ Mikroc, trình biên dịch Mikroc for 8051.
Sơ đồ nguyên lý của project như sau:
http://2.bp.blogspot.com/-CCAWDAX6s4o/U_0tfNb-0XI/AAAAAAAACFw/L6DP_GPUqKg/s1600/sch%5B1%5D.jpg
Ở đây mình không giải thích nhiều, do sơ đồ nguyên lý rất đơn giản, trong code đã có các phần giải thích cho các dòng lệnh.
CODE CHƯƠNG TRÌNH:
/*Share by dientudieukhien.net
MikroC Pro for Pic*/
// Lcd module connections
sbit LCD_RS at P2_0_bit;
sbit LCD_EN at P2_1_bit;
sbit LCD_D4 at P2_2_bit;
sbit LCD_D5 at P2_3_bit;
sbit LCD_D6 at P2_4_bit;
sbit LCD_D7 at P2_5_bit;
// End Lcd module connections
char txt1[] = "Embedded";
char txt2[] = "Projects";
char txt3[] = "Lcd 4 bit";
char txt4[] = "Tutorial";
char i; // Loop variable
void Move_Delay() { // Function used for text moving
Delay_ms(500); // You can change the moving speed here
}
void main(){
Lcd_Init(); // Initialize Lcd
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1,6,txt3); // Write text in first row
Lcd_Out(2,6,txt4); // Write text in second row
Delay_ms(2000);
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Out(1,1,txt1); // Write text in first row
Lcd_Out(2,5,txt2); // Write text in second row
Delay_ms(2000);
// Moving text
for(i=0; i<4; i++) { // Move text to the right 4 times
Lcd_Cmd(_LCD_SHIFT_RIGHT);
Move_Delay();
}
while(1) { // Endless loop
for(i=0; i<8; i++) { // Move text to the left 7 times
Lcd_Cmd(_LCD_SHIFT_LEFT);
Move_Delay();
}
for(i=0; i<8; i++) { // Move text to the right 7 times
Lcd_Cmd(_LCD_SHIFT_RIGHT);
Move_Delay();
}
}
}
|| Xem nguồn bài viết gốc tại: http://www.dientudieukhien.net/2014/08/lap-trinh-hien-thi-lcd-4bit-tren-vi-dieu-khien-8051.html
1041002
02-11-2014, 07:19 PM
Lập Trình Menu Và Menu Con Trên Màn Hình LCD 16x2 Để Bật / Tắt Thiết Bị.
Hôm nay, mình chia sẽ với các bạn một project mới mang tên như tiêu đề. Ở project này mình sẽ lập trình hiển thị 4 Menu trên trang màng hình đầu tiên của LCD, khi chọn một menu thì một Submenu xuất hiện , ở đây sẽ điều khiển các tác vụ khác - ở đây mình dùng điều khiển on/off các thiết bị, sau đây là tổng quang project.
Hình ảnh:
http://2.bp.blogspot.com/-Wa_7ANFsKx0/VFX3YpSzeEI/AAAAAAAACww/FigAnLdJKD8/s1600/Lcd-menu-on-off-device1.jpg
Giao diện trang màng hình đầu của project lcd menu for on/off device
http://3.bp.blogspot.com/-qUvyA-Huwwg/VFX3Y9vZioI/AAAAAAAACws/gfg2bddFxm8/s1600/Lcd-menu-on-off-device2.jpg
Menu 3 được mở và điều khiển on/off led 2
Video: Tại đây (https://www.youtube.com/watch?feature=player_embedded&v=D-vcdBeNHc8)
||Tải code C và file mô phỏng bằng protues (http://www.dientudieukhien.net/2015/11/07/dieu-khien-thiet-bi-qua-giao-dien-menu-con-tren-lcd/)
trungsonkmt
07-11-2014, 09:56 AM
|| Tải chương trình mikroc for pic có crack theo link sau(các chương trình không crack chỉ biên dịch đươc 2kb trở lại):
http://adf.ly/1053162/mikroc-co-crack
Bạn ơi, link download die mất dzồi, bạn update lại zùm... thank you :)
1041002
15-12-2014, 06:25 PM
Bạn ơi, link download die mất dzồi, bạn update lại zùm... thank you :)
Bạn có thể lựa chọn bản MikrocPro for Pic 6.0: http://www.dientudieukhien.net/2014/11/mikrocpro-for-pic-ver-6.html
Hoặc bản MikrocPro for Pic 6.4:
http://www.dientudieukhien.net/2014/07/mikroc-pro-for-pic-ver-64.html
Hoặc bạn có thể theo dõi các bản mới tại: http://www.dientudieukhien.net
1041002
15-12-2014, 06:44 PM
Sử Dụng INT External Interrupt Để Phát Hiện Cạnh Lên Ở PORTB.F0, Từ Đó Thực Hiện Chương Trình Ngắt.
Trong ví dụ ở project này ta sử dụng INT External interrupt để phát hiện sự thay đổi trạng thái ở portb.f0 (cạnh lên) từ đó thực hiện chương trình ngắt (chương trình ngắt thực hiện đảo trạng thái portc), sau đây là sơ đồ của project:
http://2.bp.blogspot.com/-t7vI53TMKoM/VHNMfJlBLcI/AAAAAAAAC3I/saQ85D7hfK4/s1600/INT%2BExternal%2Binterrupt.jpg
INT External interrupt
Code như sau:
/*Using an external interrupt to detect the status of RB0 to control leds in portC
Cmu: Pic 16f877A
Author: Minh Trung
Site: http:dientudieukhien.net
*/
void interrupt(){
PORTC =~ PORTC;
delay_ms(1000);
INTF_bit = 0; //Clear External interrupt flag
}
void main() {
TRISC=0x00; //PortC at output.
GIE_bit = 1; //Enable Global interrupt
INTEDG_bit = 1; //Interrupt on rising edge of INT pin
INTE_bit = 1; // Enable External interrupt
INTF_bit = 0; //Clear External interrupt flag
while(1){
PORTC=0x00; // clear portc
}
}
Xem thêm PORTB interrupt trên vi điều khiển 16f887 (http://www.dientudieukhien.net/2016/01/11/portb-interrupt-tren-vi-dieu-khien-pic-16f887-va-16f877a/)
Xem thêm project đếm xung, liên quan đến ngắt portb external (http://www.dientudieukhien.net/2016/01/19/dem-xung/)
1041002
16-12-2014, 07:55 AM
Sau đây mình chia sẽ với các bạn project điều khiển đếm số nhị phân với pic 16f877a. Ở đây số nhị phân 8 bit, giá trị ban đầu được nạp vào là: 0b00000001
sau 100ms sẽ tăng lên 1 đơn vị, 0b00000010
cứ như thế 0b00000100
cho đến ....................
cuối cùng là 255 0b11111111
Các giá trị của số đếm 8bit được hiển thị trên portc của vi điều khiển pic 16f877a, sau đây là sơ đồ nguyên lý:
http://3.bp.blogspot.com/-sz69Z7ARLF8/VI7wd3iM0oI/AAAAAAAAC-c/AdlSqXojR6s/s1600/binary%2Bcount.jpg
|| Tải project tại đây (http://www.dientudieukhien.net/2014/12/binary-count-with-pic-16f877a.html)
hatbui
19-12-2014, 01:42 PM
Xin tư vấn về giải thuật chương trình mình muốn viết như sau:
Chương trình có 2 nút nhấn là enter và luachon.
Khi chạy chương trình sẽ in lên lcd hai nhãn A và B và mũi tên ">" mặc định luôn ở nhãn B.
Lúc này nếu:
- nhấn enter chương trình sẽ làm công việc B.
- nhấn luachon thì mũi tên sẽ chuyển đến trước vị trí A, tiếp đến nhấn enter thìchương trình sẽ thực hiện công việc A.
- (nếu mũi tên đang ở trước A và nút luachon đc nhấn thì mũi tên sẽ trở về vị trí B như ban đầu)
E đang mắc ở chỗ sử lý cái mặc định và nút bấm kia.
Bác nào biết xin chỉ giùm. Chân thành cảm ơn.
1041002
17-02-2015, 02:32 PM
Các yêu cầu của bạn đã có project ở trên, bạn chịu khó đọc nha, đọc cũng dễ hiểu thôi, khi đã hiểu project đó bạn có thể tùy biến nhiều thứ!
1041002
17-02-2015, 02:47 PM
Mình có biên soạn một ebook làm quen với chương trình biên dịch MikroC Pro for Pic, bạn cóthể tải về xem, có các ví dụ đơn giản cho bạn thực hành.
https://dl.dropboxusercontent.com/u/108528403/blog/DOWNLOAD-EBOOK-MIKROC.jpg (http://www.dientudieukhien.net/2015/01/sach-lam-quen-mikroc-pro-for-pic-va-lap-trinh-vi-dieu-khien.html)
Mục lục
CHƯƠNG I: Giới thiệu về MikroC............................................ ............................... 3
CHƯƠNG II: Làm quen với MikroC............................................ ............................ 5
I- Tải và cài đặt chương trình............................................ ....................... 5
II- Các thành phần trên giao diện và chức năng....................................... 6
III- Tạo một Project như thế nào?............................................. ............. 14
IV- Các phần cơ bản của một project........................................... ......... 17
CHƯƠNG III: Thực hành qua các ví dụ đơn giản............................................ ....... 18
I- Ví dụ 1: điều khiển portc của vi điều khiển pic 16f877A: ................. 18
II- Ví dụ 2: Dịch chuyển một bit qua trái <–> phải............................... 19
III- Ví dụ 3: Lập trình ngắt INT Interrupt......................................... ..... 21
IV- Ví dụ 4: Cảm biến nhiệt LM35, 7 segments, pic 16f887...... 23
V- Ví dụ 5: Điều khiển thiết bị quạt và lò sưởi, giao diện GLCD, pic 16f887.... 26
VI- Xem thêm nhiều project........................................... ................ 32
TÀI LIỆU THAM KHẢO............................................ ..................................... 33
Bạn tải ebook tự học mikroC compiler Tại đây (http://www.dientudieukhien.net/2015/10/25/ebook-nhap-mon-lap-trinh-vi-dieu-khien-voi-mikroc-pro-for-pic/)
1041002
23-05-2015, 05:50 AM
Ánh sáng mặt trời là một nguồn năng lượng sạch quí giá và vô tận. Hiện nay, con người đã phát minh ra các thiết bị để biến đổi năng lượng ấy thành điện năng để chúng ta có thể sử dụng trong sinh hoạt.
http://1.bp.blogspot.com/-ISuqmSIMMAg/VVWmf49-r4I/AAAAAAAADg8/9q0Eo256qhE/s1600/pin-nang-luong-mat-troi-sharp-80w%5B1%5D.jpg
Sau đây là một project mang tên solar powered home lighting system, giúp bạn xây dựng một hệ thống ánh sáng gồm: tấm pin năng lượng mặt trời, bình ác qui tích trữ điện, màng hình lcd hiển thị thông tin - xây dựng trên vi điều khiển pic 16f887a. Bạn quan sát sơ đồ nguyên lý sau đây:
http://1.bp.blogspot.com/-TkYdisAkSdw/VVWpNHD55OI/AAAAAAAADhI/IlsobibfEXs/s640/F6F_Fig_1%5B1%5D.jpg
Chú thích các linh kiện và chức năng của chúng:
BaTT1, BaTT2: 2 bình ắc qui loại 12v, 150 Ahm, hoặc 80 Ahm
CON1: nơi kết nối tấm pin năng lượng mặt trời (ở đây sử dụng 2 tấm pin 80W)
CON2: kết nối bình ắc qui để nạp cho Batt1, Batt2, khi tấm pin năng lượng không hoạt động
CON3: kết nối tải để sử dụng
Relay RL1, RL2: relay điều khiển nạp điện cho Batt1, Batt2 (thông qua sự điều khiển từ vi điều khiển 16f877a)
Relay RL3: nếu hệ thống solar bị hư vi điều khiển sẽ điều khiển RL3 để Batt1, Batt2 được nạp điện từ ắc qui dự phòng.
Relay RL4, RL5: vi điều khiển sẽ chọn Batt1 hoặc Batt2 sử dụng cho tải thông qua 2 Relay này.
LCD1 16x2: Hiển thị thông tin của hệ thống như đang sử dụng Batt nào cho tải, Batt nào đang được sạc, mức năng lượng từng Batt và Solar
Chú ý trước khi sử dụng: bạn kết nối nguồn 20v vào CON1 và chỉnh VR2 sao cho trên Pin 2 của IC1 là 5v. kết nối 15v vào CON4 và CON5 chỉnh VR3,VR4 sao cho trên Pin 3,5 của IC1 là 5v, sau đó bạn gở bỏ các điện thế này ra kết nối Solar, Batt1, Batt2, ac quy sạc dự phòng vào, vậy là hệ thống sẵn sàng hoạt động.
|| Download code (http://www.dientudieukhien.net/2015/05/he-thong-chieu-sang-bang-pin-nang-luong-mat-troi-solar-panel.html)(direct link)
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.