CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ĐỀ TÀI.1 Module ARDUINO MEGA 2560 1.1 Sơ Lược về ARDUINO MEGA 2560 Arduino Mega 2560 là phiên bản nâng cấp của Arduino Mega hay còn gọi là Arduino Mega 1280. Sự khác biệt lớn nhất với Arduino Mega 1280 chính là chip nhân. Ở Arduino Mega 1280 sử dụng chip ATmega1280 với flash memory 128KB, SRAM 8KB và EEPROM 4 KB. Còn đây là Arduino Mega 2560 phiên bản hiện đang được sử dụng rộng rãi và ứng dụng nhiều hơn.
Với chip ATmega2560 có bộ nhớ flash memory 256 KB, 8KB cho bộ nhớ SRAM, 4 KB cho bộ nhớ EEPROM. Giúp cho người dùng thêm khả năng viết những chương trình phức tạp và điều khiển các thiết bị lớn hơn như máy in 3D, điều khiển robot. Arduino Mega R3 là sản phẩm được phát triển trên con chip ATmega2560 được phát triển dựa trên dòng mạch Mega là dòng mạch được cải tiến so với Arduino Uno( 54 chân digital IO và 16 chân analog IO). Đặc biệt bộ nhớ flash của MEGA được tăng lên một cách đáng kể, gấp 4 lần so với bảng mạch Arduino Uno R3.
Việc được trang 3 bị timer và 6 cổng interrupt khiến Arduino Mega R3 có thể xử lý song song nhiều luồng dữ liệu số cũng như tương tự. Arduino Mega 2560 R3 tương thích với tất cả Shield của Arduino Uno. Như các Shield sử dụng để điều khiển motor, kết nối wifi hay kết nối với các thiết bị điện tử trong nhà. KHCN-BM11-QT1-QA1 13 Hình 2.1 Arduino MEGA 2560 • Vì đây là một bo mạch được tích hợp nhiều tính năng nổi bật.
Tính năng đầu tiên là thiết kế hệ thống I / O lớn với 16 bộ chuyển đổi tương tự và 54 bộ chuyển đổi digital hỗ trợ UART và các chế độ giao tiếp khác. Thứ hai, Arduino Mega 2560 có sẵn RTC và các tính năng khác như bộ so sánh, timer, ngắt để điều khiển hoạt động, tiết kiệm điện năng và tốc độ nhanh hơn với xung thạch anh16 Mhz. • Các tính năng khác bao gồm hỗ trợ JTAG để lập trình, gỡ lỗi và xử lý sự cố. Với bộ nhớ FLASH lớn và SRAM, bo này có thể xử lý chương trình hệ thống lớn một KHCN-BM11-QT1-QA1 14 cách dễ dàng.
Nó cũng tương thích với các loại bo mạch khác nhau như tín hiệu mức cao (5V) hoặc tín hiệu mức thấp (3.3V) với chân nạp I / O. • Brownout và watchdog giúp hệ thống đáng tin cậy và mạnh mẽ hơn. Nó hỗ trợ ICSP cũng như lập trình vi điều khiển USB với PC. • Arduino Mega 2560 là một sự thay thế của Arduino Mega cũ.
Nó thường được sử dụng cho các dự án rất phức tạp. • Đối với những ai quan tâm tới Matlab thì Arduino Mega 2560 cũng là một sự chọn lựa tuyệt vời. Vì nó còn được tích hợp sẵn thư viện dành cho MatLab. Với viêc kết hợp giữa Matlab và Arduino là một sự kết hợp thú vị.
• Arduino Mega 2560 có thể sử dụng hầu hết các shiled dành cho các mạch Arduino Uno hay hoặc các mạch trước đây như Duemilanove hay Diecimila với cách cài đặt và nối chân tương tự như Arduino Uno. • Hiện nay có một số shiled hỗ trợ cho Arduino Mega rất nhiều như: Hình 2.2 Mạch điều khiển máy in 3D RAMPS 1.4 KHCN-BM11-QT1-QA1 15 Hình 2.3 Arduino Shield Mega Proto board mạch mở rộng cho Arduino Mega 2560 1.2 MỘT VÀI THÔNG SỐ CỦA ARDUINO MEGA2560 Chi tiết sản phẩm Hình 2.4 Chi tiết Arduino Mega 2560 KHCN-BM11-QT1-QA1 16 Arduino Mega 2560 là một vi điều khiển hoạt động dựa trên chip ATmega2560. Bao gồm: 54 chân digital (trong đó có 15 chân có thể được sủ dụng như những chân PWM là từ chân số 2 → 13 và chân 44 45 46). ─ 6 ngắt ngoài: • chân 2 (interrupt 0), • chân 3 (interrupt 1) • chân 18 (interrupt 5) • chân 19 (interrupt 4), • chân 20 (interrupt 3), • chân 21 (interrupt 2).
• 16 chân vào analog (từ A0 đến A15) • 4 cổng Serial giao tiếp với phần cứng: CỔNG SERIAL CHÂN RX CHÂN TX Cổng 0 0 1 Cổng 1 19 18 Cổng 2 17 16 Cổng 3 15 14 ▪ 1 thạch anh với tần số dao động 16 MHz. • 1 cổng kết nối USB. • 1 jack cắm điện. KHCN-BM11-QT1-QA1 17 Hình 2.5 Thông số kỹ thuật của Arduino Mega 2560 Arduino Mega Tính năng, đặc điểm Chip xử lý AVR ATmega 2560 (8bit) Điện áp hoạt động 5V Điện áp vào (đề nghị) 7V-15V Điện áp vào (giới hạn) 6V-20V Cường độ dòng điện trên mỗi 50 mA 3.3V pin Cường độ dòng điện trên mỗi 20 mA I/O pin Flash Memory 256 KB SRAM 8 KB EEPROM 4 KB Clock Speed 16 MHz USB (Lập trình với ATmega 8), ICSP (lập Giao tiếp trình), SPI, I2C và USART Bộ Timer 2 (8bit) + 4 (16bit) = 6 Timer USART 4 KHCN-BM11-QT1-QA1 18 1.3 Nguồn Cấp Arduino Mega 2560 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ạn là 6-20V.
Thường thì cấp nguồn bằng pin vuông 9V là hợp lí nhất nế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 Mega 2560. - Các chân nguồn • GND (Ground): cực âm của nguồn điện cấp cho Arduino Mega 2560 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ững châ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à 500mA. Dòng tối đa cho phép ở chân này là 50mA. • Vin (Voltage Input): để cấp nguồn ngoài cho Arduino Mega 2560, 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ân GND. • 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Ω.
- Bộ Nhớ Vi điều khiển Arrduino Mega 2560 tiêu chuẩn cung cấp cho người dùng: • 256 KB 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ường thì sẽ có khoảng 8KB trong số này sẽ được dùng cho bootloader • 8 KB 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ến thì càng cần nhiều bộ nhớ RAM. Tuy vậy, thực sự thì cũng hiếm khi nà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. • 4KB EEPROM (Electrically Eraseble Programmable Read Only Memory): đâ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ông phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM.4 Lập trình cho Arduino KHCN-BM11-QT1-QA1 19 Arduino Mega2560 sử dụng chương trình Arduino IDE để lập trình, và ngôn ngữ lập trình cho Arduino cũng tên là Arduino (được xây dựng trên ngôn ngữ C).6 Giao diện lập trình Tuy nhiên, nếu muốn lập trình cho Arduino Mega2560, bạn cần phải thực hiện một số thao tác trên máy tính. Sau đây, tôi sẽ hướng dẫn bạn từng bước để có thể lập trình cho Arduino Mega2560 Đầu tiên, bạn cần cài Driver của Arduino Nano và tải về bản Arduino IDE mới nhất cho máy tính, các bước cài đặt hoàn toàn tương tự như Arduino Uno R3, bạn có thể tham khảo. Sau khi cài đặt, bạn sẽ thấy một thông báo dạng "Cổng COMx đã được cài đặt thành công" (chữ "x" này sẽ được thay bằng một số nguyên dương, bạn hãy nhớ lấy số này, vì sau này bạn sẽ dùng cổng COMx này để lập trình cho Arduino Mega2560).
KHCN-BM11-QT1-QA1 20 Mạch Arduino là dòng mạch Arduino phổ biến, khi mới bắt đầu làm quen, lập trình với Arduino thì mạch Arduino thường nói tới chính là dòng Arduino Nano. Hiện dòng mạch này đã phát triển tới thế hệ thứ 3. Arduino là dòng cơ bản, linh hoạt, thường được sử dụng cho người mới bắt đầu. Bạn có thể sử dụng các dòng Arduino khác như: Arduino Mega, Arduino Nano, Arduino Micro… Nhưng với những ứng dụng cơ bản thì mạch Arduino Nano là lựa chọn phù hợp nhất.7 Chọn Board Arduino KHCN-BM11-QT1-QA1 21 Hình 2.8 Chọn cổng Arduino Sau đó bạn cần lại loại board và cổng Serial mới như hình sau là được.
Lưu ý, cổng COM trong hình dưới đây là chỉ là hình minh họa trong máy tính của mình thôi nhé. Ngôn ngữ Arduino bắt nguồn từ C/C++ phổ biến hiện nay do đó rất dễ học, dễ hiểu. Nếu học tốt chương trình Tin học 11 thì việc lập trình Arduino sẽ rất dễ thở đối với bạn.5 ỨNG DỤNG THỰC TẾ Với sự tiện ích vô cùng lớn của Arduino Mega 2560, mạnh mẽ với bộ nhớ flash lớn, số chân nhiều hơn và cùng số lượng shield hỗ trợ không hề nhỏ. Arduino Mega đã được đưa vào các dự án lớn hơn như xử lý thông tin nhiều luồng, điều khiền nhiều động cơ, xe điều khiển từ xa, LED cube hay còn mở rộng cánh cửa với thế giới IoT.
KHCN-BM11-QT1-QA1 22 Hình 2.9 Mở rộng cánh cửa với IOT 1. MỘT VÀI LƯU Ý KHI SỬ DỤNG ARDUINO MEGA • Khi bắt đầu sử dụng Arduino Mega 2560, bạn nên chú ý lựa chọn lại board. Bằng cách vào Tool → Board → Arduino Mega 2560. Nhằm tránh trước đó bạn đã sử dụng loại Arduino khác cổng vẫn còn nhận là board cũ nên khi build bạn sẽ gặp lỗi.
• Khi sử dụng chân RX, TX cuả Arduino, các bạn nên nhớ rút dây cắm tại 2 chân này ra rồi hãy bắt đầu upload. Sau đó hãy cắm lại bình thường và sử dụng để tránh gặp phải lỗi. • Không được phép cắm trực tiếp chân GND vào chân nguồn 5V, có thể dẫn tới hỏng mạch. MODULE L298N KHCN-BM11-QT1-QA1 23 Hình 2.11 Sơ đồ mạch động lực module L298N KHCN-BM11-QT1-QA1 24 1.1 Thông số kỹ thuật • Driver: L298N tích hợp hai mạch cầu H.
• Điện áp điều khiển: +5 V ~ +12 V • Dòng tối đa cho mỗi cầu H là: 2A (=>2A cho mỗi motor) • Điện áp của tín hiệu điều khiển: +5 V ~ +7 V • Dòng của tín hiệu điều khiển: 0 ~ 36mA (Arduino có thể chơi đến 40mA nên khỏe re nhé các bạn) • Công suất hao phí: 20W (khi nhiệt độ T = 75 ℃) • Nhiệt độ bảo quản: -25 ℃ ~ +130 ℃ BLOCK DIAGAM PIN CONNECTIONS KHCN-BM11-QT1-QA1 25 Output A: nối với động cơ A. bạn chú ý chân +, -. Nếu bạn nối ngược thì động cơ sẽ chạy ngược. Và chú ý nếu nối động cơ bước, phải đấu nối các pha cho phù hợp.
Board này gồm 2 phần điều khiển động cơ. Và có thể điều khiển cho 1 động cơ bước 6 dây hoặc 4 dây. 2 Jump A enable và B enable, để như hình, đừng rút ra bạn nhé! KHCN-BM11-QT1-QA1 26 Gồm có 4 chân Input.