Xem mẫu

  1. TRƯỜNG CAO ĐẲNG NGHỀ ĐỒNG THÁP KHOA ĐIỆN – ĐIỆN TỬ GIÁO TRÌNH MÔN HỌC: LẬP TRÌNH VI ĐIỀU KHIỂN NÂNG CAO NGÀNH, NGHỀ: CN T ĐI N, ĐI N T TRÌNH ĐỘ: CAO ĐẲNG/TRUNG CẤP (Ban hành kèm theo Quyết định Số: /QĐ-CĐNĐT ngày… tháng…năm 2018 của Hiệu trưởng Trường Cao đẳng nghề Đồng Tháp)
  2. LỜI NÓI ĐẦU ờ n ut nt xn lờ o n n sn sn v n n n t u o Đ n–Đ nt C n n n n Ar u no ?V y Ar u no l ? Ar u no t t r l m t o m v x lý ợ ùn ể l p tr n t ơn t vớ t t ị p n ứn n m n, n ơ, èn oặ t t ịk Đặ ểm nổ t ủ Ar u no l mô tr ờn p t tr ển ứn ụn ự kỳ ễ s ụn , vớ m t n ôn n ữ l p tr n t ể m t n n n n y vớ n ờ ít m ểu về n t v l p tr n V ều l m n n n t ợn Ar u no ín l mứ rất t ấp v tín ất n uồn mở từ p n ứn tớ p n mềm Sự r ờ ủ m Ar u no t ú ẩy sự y u t í , t m tò n n ứu, ứn ụn tự n a , ro ot v o ờ sốn v ôn n p Vớ n ữn u ểm r n ủ m n , Ar u no ã n n n nổ t n to n t ớ v ợ ớ s n , s n v n, ớ n n ứu, n ữn n ờ y u t í kỹ t u t, n ữn n ờ t í l m ồ tự s ụn r n rã T V t N m, số l ợn n ờ s ụn m Ar u no n y n tăn Để úp n t m ểu Ar u no, t l u n y ã ợ n so n T l u ồm 3 p n, ợ n so n từ ơn n n p ứ t p T l u ợ v tm t n ắn n, ễ ểu, v o n ữn vấn ề ốt lõ tron v s ụn Ar u no o u sốn ặ ù ã ố ắn tron qu tr n n so n t l u, n n ắ ắn tài l u k ôn t ể tr n k ỏ s s t tron qu tr n n so n Rất mon n n ợ sự p ý ân t n ủ n ểt t ể o n t n ơn nữ t l u này. 2
  3. Mục lục LỜI NÓI ĐẦU ..................................................................................................... 1 T NG QUAN .................................................................................................. 1 11 n m ........................................................................................................ 1 1 2 Cấu trú v ứ năn k ố ...................................................................... 1 1 3 Cấu trú ủ m t k t r u no ........................................................................... 4 1.4 Arduino IDE .................................................................................................... 8 15C ặt IDE.................................................................................................... 10 16C ặt driver arduino uno r3 ........................................................................ 11 NGÔN NGỮ LẬP TRÌNH ........................................................................... 14 2 1 Cấu trú n ôn n ữ l p tr n .......................................................................... 14 22V or ữ l u ................................................................................................ 20 2 2 1 xuất ữ l u r m t p n ............................................................................... 20 23C n ắt......................................................................................................... 23 2.4 ADC .............................................................................................................. 28 2 5 G o t p I2C, UART, SPI ............................................................................ 30 3 LẬP TRÌNH GIAO TI P AR UINO VỚI C C LINH KIỆN, C M I N, OAR .................................................................................................. 46 T N ÀI: G o p d l no on d no ......................................... 47 T N ÀI: G o p An lo o p PWM on d no.......................... 56 I
  4. T N ÀI: G o p n lo np n A d no Uno .................................... 62 T N ÀI: G o p Uart, I2C. ........................................................................ 68 T N ÀI: N on A d no I. MỤC TIÊU CỦA BÀI:........................... 73 T N ÀI: Th k hệ hốn đ ề kh ển vớ d no .................................... 76 II
  5. 1. T NG QUAN 1.1 Khái niệm V đ ề kh ển l m t máy tính ợ tí ợp tr n m t chíp, n t ờn ợ s ụn ể ều k ển thi t bị nt V ều k ển, t ự ất, l m t t ốn o ồm m t vi x lý u suất ủ ùn v t n t ấp (k vớ v x lý năn ùn tron m y tín ) k t ợp vớ k ố n o v n b nhớ, các mô un v o/r , mô un n ổ số s n t ơn tự v t ơn tự s n số, Ở m y tín t mô un t ờn ợ xây ựn ở íp v m n o V ều k ển t ờn ợ ùn ể xây ựn h thống nhúng N xuất nk n ều tron dụng cụ nt ,t t ị n, máy giặt, lò vi sóng, n tho i, u c DVD, thi t bị a p ơn t n, dây chuyền tự ng, v.v. 1.2 Cấu trúc và chức năn các khối 1.2.1 Cấu trúc H n 3 1: ấu trú ủ v ều k ển AVG 1
  6. 1.2.2 chức năng các khối 1.2.2.1 Bộ nhớ B n ớ ủ v ều k ển AVR ợ tổ ứ n s u: B n ớ ơn tr n (Pro r m m mory) : n ớ Fl s l p tr n v x ợ B n ớ ơn tr n ồm 2 p n: v tor n ắt( nt rrupts v tors) v mã l n ơn tr n ( nstru t on) C nt rrupts v tors nằm ở p n u ủ n ớ ơn tr n v tùy v o từn lo p T p s u nt rrupts v tors l nstru t on, ây l mã l n ể pt ự t , ơn tr n v t o p sẽ lo v op nn y B n ớ ữ l u (D t m mory): Đây l n ớ qu n tr n n ất ủ p, k l p tr n ủ y u truy p n ớ n y D t m mory ồm 5 p n: C t n ứ năn (R st r f l ): tất p AVR ều 32 t n (từ 0x00 -> 0x1F) v ều l t n 8 t C R st r f l ợ ặt t n t o t ứ tự R0-R31 C t n n y ùn ể truy p trự t p nstru t on, ùn ểt ự n p ép to n, C t n xuất n p (I/O R st r): I/O R st r ồm 60 t n ,l n õ ot pv ều k ển vớ t t ị n o v , tất t n tr n t , ều k ển, ủ t t ịn o v ều nằm ở ây Ví ụ n t n DDRB,DDRC,DDRD ùn ểk o tr n t I/O o Port B,C,D. R m tĩn (Int rn l SRA ): l k ôn n ứ n tron qu tr n t ự t ơn tr n R mn o (Ext rn l SRA ): p AVR t ể ắn t m n ớn o ểs ụn t m n, v p n n ớn y ỉ tồn t k ps ụn t m nhớ n o 2
  7. EEPRO (El tr lly Er s l Pro r mm l RO ) : l n ớk qu n tr n ủ v ều k ển AVR, n ớ n y l RO n n k ôn ịx k mất nn n ợ ùn ể l u trữ ữ l u B n ớ EEPRO ợ t r n vớ 4 p n tr n v ị ỉ ắt u 0x00. 1.2.2.2 ALU Theo Hình 3.1 ểu ễn ấu tron n tron ủ 1 AVR B n t ấy rằn 32 t n tron R st r F l ợ k t nố trự t p vớ Ar t m t o Un t -ALU (ALU ũn ợ x m l CPU ủ AVR) ằn 2 l n , v t A U t ể truy xuất trự t p ùn lú 2 t n RF ỉ tron 1 u kỳ xun lo k (vùn ợ k o n tròn m u ỏ trong hình 4). C nstru t on ợ ứ tron n ớ ơn tr n Fl s m mory ớ n t n 16 t B n ớ ơn tr n ợ truy p tron mỗ u kỳ xung clock và 1 nstru t on ứ tron pro r m m mory sẽ ợ lo v o tron nstru t on r st r, nstru t on r st r t n v lự nr st r f l ũn n RA oA U t ự t Tron lú t ự t ơn tr n , ị ỉ ủ òn l n n t ự t ợ quy t ịn ở m t m ơn tr n – PC (Pro r m ount r) Đ ín l t ứ o t n ủ AVR AVR u ểm l u t nstru t on ều ợ t ự t tron 1 u kỳ xun lo k, v v y t ể n uồn lo k lớn n ất o AVR t ể n ỏ ơn 1 số v ều k ển k n PIC n n t ờ nt ự t vẫn n n ơn 1.2.2.3 I/O x m xét n ổn I/O ủ AVR t t p xét tớ 3 t n t DDxn,PORTxn,PINxn. C t DDxn ể truy p o ị ỉ xuất n p DDRx B t DDxn tron t n hi DDRx ùn ể ều k ển ớn ữl u ủ ân ủ ổn n y trị lo 3
  8. „0‟ v o ất k tn o ủ t n n yt n sẽ trở t n lố v o, òn „1‟ v o t t n trở t n lố r C t PORTxn ể truy pt ị ỉ xuất n p PORTx PORTx ợ trị 1 k ân ấu t o n ổn r t n trở kéo l ủ n ( ợ nố vớ ổn ) N ắt n trở kéo r , PORTx ợ trị 0 oặ ân n n ổn r C ân ủ ổn l 3 tr n t k 1 ều k n r s t l tí ự t m í xun ồn ồ k ôn o t n C t PINxn ể truy pt ị ỉ xuất n p PINx PINx l ổn ỉ ể , ổn n y t ể tr n t lo ủ PORTx PINx k ôn p l t n ,v PINx o p ép t trị lo tr n ân ủ PORTx ú ý PINx k ôn p l t n ,v PINx o p ép t trị lo tr n ân ủ PORTx. 1.2.2.4 Các khối khác ADC: C o p ép uyển ổ tín u từ t ơn tự s n tín u số SPI, I2C, Us rt: l k ố ợ xây n o p ép o t p vớ m y tín , mo ul uy n ụn , … t ôn qu ot ự uẩn Us rt, I2C, SPI PW : o p ép t o r xun o t n số 50Hz n n rôn xun t ểt y ổ 1.3 Cấu trúc của một kit arduino P nn yn về p n ứn ủ Ar u no Uno R3, m t o m t ôn ụn n n y Do ây l t l u ớn ẫn n n n nt ỉ r n ữn k n t ứ ơ n nt t ov s ụn o r m n y N un ờ n n ữn k n t ứ uy n sâu ơn t t ểt mk ot w st ín t ứ ủ Ar u no: r u no 4
  9. H n 3 2 Cấu t o ủ r u no uno r3 1. Cáp USB Đây l ây pt ờn ợ n kèm t o o, ây p ùn ể ắm v o m y tín ển p ơn tr n o ov ây ồn t ờ ũn lấy n uồn từ n uồn us ủ m y tín ể o o o t n N o r p USB òn ợ ùn ể truyền ữ l u từ o Ar u no l n m y tín Dây p 2 u, u1 ợ ùn ể ắm v o ổn USB tr n o Ar u no, u1 ùn ể ắm v o ổn USB tr n m y tín 2. IC Atmega 16U2 IC n y ợ l p tr n n m t uyển ổ USB –to-Serial ùn ể o t p vớ m y tín t ôn qu o t ứ S r l ( ùn ổn CO ) 3 Cổn n ồn n oà Cổn n uồn n o n ằm s ụn n uồn n nn o n p n, n quy y pt r o o Ar u no o t n N uồn n ấp v o ổn n y l n uồn DC u nt từ 6V n 20V, tuy n n u nt tốt n ất m n s n xuất k uy n ùn l từ 7 n 12V 4 Cổn US Cổn USB tr n o Ar u no ùn ể k t nố vớ p USB 5
  10. 5. Nút reset Nút r s t ợ s ụn ểr s tl ơn tr n n y Đô k ơn tr n y ặp lỗ , n ờ ùn t ểr s tl ơn tr n 6 ICSP củ ATme 6U ICSP l ữ v t tắt ủ In-Circuit Serial Pro r mm n Đây l ân o t p SPI ủ p Atm 16U2 C ân n y t ờn ít ợ s tron ự n về Ar u no 7 Chân x ấ ín h ệ C tất 14 ân xuất tín u r tron Ar u no Uno, n ữn ân ấu ~ l n ữn ân t ể ăm xun (PW ), tứ t ể ều k ển tố n ơ oặ s n ủ èn H n 2 t ể n rất rõ n ữn ân ể ăm xung này. 8. IC ATmega 328 IC Atm 328 l l n ồn ủ om Ar u no Uno, IC n y ợ s ụn tron v t u t p ữ l u từ m n, x lý ữ l u, xuất tín u r ,… 9 Chân ICSP củ ATme 3 8C ân ICSP ủ ATm 328 ợ s ụn o o t p SPI (S r l P r p r l Int rf ), m t số ứn ụn ủ Ar u no s ụn ân n y, ví ụ n s ụn mo ul RFID RC522 vớ Ar u no y Et rn t S l vớ Ar u no 0 Chân lấy ín h ệ An lo C ân n y lấy tín u An lo (tín u t ơn tự) từ m n ể IC Atm 328 x lý C tất 6 ân lấy tín u An lo , từ A0 n A5. Chân cấp n ồn cho cảm b n C ân n y ùn ể ấp n uồn o t t ị nn o n rol , m n, RC s rvo,…tr n k u vự n y sẵn ân GND ( ân nố ất, ân âm), ân 5V, ân 3 3V n ợ t ể nở n 2 N ờ n ữn ân n y m n ờ s ụn k ôn nt t ị n ổ nk ấp n uồn o m n, rol , r s rvo,…N o r tr n k u vự n y òn có chân Vin và chân reset, chân IOREF Tuy n n ân n y t ờn ít ợ s ụn n n tron t l u n y x n k ôn sâu về n 6
  11. Các l nh k ện khác n bo d A d no Uno N o ln k n ãl tk n tr n, Ar u no Uno òn 1 số l n k n n úýk Tr n o tất 4 èn l , o ồm 1 l n uồn (l ON n ằm o t o ã ợ ấp n uồn), 2 l Tx v Rx, 1 l C l Tx v Rx sẽ n ấp n y k ữ l u truyền từ o r l n m y tín oặ n ợ l t ôn qu ổn USB ợ ợ k t nố vớ ân số 13 n y ợ l l on o r (tứ l tr n o), l n y úp n ờ ùn t ểt ự n ơn n m k ôn n ùn t m l n o Hình 3.3: các chân trên arduino uno r3 7
  12. H n 3 4 C ứ năn ân tr n r u no uno r3 1.4 Arduino IDE T r u no IDE B ớ 1: v o tr n w r u no ( n 3 5) H n 3 5: Tr n u ủ r u no 8
  13. B ớ 2: C n mụ ownlo ểl n ơn tr n IDE t í ợp ( n 3 6) H n 3 6: m n n l n ơn tr n IDE t í ợp B ớ 3: C n ều n t í ợp C 2 tùy n o ều n W n ows l W n ows nst ll r v W n ows z p f l for non m n nst ll Tùy n t ứ n ất ùn on ờ l mn ủ m y, tùy nt ứ2 on ờ k ôn p m n ủ m y T ôn t ờn số n tùy n t ứ n ất, tứ W n ows nst ll r B ớ 4: T IDE Ar u no r 2 lự n, o ồm ỉ ownlo về (just ownlo ) v ownlo về ùn quy n p ( ontr ut n ownlo ), n ợ t ể nở n 6 Ar u no mon muốn n ờ ùn n u ều k n ãy quy n p ủn ãn , mứ quy n p t ấp n ất l 3USD ( n 3 7) H n 3 7: tùy n ownlo IDE 9
  14. 5 Cà đặt IDE S uk t về t ợn f l Ar u noForV su lStu o ms yfl v l mn n n ớ (hình 3.8) H n 3 8: ớ ặt IDE 10
  15. 6 Cà đặt driver arduino uno r3 T ớn ẫn ặt tr n r v r o r u no o r ã ợ sẵn n n p n ớn ẫn n y ỉ n o n n o ùn t mụ ặt sẵn tron f l nén ZIP Chọn Start Menu, click chuột phải "Computer", và chọn "Manage". (hình 3.9) Hình 3.9: vào trình cài đặt driver C n "D v n r" p í n tr , t m òn "Unknown v " oặ "Ar u no *Bo r N m *" p í ớ "Ot r v s" (Hình 3.10) H n 3 10: n rv r n n ủ r u no Cl k u tp v o "Unknown v " oặ "Ar u no *Bo r N m *" v n "Update Driver Software". (hình 3.11) 11
  16. H n 3 11: C p n t r v r S u n "Brows my omput r for Dr v r softw r " H n 3 12: x ịn ờn ẫn pn t rv r Cuố ùn on Brows v t m n t mụ ứ fl r v r tron t mu r u no( ví ụ tr n m y ủ tô l F:\Program Files\arduino-1.0.5\drivers) (hình 3.13) 12
  17. H n 3 13: ờn ẫn n rv r N u w n ows n t ôn o n y ãy n "Install this driver software anyway". (hình 3.14) H n 3 14: pn t rv r t qu s u k pn tt n ôn H n 3 15: pn tt n ôn 13
  18. 2. NGÔN NGỮ LẬP TRÌNH 2.1 Cấu trúc ngôn ngữ lập trình 2.1.1 Cấu trúc chương trình ơn tr n Ar u no ợ t ot n ở ít n ất fun t on Đ u t n l fun t on s tup N sẽ y v o lú k ở t o - ỉ m t l n uy n ất và ợ s ụn ể o o Ar u no t n ữn ã ợ k t nố v ở âu, ũn n l k ở t o n n n tron ơn tr n Fun t on t ứ l loop Đây l ốt lõ ủ m ơn tr n Ar u no Ar u no n y, s u k fun t on s tup ã y xon , fun t on loop sẽ y qu tất o , s u t ự n l to n - o nk oặ l ị mất n uồn oặ ôn tắ r s t ợ n ấn C ều t ờ n n ể o n t n m t loop p ụ t u v op n o ợ ứ tron n D ớ ây l m t sơ ồ m n ớ tron m t ơn tr n : H n 3 16: ấu trú ủ ơn tr n v ều k ển ùn r u no Ví ụ 3 1: 14
  19. C ún t ãy ùn x m o ơn tr n Bl nk v x m function setup và loop ợ v tn t n o n é! D ớ ây l n un fun t on s tup: void setup() { // initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards: pinMode(13, OUTPUT); } C òn ắt u vớ // ỉ ơn nl òn omm nt t í on ờ ,v ún k ôn ợ t l n Ar u no V v y tron t ự t , ỉ m t òn o tron fun t on s tup n y Đ l òn l n "T tl p ân 13 t n u r (output)" C ân 13 ín l ân m t èn ED built-in. S u ,t x m n fun t on loop(): void loop() { digitalWrite(13, HIGH); // set the LED on delay(1000); // wait for a second digitalWrite(13, LOW); // set the LED off delay(1000); // wait for a second } 2.1.2 Biên dịch và nạp chương trình B n sẽ n 3 t ứ s u: Arduino IDE Mạch Arduino UNO R3 15
  20. Dây cáp USB 2 đầu Type A-B Hãy tu n tự t ự n t o từn ớ t o ớn ẫn s u Bước 1: Kết nối Arduino UNO R3 vào máy tính Hình 3.17: kết nối arduino với pc Bước 2: Tìm cổng kết nối của Arduino Uno R3 với máy tính Ar u no Uno R3 k t nố vớ m y tín , n sẽ s ụn m t ổn CO (Communication port - ổn ữ l u o) ể m y tín v om t ể truyền t ữl u qu l t ôn qu ổn này. W n ows t ể qu n lí n 256 ổn CO Để t m ợ ổn CO n ợ s ụn ể m y tín v m Ar u no UNO R3 o t p vớ nhau, np mở ứ năn D v n r ủ W n ows B n mở sổ Run v õ l n mmc devmgmt.msc. Hình 3.18: khởi động msc 16
nguon tai.lieu . vn