Các loại Board Arduino phổ biến Không giống như hầu hết các board mạch lập trình trước đó, Arduinokhông yêu cầu một phần cứng riêng để lập trình mã mới lên board mà b
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC KHOA ĐIỆN, ĐIỆN TỬ VÀ CÔNG NGHỆ VẬT LIỆU
CẢM BIẾN NHIỆT ĐỘ HIỂN THỊ LÊN
MÀN HÌNH LCD VÀ ĐIỀU KHIỂN TỐC
ĐỘ QUẠT TRONG PHÒNG NGỦ
VI XỬ LÝ VÀ VI ĐIỀU KHIỂN TRONG ĐO LƯỜNG TỰ ĐỘNG
GIẢNG VIÊN HƯỚNG DẪN: THS NGUYỄN ĐỨC NHẬT QUANG
SỐ PHÁCH:……….
Trang 2TRƯỜNG ĐẠI HỌC KHOA HỌC KHOA ĐIỆN, ĐIỆN TỬ VÀ CÔNG NGHỆ VẬT LIỆU
CẢM BIẾN NHIỆT ĐỘ HIỂN THỊ LÊN MÀN HÌNH LCD VÀ ĐIỀU KHIỂN TỐC ĐỘ QUẠT TRONG PHÒNG NGỦ
VI XỬ LÝ VÀ VI ĐIỀU KHIỂN TRONG ĐO LƯỜNG TỰ ĐỘNG
Giảng viên hướng dẫn : ThS Nguyễn Đức Nhật Quang
Sinh viên thực hiện : Hồ Văn Nhật
Mã sinh viên : 19T1051013
HUẾ, THÁNG 12 NĂM 2021
Trang 3
MỤC LỤC
DANH MỤC HÌNH ẢNH
DANH MỤC BẢNG BIỂU
CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 1
1.1.ĐẶT VẤN ĐỀ 1
1.2.GIẢI QUYẾT VẤN ĐỀ 1
CHƯƠNG 2 TỔNG QUAN VỀ LINH KIỆN 3
2.1 GIỚI THIỆU ARDUINO 3
2.1.1 Arduino là gì? 3
2.1.2 Cấu tạo của Arduino 3
2.1.3 Thông số cơ bản của Arduino Uno R3 3
2.1.4 Các loại Board Arduino phổ biến 4
2.1.5 Ứng dụng Arduino 5
2.2 PHẦN MỀM LẬP TRÌNH ARDUINO IDE 5
2.2.1 Giao diện phần mềm IDE 6
2.2.2 Cấu trúc một chương trình trong phần mềm IDE 8
2.3 GIỚI THIỆU VỀ ARDUINO NANO 10
2.4 GIỚI THIỆU VỀ LCD I2C 15
2.4.1 Giới thiệu LCD 16x2 15
2.4.2 Thông số kỹ thuật LCD 16x2 15
2.4.3 Module LCD I2C 17
2.5 GIỚI THIỆU IC THỜI GIAN THỰC DS1307 18
2.6 GIAO TIẾP ARDUINO VỚI IC THỜI GIAN THỰC DS1307 19
2.7 GIAO TIẾP ARDUINO VỚI CẢM BIẾN NHIỆT ĐỘ, ĐỘ ẨM DHT11 19
CHƯƠNG 3 THI CÔNG VÀ THIẾT KẾ MẠCH 21
3.1 QUÁ TRÌNH ĐO NHIỆT ĐỘ, ĐỘ ẨM, ĐỌC GIÁ TRỊ THỜI GIAN 21
Trang SỐ PHÁCH:……….
Trang 43.3 LƯU ĐỒ THUẬT TOÁN 22
3.4 SƠ ĐỒ NGUYÊN LÝ (MÔ PHỎNG TRÊN PROTEUS) 22
3.5 KẾT QUẢ MÔ PHỎNG TRÊN PROTEUS 23
3.6 KẾT QUẢ TRÊN MẠCH THỰC TẾ 23
CHƯƠNG 4 ĐIỀU KHIỂN MOTOR, SERVO VÀ LED PHẦN MỀM
VISUAL STUDIO24
4.1 YÊU CẦU KIẾN THỨC CẦN NẮM KHI LẬP TRÌNH 24
4.2 THIẾT BỊ VÀ PHẦN MỀM CẦN THIẾT 24
4.3 TỔNG QUAN LÝ THUYẾT 24
4.3.1 Led đơn 24
4.3.2 Kỹ thuật điều chế độ rộng xung 24
4.3.3 Giới thiệu về động cơ DC 25
4.3.4 Giới thiệu về động cơ bước SERVO 25
4.4 THIẾT KẾ VÀ LẬP TRÌNH GIAO DIỆN ĐIỀU KHIỂN LED – MOTOR 274.4.1 Sơ đồ nguyên lý mạch điều khiển LED – MOTOR – SERVO27
4.4.2 Giao diện điều khiển LED – MOTOR – SERVO bằng C# 27
4.5 KẾT QUẢ 28
CHƯƠNG 5 KẾT LUẬN 29 PHỤ LỤC
TÀI LIỆU THAM KHẢM
PHIẾU ĐÁNH GIÁ TIỂU LUẬN
Trang 5DANH MỤC HÌNH ẢNH
Hình 1 Thế kỷ XXI – Thời đại của khoa học công nghê ̣ 1
Hình 2 Cấu tạo của Arduino Uno 3
Hình 3 Minh họa giao diện lập trình Arduino IDE 6
Hình 4 Minh họa vùng Toolbar trên giao diện Arduino IDE 7
Hình 5 Minh họa chọn board Arduino và cổng COM giao tiếp phù hợp 7
Hình 6 Minh họa vùng viết chương trình 8
Hình 7 Tổng quan quá trình xử lý chương trình Arduino 8
Hình 8 Arduino Nano 11
Hình 9 Sơ đồ chân Arduino Nano 12
Hình 10 ICSP 13
Hình 11 Màn hình LCD 16x2 15
Hình 12 Module LCD I2C 17
Hình 13 Sơ đồ đấu nối giao tiếp IC2 với LCD 16×2 17
Hình 14 Module DS1307 18
Hình 15 Sơ đồ chân DS1307 18
Hình 16 Sơ đồ nguyên lý DS1307 với Arduino 19
Hình 17 Module DHT11 20
Hình 18 Sơ đồ nguyên lý DHT11 với Arduino 20
Hình 19 SƠ ĐỒ NGUYÊN LÝ TOÀN MẠCH 22
Hình 20 Kết quả mô phỏng trên phần mềm proteus 23
Hình 21 Minh họa kết quả thực nghiê ̣m 23
Hình 22 Minh họa phần trăm điều chế xung PWM 25
Hình 23 Minh họa cấu tạo động cơ điện một chiều 25
Hình 24 Minh họa động cơ bước và sơ đồ nguyên lý bên trong động cơ 26
Hình 25 Phương pháp điều khiển bước đủ 26
Hình 26 Minh họa mạch điều khiển LED – MOTOR – SERVO 27
Hình 27 Giao diê ̣n điều khiển LED – MOTOR – SERVO 28
Hình 28 Kết quả mô phỏng 28
Trang
Trang 6DANH MỤC BẢNG BIỂU
Bảng 1 Thông số cơ bản của Arduino Uno R3 3
Bảng 2 Một số ký hiê ̣u và câu lê ̣nh thường gặp 9
Bảng 3 Đặc điểm kỹ thuật Arduino Nano 11
Bảng 4 Chức năng các chân Arduino Nano 12
Bảng 5 Chân ICSP 13
Bảng 6 Chức năng của các chân LCD 15
Bảng 7 Giao tiếp I2C LCD Arduino 17
Bảng 8 Sơ đồ chân Module thời gian thực DS1307 18
Trang 7CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI
1.1 ĐẶT VẤN ĐỀ
Thế giới XXI – Thời đại của khoa học công nghệ, thời đại của những conchip, vi mạch, những thiết bị đột phá của tương lai Kéo theo đó là sự pháttriển vượt bậc của khoa học kỹ thuật đã cho ra đời nhiều sản phẩm mang tínhđột phá và có sức mạnh vượt trội Các sản phẩm này ngày càng hoàn thiện vàcàng được sử dụng rộng rãi trong đời sống Kể từ đây thời đại của tự độnghóa, các thiết bị số đang dần thống trị trong cuộc sống cách mạng khoa học kỹthuật
Hì nh 1 Thế kỷ XXI – Thờ i đạ i củ a khoa họ c công nghệ
Được biết đến là một board mạch nhỏ gọn, tiện lợi nhưng đầy sứcmạnh ARDUINO NANO là một trong những sản phẩm đột phá của côngnghệ vi mạch điện tử Đặc biệt ứng dụng trong các hệ thống tự động hóa, làmột sản phẩm mã nguồn mở nên ARDUINO dễ dàng tương tác và thân thiệnvới người sử dụng Bất cứ ai cũng có thể học nó, vận hành nó một cách trơntru Chúng ta sẽ cảm thấy thật thú vị khi một sản phẩm do chính mình tạo ra,rất đơn giản nhưng hiệu quả thiết thực Chỉ cần một cú click trên điện thoại làcó thể dễ dàng điều khiển các thiết bị trong nhà, hay một chú robot tự động,một máy đo nhiệt độ cầm tay…Tất cả không gì là không thể với chúng ta Quảlà một điều tuyệt vời! Các nhà nghiên cứu đã mang đến cho chúng ta một mónquà, một sản phẩm công nghệ giá rẻ nhưng đầy sức mạnh và thân thiện với
Trang 8Hiện nay việc đo nhiệt độ, đọc thời gian thực và điều khiển các thiết bịtự động là một yêu cầu cần thiết và quan trọng Điều tối ưu để hệ thống nàyhoạt động tốt là sử dụng vi điều khiển tính toán chính xác và hoạt động tincậy, một cảm biến nhạy với sự thay đổi của nhiệt độ, độ ẩm Vậy hệ thống đólà gì? Cấu tạo hoạt động như thế nào? Và làm thế nào để thiết kế hệ thống đóchúng ta sẽ tìm hiểu trong bài tiểu luận này.
1.2 GIẢI QUYẾT VẤN ĐỀ
Để đáp ứng được nhu cầu đo nhiệt độ, độ ẩm, hiển thị thời gian thực tựđộng thì có nhiều phương pháp để thực hiện, nghiên cứu khảo sát board mạchARDUINO NANO em nhận thấy rằng: ứng dụng ARDUINO và việc đo lườngtự động là phương pháp tối ưu Em đã tiến hành thực hiện đề tài “MẠCHARDUINO ĐO VÀ HIỂN THỊ NHIỆT ĐỘ, ĐỘ ẨM, THỜI GIAN THỰC LÊNLCD – ĐIỀU KHIỂN MOTOR, SERVO VÀ LED BẰNG PHẦN MỀM VISUALSTUDIO”
Với đề tài trên em đã thực hiện và tìm hiểu các vấn đề sau:
Tìm hiểu về linh kiện
Tìm hiểu về board mạch ARDUINO NANO
Tìm hiểu về cảm biến nhiệt độ, độ ẩm DHT11
Tìm hiểu về cảm biến thời gian thực DS1307
Tìm hiểu về LED đơn, động cơ điện DC, động cơ SERVO
Tìm hiểu về module LCD I2C
Tìm hiểu về sơ đồ khối hệ thống và nguyên lí hoạt động của mạch
Tìm hiểu về lưu đồ thuật toán
Lập trình và mô phỏng
Thi công thiết kế hệ thống trên
Thiết kế mạch nguyên lí
Thiết kế giao diện giao tiếp với PC
Hoàn thiện hệ thống
Trang 9CHƯƠNG 2 TỔNG QUAN VỀ LINH KIỆN 2.1 GIỚI THIỆU ARDUINO
2.1.1 Arduino là gì?
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 Nó có thể thựchiện nhiều nhiệm vụ lấy tín hiệu từ cảm biến đến điều khiển đèn, động cơ, vànhiều đối tượng khác Ngoài ra mạch còn có khả năng liên kết với nhiềumodule khác nhau như module đọc thẻ từ, ethernet shield, sim900A,… đểtăng khả ứng dụng của mạch
Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nềntảng vi xử lý AVR Atmel 8bit, hoặc ARM, Atmel 32-bit,… Hiện phần cứng củaArduino có tất cả 6 phiên bản, Tuy nhiên phiên bản thường được sử dụngnhiều nhất là Arduino Uno và Arduino Mega
Phần mềm để lập trình cho mạch Arduino là phần mềm IDE
2.1.2 Cấu tạo của Arduino
Trang 102.1.3 Thông số cơ bản của Arduino Uno R3
Bả ng 1 Thông số cơ bả n củ a Arduino Uno R3
Vi điều khiển Atmega 328 (họ 8 bit)
Điện áp hoạt động 5V – DC (cấp qua cổng USB)
Tần số hoạt động 16 MHz
Dòng tiêu thụ 30mA
Điện áp vào khuyên dùng 7 – 12V – DC
Điện áp vào giới hạn 6 – 20V – DC
Số chân Digital I/O 14 chân (6 chân PWM)
Số chân Analog 6 (độ phân giải 10 bit)
Dòng tối đa trên mỗi chân
Dòng ra tối đa (5V) 500mA
Dòng ra tối đa (3.3V) 50mA
Bộ nhớ flash 32 KB (Atmega328) với 0.5KB dùng bởi
bootloader
2.1.4 Các loại Board Arduino phổ biến
Không giống như hầu hết các board mạch lập trình trước đó, Arduinokhông yêu cầu một phần cứng riêng để lập trình mã mới lên board mà bạn chỉcần sử dụng cáp USB Đồng thời, phần mềm Arduino IDE sử dụng phiên bản
cơ bản của C ++, giúp việc học chương trình trở nên đơn giản hơn Chúng ta cóthể tổng hợp một số loại Arduino phổ biến như sau:
Arduino Uno: Đây chính là loại board đơn giản nhất nên rất phù hợp với
những người 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 Micro: Bao gồm có đến 20 chân, trong đó có 7 chân có thể phát
PWM Loại này có thiết kế khá nhỏ gọn, kích thước chỉ 5x2cm
Trang 11 Arduino Nano: Có thể nói đây chính là loại board có kích thước nhỏ nhất
chỉ 2x4cm, việc lắp đặt được thực hiện dễ dàng
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ảng khônglớn, ta thường thấy hai loại có nguồn 3.3V và 5V
Arduino Mega: Chân số lên đến 64, 14 chân có thể phát PWM, 4 cổng
truyền tiếp cùng kích thước khá lớn 5x10cm
Arduino Leonardo: Là board không có cổng nối USB dùng lập trình Đượcthiết kế tại một chip nhỏ điều khiển Kết nối qua COM ảo và có thể kết nốivới chuột và bàn phím
Arduino LilyPad: Board mạch Lily Pad Arduino là một công nghệ dệt điệntử 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 được thiết kếmột cách tưởng tượng với các miếng kết nối khổng lồ & một mặt sau mịnmàng để cho chúng được khâu vào quần áo bằng chỉ Arduino này cũngbao gồm I / O, nguồn và cả board cảm biến được chế tạo đặc biệt cho hàngdệt may điện tử
Arduino RedBoard: Board mạch RedBoard Arduino có thể được lập trình
bằng cáp USB Mini-B bằng Arduino IDE Nó sẽ hoạt động trên Windows 8mà không phải sửa đổi cài đặt bảo mật của bạn Nó không đổi do chip USBhoặ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ắm board, chọn tùychọn menu để chọn Arduino UNO và bạn đã sẵn sàng để tải lên chươngtrình Bạn có thể điều khiển RedBoard qua cáp USB bằng giắc cắm thùng.Ngoài ra, còn có thể kể đến: Arduino Diecimila, Arduino Duemilanove,Arduino Due, v.v
Trang 122.1.5 Ứng dụng Arduino
Arduino có nhiều ứng dụng trong đời sống, trong việc chế tạo các thiết bịđiện tử chất lượng cao Một số ứng dụng có thể kể đến như:
Lập trình robot: Arduino chính là một phần quan trọng trong trung tâm xửlí giúp điều khiển được hoạt động của robot
Lập trình máy bay không người lái Có thể nói đây là ứng dụng có nhiều kìvọng trong tương lai
Game tương tác: chúng ta có thể dùng Arduino để tương tác với Joystick,màn hình,… để chơi các trò như Tetrix, phá gạch, Mario… và nhiều gamerất sáng tạo nữa
Arduino điều khiển thiết bị ánh sáng cảm biến tốt Là một trong những bộphần quan trọng trong cây đèn giao thông, các hiệu ứng đèn nháy được càiđặt làm nổi bật các biển quảng cáo
Arduino cũng được ứng dụng trong máy in 3D và nhiều ứng dụng khác tùythuộc vào khả năng sáng tạo của người sử dụng
2.2 PHẦN MỀM LẬP TRÌNH ARDUINO IDE
Arduino cung cấp đến môi trường lập trình tích hợp mã nguồn mở hỗtrợ người dùng viết code và tải nó lên bo mạch Arduino Đây là môi trường đanền tảng, hỗ trợ một loạt các bo mạch Arduino cùng rất nhiều tính năng độcđáo Ứng dụng lập trình này có giao diện được sắp xếp hợp lý, phù hợp với cảnhững người dùng chuyên nghiệp lẫn không chuyên
Arduino có môi trường lập trình được viết bằng java, hiện đang được sửdụng cho các bo mạch Arduino và Genuido, được nhiều công ty trên thế giớisử dụng để lập trình cho các thiết bị của họ Java 2 Platform Standard Editioncũng là một IDE hỗ trợ Java Hiện Java 2 Platform Standard Edition được rấtnhiều người sử dụng
Trang 13Arduino là môi trường phát triển tích hợp đa nền tảng, hỗ trợ cho mộtloạt các bo mạch Arduino như Arduino Uno, Nano, Mega, Esplora, Ethernet,Fio, Pro hay Pro Mini cũng như LilyPad Arduino Phần mềm này cũng phùhợp cho những lập trình viên C và C ++ là thay thế hoàn hảo cho các IDEkhác Với những ai muốn học lập trình PHP, thì PHP Designer 2007 Personallà lựa chọn tốt Phần mềm PHP Designer 2007 Personal cung cấp các giải pháphiệu quả trong thiết kế website.
Chúng ta truy cập vào trang web http://arduino.cc/en/Main/Software vàtải về chương trình Arduino IDE phù hợp với hệ điều hành của máy mình baogồm Windown, Mac OS hay Linux Đối với Windown có bản cài đặt (.exe) vàbản Zip, đối với Zip thì chỉ cần giải nén và chạy chương trình không cần càiđặt Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng đanền tảng được viết bằng Java.Nó được thiết kế để dành cho các nhà phát triểnvà những người mới tập tành làm quen với lĩnh vực phát triển phần mềm Nóbao gồm một trình biên tập mã nguồn (code editor) với các chức năng nhưđánh dấu cú pháp, tự động kiểm tra phù hợp dấu ngoặc và tự động canh lề,cũng như biên dịch (complie) và tải (upload) chương trình lên bo Một chươngtrình hoặc mã nguồn viết cho Arduino được gọi là một sketch
Các tính năng chính của Arduino IDE:
Viết code cho bo mạch Arduino
Hỗ trợ nhiều loại bo mạch Arduino
Giao diện được sắp xếp hợp lý
Bộ sưu tập các ví dụ mẫu
Mảng thư viện hỗ trợ phong phú
v.v
Trang 142.2.1 Giao diện phần mềm IDE
Hì nh 3 Minh họa giao diện lập trình Arduino IDE
Các chương trình Arduino được viết bằng C hoặc C++ Arduino IDE đikèm với một thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc,có thể giúp các thao tác input/output được dễ dàng hơn Người dùng chỉ cầnđịnh nghĩa 2 hàm để tạo ra một chương trình vòng thực thi (cyclic executive)có thể chạy được
Arduino IDE là nơi để soạn thảo chương trình, kiểm tra lỗi và nạpchương trình cho Arduino Giao diện này gồm có 3 vùng rõ ràng
- Vùng Toolbar có chứa các phím lệnh như kiểm tra chương trình, nạpchương trình, lưu, mở hay tạo mới chương trình
Hì nh 4 Minh họa vùng Toolbar trên giao diện Arduino IDE
Trang 15Các nút chức năng có nhiệm vụ như sau.
- Kiểm tra chương trình viết có đúng cú pháp hay không- Verify Sketch
- Biên dịch chương trình và nạp vào board Arduino- Complie and upload sketch to arduino.
- Tạo một sketch mới- New Sketch
- Mở một sketch đã lưu trước đó- Open Sketch
- Lưu chương trình lại- Save Sketch
- Mở màn hình hiển thị Serial Monitor sử dụng cài này khi trong Sketch có
lệnh in ra màn hình hay gửi ký tự thông qua chuẩn RS232- Open Serial
Monitor.
- Current tab: Sketch đang được mở hiện tại, có thể đồng thời có nhiều tab
tương ứng với nhiều sketch hiện trên thanh tab
- Tab menu: Vào menu để chọn các chỉ dẫn.
Ngoài ra, trong Tool menu ta quan tâm các mục mạch và cổng nối tiếpnhư mục Board Ở đây việc lựa chọn bo mạch cho phù hợp với loại bo màchúng ta đang sử dụng đóng vai trò hết sức quan trọng Nếu sử dụng loại bomạch khác thì phải chọn đúng loại bo mạch, nếu chọn sai thì nạp chương trìnhvào chip sẽ bị báo lỗi
Hì nh 5 Minh họa chọn board Arduino và cổng COM giao tiếp phù hợp
Trang 16Cổng giao tiếp giữa máy tính và Board được thiết lập thông qua tab SerialPort: đây là nơi lựa chọn cổng COM của Arduino Khi chúng ta cài đặt driverthì máy tính sẽ hiện thông báo tên cổng COM của Arduino là bao nhiêu( xemở phần Device Manager), ta chỉ việc vào Serial Port chọn đúng cổng COM đểnạp chương trình, nếu chọn sai thì không thể nạp chương trình cho Arduinođược.
- Vùng viết chương trình được đánh số dòng như hình vẽ Đây là nơi đểviết các dòng lệnh điều khiển hoạt động của VĐK
Hì nh 6 Minh họa vùng viết chương trình.
2.2.2 Cấu trúc một chương trình trong phần mềm IDE
Hì nh 7 Tổ ng quan quá trì nh xử lý chương trì nh Arduino
Trang 17Phần 1: Khai báo biến
Đây là phần khai báo kiểu biến, tên các biến, định nghĩa các chân trên boardmột số kiểu khai báo biến thông dụng: #define
Nghĩa của từ “define” là định nghĩa, hàm #define có tác dụng định nghĩa, haycòn gọi là gán, tức là gán một chân, một ngõ ra nào đó với 1 cái tên
Ví dụ: #define led 13
Chú ý: sau #define thì không có dấu “,” (dấy phẩy)
Khai báo các kiểu biến khác như: int (kiểu số nguyên), float,…
Phần 2: Thiết lập (void setup())
Phần này dùng để thiết lập các tốc độ truyền dữ liệu, kiểu chân là chân ra hay chân vào Trong đó:
Serial.begin(9600); Dùng để truyền dữ liệu từ board
Arduino lên máy tính
pinMode(biến, kiểu và hoặc ra) Dùng để xác định kiểu chân là đầu vào
hay đầu raVí dụ: pinMode(ChanDO, INPUT);
Phần 3: Vòng lặp
Dùng để viết các lệnh trong chương trình để mạch Arduino thực hiện cácnhiệm vụ mà chúng ta mong muốn, thường bắt đầu bằng:
void loop() {
…………
}
Bảng 2 Một số ký hiệu và câu lệnh thường gặp
Ký hiệu, câu lệnh Ý nghĩa
Trang 18Dấu // dùng để giải thích, khi nội dung giải thích nằm trên 1 dòng, khi kiểm tra chương trình thì phần kiểm tra sẽ bỏ qua phần này, không kiểm tra
#define biến chân Define nghĩa là định nghĩa, xác định Câu lệnh này nhằm
gán tên 1 biến vào 1 chân nào đó Ví dụ #define led 13
digitalWrite(chân,
trạng thái);
Dùng để tắt, mở 1 chân ra Cú pháp của nó là
digitalWrite(chân,trạng thái chân); Ở đây trạng thái châncó thể là HIGH hoặc LOW
Ví dụ: digital(led,HIGH); hoặc digital(led,LOW);
Chú ý dấu chấm phẩy đằng sau câu lệnh
analogWrite(chân,
giá trị);
Có ý nghĩa dùng để băm xung (PWM), thường dùng để điều khiển tốc độ động cơ, độ sáng led,
digitalRead(chân); Read nghĩa là đọc, lệnh này dùng để đọc giá trị digital tại
chân muốn đọc
analogRead(chân); Read nghĩa là đọc, lệnh này dùng để đọc giá trị analog
tại chân muốn đọc
delay(thời gian);
Delay nghĩa là chờ, trì hoãn, duy trì Lệnh này dùng để duy trì trạng thái đang thực hiện chờ một thời gian Thờigian ở đây được tính bằng mili giây, 1 giây bằng 1 ngàn mili giây
if() {Các câu lệnh}
else (){Các câu
digitalWrite(Led,HIGH);
delay(1000);
} else nghĩa là ngược lạiSerial.print() In ra màn hình máy tính, lệnh này in không xuống dòng
Trang 19Serial.println() In ra màn hình máy tính, in xong xuống dòng, giá trị tiếp
theo sẽ được in ở dòng kế tiếp
2.3 GIỚI THIỆU VỀ ARDUINO NANO
Arduino Nano là một bảng vi điều khiển thân thiện, nhỏ gọn, đầyđủ Arduino Nano nặng khoảng 7g với kích thước từ 1,8cm - 4,5cm Bài viếtnày trình bày về các thông số kỹ thuật quan trọng, nhất là sơ đồ chân và chứcnăng của mỗi chân trong bảng Arduino Nano
Arduino Nano có chức năng tương tự như Arduino Duemilanovenhưng khác nhau về dạng mạch Nano được tích hợp vi điều khiểnATmega328P, giống như Arduino UNO Sự khác biệt chính giữa chúng làbảng UNO có dạng PDIP (Plastic Dual-In-line Package) với 30 chân còn Nanocó sẵn trong TQFP (plastic quad flat pack) với 32 chân Trong khi UNO có 6cổng ADC thì Nano có 8 cổng ADC Bảng Nano không có giắc nguồn DC nhưcác bo mạch Arduino khác, mà thay vào đó có cổng mini-USB Cổng này đượcsử dụng cho cả việc lập trình và bộ giám sát nối tiếp Tính năng hấp dẫn củaarduino Nano là nó sẽ chọn công xuất lớn nhất với hiệu điện thế của nó
Bảng 3 Đặc điểm kỹ thuật Arduino Nano
Arduino Nano Thông số kỹ thuật
Bộ nhớ Flash 32 KB of which 2 KB used by Bootloader
Trang 20Điện áp ngõ vào (7 – 12) Volts
Vi điều khiển ATmega328PĐiện áp hoạt động 5V
Kích thước bo mạch 18 x 45 mm
Hì nh 9 Sơ đồ chân Arduino Nano
Bảng 4 Chức năng các chân Arduino Nano
Hình 8 Arduino Nano
Trang 21Thứ tự
1 D1 / TX I / O Ngõ vào/ra số Chân TX-truyền dữ
liệu
2 D0 / RX I / O Ngõ vào/ra số Chân Rx-nhận dữ
liệu
3 RESET Đầu vào Chân reset, hoạt động ở mức thấp
17 3V3 Đầu ra Đầu ra 3.3V (từ FTDI)
18 AREF Đầu vào Tham chiếu ADC
19 A0 Đầu vào Kênh đầu vào tương tự kênh 0
20 A1 Đầu vào Kênh đầu vào tương tự kênh 1
21 A2 Đầu vào Kênh đầu vào tương tự kênh 2
22 A3 Đầu vào Kênh đầu vào tương tự kênh 3
23 A4 Đầu vào Kênh đầu vào tương tự kênh 4
24 A5 Đầu vào Kênh đầu vào tương tự kênh 5
25 A6 Đầu vào Kênh đầu vào tương tự kênh 6
26 A7 Đầu vào Kênh đầu vào tương tự kênh 7
27 +5V Đầu ra hoặc đầu
vào
Đầu ra + 5V (từ bộ điều chỉnh On board) hoặc + 5V (đầu vào từ nguồn điện bên ngoài)
28 RESET Đầu vào Chân đặt lại, hoạt động ở mức thấp
29 GND Nguồn Chân nối mass
30 VIN Nguồn Chân nối với nguồn vào
Trang 22Hì nh 10 ICSP
Bảng 5 Chân ICSP
Tên pin Arduino Nano
MISO Đầu vào hoặc đầu ra Master In Slave Out
MOSI Đầu ra hoặc đầu vào Master In Slave InRST Đầu vào Đặt lại, Hoạt động ở mức
thấp
Các chân: 1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 và 16 Như đã đề cập trướcđó, Arduino Nano có 14 ngõ vào/ra digital Các chân làm việc với điện áptối đa là 5V Mỗi chân có thể cung cấp hoặc nhận dòng điện 40mA và cóđiện trở kéo lên khoảng 20-50kΩ Các chân có thể được sử dụng làm đầu