BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NHA TRANGKHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP CƠ SỞ
Đề tài 2: TÌM HIỂU CÁCH SỬ DỤNG VÀ CÀI ĐẶT CODESCƠ BẢN VÀO MẠCH LẬP TRÌNH ARDUINO
Giảng viên hướng dẫn: Nguyễn Khắc CườngSinh viên thực hiện: Nguyễn Vũ Duy Hưng
Mã sinh viên: 62130699
Nha Trang – 2023
Trang 2TRƯỜNG ĐẠI HỌC NHA TRANG
Khoa: Công nghệ Thông tin
PHIẾU THEO DÕI TIẾN ĐỘ VÀ ĐÁNH GIÁĐỒ ÁN/KHÓA LUẬN/CHUYÊN ĐỀ TỐT NGHIỆP(Dùng cho CBHD và nộp cùng báo cáo ĐA/KL/CĐTN của sinh viên)Tên chủ đề: TÌM HIỂU CÁCH SỬ DỤNG VÀ CÀI ĐẶT CODE CƠ BẢN VÀO MẠCH
LẬP TRÌNH ARDUINO
Giảng viên hướng dẫn: Nguy.n Kh/c Cư2ngSinh viên được hướng dẫn: Nguy.n Vũ Duy HưngKhóa: Ngành: Công nghệ Thông tin
Kiểm tra giữa tiến độ của Trưởng Bộ môn
Ngày kiểm tra:
……… ……… Đánh giá công việc hoàn thành:……%: Ký tênĐược tiếp tục: € Không tiếp tục: € ……….
Nhận xét chung (sau khi sinh viên hoàn thành ĐA/KL/CĐTN):
Điểm hình thức: ……/10 Điểm nội dung: /10 Điểm tổng kết: ….…/10
+ Đối với ĐA/KLTN:
Kết luận sinh viên: Được bảo vệ:
Không được bảo vệ:
Khánh Hòa, ngày tháng năm 2023
Cán bộ hướng dẫn
(Ký và ghi rõ họ tên)
TRƯỜNG ĐẠI HỌC NHA TRANG
Trang 3Khoa/Viện: Công nghệ Thông tin
PHIẾU THEO DÕI TIẾN ĐỘ VÀ ĐÁNH GIÁ ĐỒ ÁN / KHÓA LUẬN TỐT NGHIỆP
(Dùng cho CBHD và nộp cùng báo cáo ĐA/KLTN của sinh viên)
Tên chủ đề: TÌM HIỂU CÁCH SỬ DỤNG VÀ CÀI ĐẶT CODE CƠ BẢN VÀO MẠCH
Mô tả mức chất lượng
cầuKhông đạt9 - 107 - 85 - 6< 5
Xây dựng đềcương nghiên cứu 10
Tinh thần và tháiđộ làm việc 10Kiến thức và kỹnăng làm việc 10Nội dung và kết
quả đạt được 40Kỹ năng viết vàtrình bày báo cáo 30
Khánh Hòa, ngày…….tháng … năm 2023
Cán bộ hướng dẫn
(Ký và ghi rõ họ tên)
Trang 4TRƯỜNG ĐẠI HỌC NHA TRANGKhoa/Viện: Công nghệ Thông tin
PHIẾU CHẤM ĐIỂM ĐỒ ÁN / KHÓA LUẬN TỐT NGHIỆP
(Dành cho cán bộ chấm phản biện)
Tên chủ đề: TÌM HIỂU CÁCH SỬ DỤNG VÀ CÀI ĐẶT CODE CƠ BẢN VÀO MẠCH
LẬP TRÌNH ARDUINO
Chuyên ngành: Công nghệ Thông tin
Họ và tên sinh viên: Nguy.n Vũ Duy Hưng Mã sinh viên: 62130699
Người phản biện (học hàm, học vị, họ và tên):
Cơ quan công tác: Khoa Công nghệ Thông tin – Trư2ng Đại học Nha TrangI Phần đánh giá và cho điểm của người phản biện (tính theo thang điểm 10)
Tiêu chíđánh giá
Trọng số(%)
Mô tả mức chất lượng
ĐiểmGiỏiKháĐạt yêucầuKhông đạt9 - 107 - 85 - 6< 5
Hình thứcbản thuyết minh 30
Nội dung bảnthuyết minh 30
Kết quả
nghiên cứu 20Mức độ trích dẫn
và sao chép 20
ĐIỂM TỔNG
Ghi chú: Điểm tổng làm tròn đến 1 số lẻ.
Kết luận:
Đồng ý cho sinh viên: Được bảo vệ: € Không được bảo vệ: €
Khánh Hòa, ngày…….tháng …… năm 2023
Cán bộ chấm phản biện
(Ký và ghi rõ họ tên)
Trang 5II Phần nhận xét cụ thể (dựa theo phiếu chấm điểm và khung tiêu chí đánh giá theoRubric)
II.1 Hình thức thuyết minh (tỉ trọng 30%)
* Trình bày (Rõ ràng, mạch lạc? Biểu bảng, hình vẽ trình bày rõ ràng, đúng quy cách?…)
* Bố cục và lập luận (Bố cục hợp lý? Tỉ trọng giữa các phần? Cơ sở lập luận? )
* Văn phong (Gọn gàng, súc tích hay rườm rà, khó hiểu? Lỗi văn phạm và chính tả?…)
II.2 Nội dung thuyết minh (tỉ trọng 30%)
* Mục tiêu nghiên cứu (Trình bày rõ ràng? Ý nghĩa khoa học và thực tiễn? Tính khả thi? )
* Tổng quan tài liệu (Phân tích và đánh giá? Độ tin cậy và chất lượng nguồn tài liệu?…)
* Phương pháp nghiên cứu (Hiện đại? Phù hợp với mục tiêu và nội dung nghiên cứu? Mô
tả? Đánh giá và so sánh với các phương pháp khác?…)
II.3 Kết quả nghiên cứu (tỉ trọng 20%)
* Kết quả đạt được (Độ tin cậy? Tính sáng tạo? Giá trị khoa học và thực tiễn? )
* Kết luận (Đáp ứng mục tiêu nghiên cứu? Quan điểm của cá nhân? )
………
Trang 6LỜI CAM ĐOAN
Tôi xin được cam đoan: Những phần sử dụng tài liệu tham khảo trong đồán đã được trích dẫn đầy đủ.
Nếu phát hiện có sự sao chép kết quả nghiên cứu của đề tài khác, tôi xinchịu hoàn toàn trách nhiệm và chịu kỷ luật của Khoa và Nhà trư2ng đề ra.
Khánh Hòa, ngày … tháng … năm 2023
Sinh viên thực hiện
Trang 7Mình cũng xin gửi l2i cảm ơn tới các bạn sinh viên Trư2ng Đại học NhaTrang đã nhiệt tình tham gia khảo sát thông tin về nhà trọ và tình hình thuê trọ,hỗ trợ đóng góp trong quá trình làm đề tài.
Trong quá trình nghiên cứu thực hiện chủ đề báo cáo, cũng như là trong quátrình làm bài báo cáo, khó tránh khỏi sai sót, rất mong các thầy, cô bỏ qua.Đồng th2i do kiến thức cũng như kinh nghiệm thực ti.n của bản thân còn hạnchế nên đề tài, bài báo cáo lần này khó thể không tránh khỏi những thiếu sót, emrất mong nhận được ý kiến đóng góp từ quý thầy, cô để em học hỏi thêm đượcnhiều kinh nghiệm, cũng như kỹ năng cần thiết.
Em xin chân thành cảm ơn!
Trang 8MỤC LỤCChương 1: TỔNG QUAN VỀ ARDUINO
2.2.5 Các cổng vào/ra
Chương 2: TRÌNH BÀY CÁCH KẾT NỐI, CƠ CHẾ HOẠT ĐỘNG, CÁCH LẬP TRÌNH MẠCH ARDUINO
1 Cách kết nối2 Cơ chế hoạt động3 Ứng dụng
4 Cách lập trình mạch Arduino 4.1 Cấu trúc chương trình Arduino4.2 Phần mềm & ngôn ngữ được sử dụng
Chương 3: THIẾT KẾ VÀ LẬP TRÌNH NHÚNG THỰC HIỆN MỘT SỐ CÔNG VIỆC VI ĐIỀU KHIỂN ĐƠN GIẢN DÙNG MẠCH ARDUINO.
1 Chủ đề lựa chọn2 Xây dựng chủ đề3 Thiết bị sử dụng
3.1 Arduino Uno R3 SMD3.2 Driver L298N
3.3 Động cơ Motor DC 2 chiều3.4 Nút bấm
4 Chương trình
Trang 94.1 Code Chương trình4.2 Giải thích
5 Sơ đồ mạch
5.1 Hình ảnh5.2 Giải thích
Chương 4: TỔNG KẾT
1 Kết quả 2 Kết luận
3 Tài liệu tham khảo
Trang 10DANH MỤC HÌNH VẼ
Hình 1.1 Arduino
Hình 1.2 Chi tiết bộ phận ArduinoHình 1.3 Mạch Arduino Uno R3Hình 2.1 Kết nối Arduino Uno R3Hình 2.2 Mở cửa số RunHình 2.3 Cửa sổ Device ManagerHình 2.4 Cổng kết nối (Port )Hình 2.5 Khởi động Arduino IDEHình 2.6 Chọn Board Arduino UnoHình 2.7 Chọn cổng COM3Hình 2.8 Xác nhận cổngHình 2.9 Chọn AVR
Hình 2.10 Nạp chương trình mẫuHình 2.11 Chương trình mẫuHình 2.12 Chương trình Blink
Hình 2.4.1 Cấu trúc chương trình ArduinoHình 2.4.2 Sơ đồ cấu trúc chương trình ArduinoHình 3.1.1 Arduino Uno R3 SMD
Trang 11Chương 1: TỔNG QUAN VỀ ARDUINO1 Arduino là gì?
1.1 Các khái niệm cơ bản về Arduino
- Arduino là nền tảng tạo mẫu điện tử mã nguồn mở, được sử dụng
nhằm xây dựng các ứng dụng điện tử tương tác với nhau hoặc môitrư2ng được thuận tiện, d dàng.
- Nền tảng mẫy này giống như một máy tính thu nhỏ, giúp ngư2i dùng
lập trình và thực hiện các dự án điện tử mà không cần phải đến cáccông cụ chuyên dụng để phục vụ việc nạp code.
- Phần mềm này tương tác với thế giới bên ngoài thông qua các biến
điện tử, đèn và động cơ.
- Arduino là một bo mạch vi điều khiển do một nhóm giáo sư và sinh
viên nước Ý thiết kế và đưa ra đầu tiên vào năm 2005 Mạch Arduinođược sử dụng để cảm nhận và điều khiển nhiều đối tượng khác nhau.Ngoài ra mạch còn có khả năng liên kết với nhiều module khác nhaunhư module đọc thẻ từ, ethernet shield, sim900A, … để tăng khảnăng ứng dụng của mạch.
Trang 12hoặc nguồn điện bên ngoài, cho phép cung cấp năng lượng cho cácphần cứng, cảm biếc khác.
- Là phần mềm nguồn mở tương tự như C++ Môi trư2ng phát triển
tích hợp Arduino (IDE – Integrated Development Enviroment ) chophép bạn soạn thảo, biên dịch code, nạp chương trình cho board.
Tất cả những điều này nhằm hỗ trợ cho các nghệ sĩ, nhà sản xuấttự do phát triển ý tưởng của họ thành các đối tượng thực sự mộtcách d dàng.
1.3 Chi tiết phần cứng của Arduino
- Cổng USB (1): là chân c/m để tải mã lập trình từ PC lên chip điều
khiển Đồng th2i đây cũng là cổng giao tiếp serial giúp truyền dữ liệutừ chip điều khiển vào máy tính.
- Jack nguồn (2): để chạy Arduino, bạn hoàn toàn có thể nạp nguồn từ
cổng USB ở trên Tuy nhiên không phải lúc nào cũng kết nối với máytính được Có những dự án cần thực hiện ngoài tr2i sẽ cần một nguồnđiện khác với điện áp từ 9V – 12V.
- Hàng Header (3): những chân đánh số từ 0 – 12 là hàng digital pin.
Đây là nơi truyền nhận các tín hiệu số Bên cạch đó sẽ là một pin đất(GND) và pin điện áp tham chiếu (AREF).
- Hàng Header thứ 2 (4): chủ yếu liên quan tới điện áp đất, nguồn.- Hàng Header thứ 3 (5): đây là các chân để nhập – xuất các tín hiệu
analog (độc thông tin của các thiết bị cảm biến ).
- Chip điều khiển AVR (6): bộ phận xử lý trung tâm của toàn bo
mạch Với mỗi mẫu Arduino khác nhau, con chip này sẽ khác nhau.Ví dụ trên Arduino Uno thì sẽ sử dụng ATMega328.
Hình 1.2 - Chi tiết bộ phận Arduino
1.4 Các loại Arduino.- Arduino Uno
Trang 13Đây chính là loại board đơn giản nhất nên rất phù hợp với nhữngngư2i mới b/t đầu tìm hiểu về lĩnh vực này Dữ liệu số bao gồm 14chân, đầu vào gồm 6 chân 5V, khả năng phân giải là 1024 mức, tốcđộ 16MHz, điện áp từ 7V đến 12V Kích thước của Board này là5,5x7cm.
-Arduino Pro
Đây là một thiết kế mới mẻ khi chân số không có sẵn, tùy vào sốchân bạn sử dụng để g/n trực tiếp và giúp tiết kiệm được khoảngkhông lớn, ta thư2ng thấy hai loại có nguồn 3.3V và 5V.
- Arduino LilyPad
Board mạch Lily Pad Arduino là một công nghệ dệt điện tử có thểđeo được được mở rộng bởi Leah Sang Buechley, và được thiết kếmột cách cẩn thận bởi dòng Lea Leah và SparkFun Mỗi board đượcthiết kế một cách tưởng tượng với các miếng kết nối khổng lồ & mộtmặt sau mịn màng để cho chúng được khâu vào quần áo bằng chỉ Arduino này cũng bao gồm I / O, nguồn và cả board cảm biến đượcchế tạo đặc biệt cho hàng dệt may điện tử.
- Arduino RedBoard
Board mạch RedBoard Arduino có thể được lập trình bằng cáp USBMini-B bằng Arduino IDE Nó sẽ hoạt động trên Windows 8 màkhông phải sửa đổi cài đặt bảo mật của bạn Nó không đổi do chipUSB hoặc FTDI chúng tôi sử dụng và nó hoàn toàn phẳng ở mặt sau.Tạo nó rất đơn giản để sử dụng trong thiết kế dự án Chỉ cần c/mboard, chọn tùy chọn menu để chọn Arduino UNO và bạn đã sẵn
Trang 14sàng để tải lên chương trình Bạn có thể điều khiển RedBoard quacáp USB bằng gi/c c/m thùng.
2 Arduino Uno R3?
2.1 Tổng quan về Arduino Uno R3.
- Đây là kit của Arduino Uno thế hệ thứ 3, có khả năng lập trình cho
các ứng dụng điều khiển phức tạp Được trang bị cấu hình mạnh chocác loại bộ nhớ như ROM, RAM và Flash, các ngõ vào/ ra digitalI/O Trong đó nhiều ngõ có khả năng xuất tín hiệu PWM, các ngõđọc tín hiệu analog và chuẩn giao tiếp đa dạng như: UART, SPI, TWI(I2C).
- Arduino Uno R3 được sử dụng vi điều khiển ATmega328, tương
thích với hầu hết các loại Arduino Shield trên thị trư2ng, có thể g/nthêm các module mở rộng để thực hiện thêm các chức năng như điềukhiển motor, kết nối wifi hay các chức năng khác.
Hình 1.3 - Mạch Arduino Uno R3
2.2 Thông số
Vi điều khiển ATMega328 họ 8 bit
Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)Tần số hoạt động 16 MHz
Dòng tiêu thụ Khoảng 30mAĐiện áp vào khuyên
7 – 12V DCĐiện áp vào giới hạn 6 – 20V DC
Số chân Digital I/O 14 (6 chân hardware PWM)Số chân Analog 6 (độ phân giải 10bit)Dòng tối đa trên mỗi 30 mA
Trang 15chân I/O
Dòng ra tối đa (5V) 500 mADòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash 32 KB (ATMega328) với 0.5KB dùngbởi bootloader
2.2.1 Năng lượng
- Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc
cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạnlà 6-20V Thư2ng thì cấp nguồn bằng pin vuông 9V là hợp lí nhấtnếu bạn không có sẵn nguồn từ cổng USB Nếu cấp nguồn vượt quángưỡng giới hạn trên, bạn sẽ làm hỏng Arduino UNO.
2.2.2 Các chân năng lượng
-GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi
bạn dùng các thiết bị sử dụng những nguồn điện riêng biệt thì nhữngchân này phải được nối với nhau.
-5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là
-3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là
-Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối
cực dương của nguồn với chân này và cực âm của nguồn với chânGND.
-IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có
thể được đo ở chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạnkhông được lấy nguồn 5V từ chân này để sử dụng bởi chức năng củanó không phải là cấp nguồn.
-RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương
đương với việc chân RESET được nối với GND qua 1 điện trở10KΩ.
2.2.3 Bộ nhớ
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho ngư2i dùng:
-32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ
trong bộ nhớ Flash của vi điều khiển Thư2ng thì sẽ có khoảng vàiKB trong số này sẽ được dùng cho bootloader nhưng đừng lo, bạnhiếm khi nào cần quá 20KB bộ nhớ này đâu.
Trang 16-2KB cho SRAM (Static Random Access Memory): giá trị các biến
bạn khai báo khi lập trình sẽ lưu ở đây Bạn khai báo càng nhiều biếnthì càng cần nhiều bộ nhớ RAM Tuy vậy, thực sự thì cũng hiếm khinào bộ nhớ RAM lại trở thành thứ mà bạn phải bận tâm Khi mấtđiện, dữ liệu trên SRAM sẽ bị mất.
-1KB cho EEPROM: EEPROM đây giống như một chiếc ổ cứng
mini nơi bạn có thể đọc và ghi dữ liệu của mình vào đây mà khôngphải lo bị mất khi cúp điện giống như dữ liệu trên SRAM.
2.2.4 Các cổng Vào/Ra
Một số chân Digital có các chức năng đặc biệt như sau:
-2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và
nhận (receive – RX) dữ liệu TTL Serial Arduino Uno có thể giaotiếp với thiết bị khác thông qua 2 chân này Kết nối bluetooth thư2ngthấy nói nôm na chính là kết nối Serial không dây Nếu không cầngiao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cầnthiết
-Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung
PWM với độ phân giải 8bit (giá trị từ 0 → 2 -1 tương ứng với 0V →85V) bằng hàm analogWrite() Nói một cách đơn giản, bạn có thể điềuchỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cốđịnh ở mức 0V và 5V như những chân khác.
-Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).
Ngoài các chức năng thông thư2ng, 4 chân này còn dùng để truyềnphát dữ liệu bằng giao thức SPI với các thiết bị khác.
-LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L).
Khi bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nóđược nối với chân số 13 Khi chân này được ngư2i dùng sử dụng,LED sẽ sáng.
Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giảitín hiệu 10bit (0 → 2 -1) để đọc giá trị điện áp trong khoảng 0V →105V Với chân AREF trên board, bạn có thể để đưa vào điện áptham chiếu khi sử dụng các chân analog Tức là nếu bạn cấp điệnáp 2.5V vào chân này thì bạn có thể dùng các chân analog để đođiện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit.
Trang 17Chương 2: TRÌNH BÀY CÁCH KẾT NỐI, CƠ CHẾ HOẠT ĐỘNG,CÁCH LẬP TRÌNH MẠCH ARDUINO
1.Cách kết nối
- Bước 1: Kết nối Arduino Uno R3 vào máy tính thông qua cổng USB
Hình 2.1 - Kết nối Arduino Uno R3
- Bước 2: Tìm cổng kết nối của Arduino Uno R3 với máy tính
Khi Arduino Uno R3 kết nối với máy tính, nó sẽ sử dụng một cổngCOM (Communication port - cổng dữ liệu ảo) để máy tính và bomạch có thể truyền tải dữ liệu qua lại thông qua cổng này Windowscó thể quản lí đến 256 cổng COM Để tìm được cổng COM đangđược sử dụng để máy tính và mạch Arduino UNO R3 giao tiếp vớinhau, bạn phải mở chức năng Device Manager của Windows.+ Bạn mở cửa sổ Run và gõ lệnh “mmc devmgmt.msc”.
Hình 2.2 - Mở cửa sổ Run
+ Sau đó bấm Enter, cửa sổ Device Manager sẽ hiện lên.
Trang 18Hình 2.3 - Cửa sổ Device Manager
+ Mở mục Ports (COM & LPT), bạn sẽ thấy cổng COM ArduinoUno R3 đang kết nối.
Hình 2.4 - Cổng kết nối (Port)
+ Cổng kết nối ở đây là COM3
+ Thông thư2ng, trong những lần kết nối tiếp theo, Windows sẽ sửdụng lại cổng COM3 để kết nối nên bạn không cần thực hiện thêmthao tác tìm cổng COM này nữa.
- Bước 3: Khởi động Arduino IDE
Hình 2.5 - Khởi động Arduino IDE
- Bước 4: Cấu hình phiên bản làm việc cho Arduino IDE
+ Vào menu Tools -> Board -> chọn Arduino Uno