Đặt vấn đề, dẫn nhập lý do chọn đề tài, trình bày mục tiêu, nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án. Chương 2: Cơ sở lý thuyết Trình bày về các lý thuyết có liên quan về việc lập trình cho hệ thống, các linh kiện, phần cứng sử dụng để thực hiện đề tài. Chương 3: Tính toán và thiết kế Trình bày về thiết kế và các tính toán xây dựng hệ thống nhƣ thiết kế sơ đồ khối hệ thống, sơ đồ nguyên lý toàn mạch, tính toán thiết kế mạch, tiến hành xây dựng hệ thống thực tế, kiểm tra và tinh chỉnh. Chương 4: Kết quả thực hiện Trình bày về những kết quả mà nhóm đã đạt đƣợc sau khi thực hiện đề tài, về hệ thống mà nhóm thực hiện, đánh giá mức độ hoàn thiện, sự vận hành của hệ thống.
Chương 5: Kết luận và hướng phát triển Trình bày về những kết quả mà nhóm đã đạt đƣợc sau khi thực hiện đề tài, những hạn chế, từ đó rút ra ết luận và hƣớng phát triển để giải quyết các vấn đề còn tồn đọng để đồ án hoàn thiện hơn 3 do an CHƢƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ ARDUINO Hình 2. Các loại Board Arduino 2. Giới thiệu Arduino là một bo mạch vi xử lý đƣợc dùng để lập trình, tƣơng tác với các thiết bị phần cứng nhƣ: c m iến, động cơ, đèn hoặc các thiết bị khác. Đặc điểm nổi bật của arduino là môi trƣờng phát triển ứng dụng rất dễ sử dụng, với ngôn ngữ lập trình có thể học một cách nhanh chóng ngay c với ngƣời ít am hiểu về điện tử và lập trình cũng có thể sử dụng một cách dễ dàng.
Arduino có mức giá thấp, phù hợp với nhu cầu ngƣời dùng, có tính chất nguồn mở và cộng đồng ngƣời dùng đông đ o. Với lợi thế đến từ giá thành cũng nhƣ lợi thế về cộng đồng 5 do an ngƣời dùng, arduino đang ngày càng trở nên phổ biến hơn, ngƣời dùng arduino tr i rộng từ học sinh phổ thông đến sinh viên đại học. Board mạch arduino đƣợc sử dụng để thực hiện nhiều ứng dụng nhƣ: điều khiển robot, điều khiển và giám sát nhiệt độ độ ẩm phòng thí nghiệm, điều khiển xe mô hình. Phần cứng arduino Phần cứng arduino bao gồm một board mạch nguồn mở đƣợc thiết kế trên nền t ng là vi xử lý AVR Atmel 8-bit, hoặc ARM Atmel 32-bit.
Board arduino sẽ đƣa ra hầu hết các chân I/O của vi điều khiển để sử dụng cho những mạch ngoài. Những mẫu hiện tại thƣờng đƣợc trang bị gồm 1 cổng giao tiếp USB, nhiều chân đầu vào analog và chân I/O kỹ thuật số tƣơng thích với nhiều board mở rộng khác nhau. Điều này giúp ngƣời dùng dễ dàng lập trình và có thể mở rộng với các mạch khác, các module thêm vào có thể dễ dàng chuyển đổi, đƣợc gọi là shield. Một số shield kết nối với board arduino trực tiếp thông qua các chân khác nhau, ngoài ra còn một số shield đƣợc định địa chỉ thông qua serial bus I2C, ngƣời dùng có thể kết nối nhiều shield với arduino dƣới dạng song song.
Arduino thƣờng sử dụng các dòng chip MegaAVR, đặc biệt là ATMega8, ATMega168, ATMega328, ATMega1280, và ATMega2560. Theo nguyên tắc, khi sử dụng phần mềm arduino, tất c các oard đƣợc lập trình thông qua một kết nối RS-232, nhƣng cách thức thực hiện lại tùy thuộc vào đời phần cứng. Các board serial arduino có chứa một mạch chuyển đổi giữa RS- 232 sang TTL. Các board arduino hiện tại đƣợc lập trình thông qua cổng USB, thực hiện thông qua chip chuyển đổi USB-to-serial nhƣ là FTDI FT232.
Arduino mega 2560 Arduino mega 2560 sử dụng chip ATmega2560, có 54 chân digital I/O (trong đó có 15 chân điều chế độ rộng xung PWM), 16 chân đầu vào tƣơng tự (Analog Inputs), 4 cổng UARTs (cổng nối tiếp phần cứng), một thạch anh dao động 16 MHz, kết nối USB, một jack cắm điệnđể cấp nguồn, một đầu ICSP và một nút reset. Arduino mega 2560 chứa tất c mọi thứ cần thiết để hỗ trợ các vi điều khiển, ngƣời dùng chỉ đơn gi n là kết nối nó với một máy tính bằng cáp USB hoặc với một bộ chuyển đổi điện AC-DC hoặc có thể sử dụng pin. 6 do an Board có kh năng tự động reset nhờ phần mềm thay vì đòi hỏi ph i ấn nút reset trƣớc khi t i lên. Phần mềm arduino sử dụng kh năng này để cho phép nạp code lên chỉ cần nhấn vào nút Upload trong Arduino IDE.
Điều này có nghĩa rằng bộ nạp khởi động có thể có một thời gian chờ ngắn hơn. Arduino mega 2560 có thể b o vệ cổng USB của máy tính khi x y ra hiện tƣợng quá dòng. Mặc dù hầu hết các máy tính đều có kh năng b o vệ nội bộ, các cầu chì còn giúp tạo ra thêm một lớp b o vệ. Nếu dòng cao hơn 500mA đƣợc áp dụng cho các cổng USB, cầu chì sẽ tự động phá vỡ các kết nối cho đến khi ngắt hoặc hiện tƣợng quá t i đƣợc khắc phục.
Thông số kỹ thuật arduino mega 2560 [1]: - Chip vi điều khiển: ATmega2560. - Điện áp cấp nguồn: 5V. - Điện áp đầu vào (kiến nghị): 7-12V. - Điện áp đầu vào (giới hạn): 6-20V.
- Số chân Digital I/O: 54 (có 15 chân điều chế độ rộng xung PWM). - Số chân Analog (Input): 16. - Dòng DC trên chân I/O: 40 mA. - Dòng DC cho chân 3.
- Flash Memory: 256KB trong đó có 8KB đƣợc sử dụng bởi bộ nạp khởi động (bootloader). - Xung nhịp: 16 MH. - Chiều dài: 101,52 mm. - Chiều rộng: 53,3 mm.
Sơ đồ các khối kết nối của arduino mega 2560 Trong hình 2.2 ên dƣới là hình nh sơ đồ các khối kết nối trên Arduino mega 2560: 7 do an Hình 2. Vị trí các khối kết nối trên arduino mega 2560 USB (1): Arduino mega 2560 sử dụng cáp USB để giao tiếp với máy tính. Bằng việc sử dụng cáp USB, ngƣời dùng có thể upload chƣơng trình cho arduino hoạt động, ngoài ra USB còn có thể dùng làm nguồn cho arduino. Nguồn (2 và 3): Khi không sử dụng USB làm nguồn thì ngƣời dùng có thể sử dụng nguồn ngoài thông qua jack cắm 2.1mm (cực dƣơng ở giữa) hoặc có thể sử dụng 2 chân Vin và GND để cấp nguồn cho arduino.
Bo mạch hoạt động với nguồn ngoài ở điện áp từ 5 – 20 Volt. Ngƣời dùng có thể cấp một áp lớn hơn tuy nhiên chân 5V sẽ có mức điện áp lớn hơn 5 Volt. Và nếu sử dụng nguồn lớn hơn 12 Volt thì sẽ có hiện tƣợng nóng và dễ dẫn đến làm hỏng bo mạch. Chân 5V và chân 3.3V (Output voltage): các chân này dùng để lấy nguồn ra từ nguồn mà chúng ta đã cung cấp cho arduino để cấp cho các thiết bị giao tiếp khác.
Lƣu ý: không đƣợc cấp nguồn vào các chân này vì sẽ làm hỏng arduino. Ngõ vào tương tự (4): Arduino mega 2560 có 16 ngõ vào tƣơng tự (các chân từ A0 đến A15), mỗi ngõ vào này đều có độ phân gi i 10 bit (1024 giá trị). Mặc định đo từ 0 đến 5V, 8 do an có thể thiết lập giá trị bằng cách điều chỉnh chân AREF và sử dụng hàm Analog Referency() để chuyển đổi. Ngõ vào số (5 và 6): Mỗi một chân trong 54 chân số của oard đều có thể sử dụng nhƣ một ngõ vào hoặc ngõ ra.
Mỗi chân có thể cung cấp hoặc nhận đƣợc tối đa 40 mA và có một điện trở kéo lên bên trong 20-50 kOhms. Ngoài ra, một số chân có chức năng đặc biệt: - Serial: để truyền và nhận dữ liệu nối tiếp. Gồm các chân: Serial 0: 0 (RX) và 1 (TX); Serial 1: 19 (RX) và 18 (TX); Serial 2: 17 (RX) và 16 (TX); Serial 3: 15 (RX) và 14 (TX). - External Interrupt: Các chân này có thể đƣợc cấu hình để kích hoạt ngắt mức thấp, ngắt cạnh lên hoặc xuống.
- PWM: Cung cấp ngõ ra PWM 8 bit. Gồm các chân từ chân 2 đến 13 và 44 đến 46. - SPI: Các chân này hỗ trợ giao tiếp SPI bằng cách sử dụng thƣ viện SPI. - TWI: Hỗ trợ giao tiếp TWI bằng việc sử dụng thƣ viện WIRE.
Nút Retset (7): Đây là nút nhấn để ngƣời dùng có thể thiết lập lại vi điều khiển. Arduino uno r3 Arduino uno r3 là dòng mạch arduino phổ biến, với thiết kế tiêu chuẩn sử dụng vi điều khiển ATmega328 hoặc ATmega168 (bộ nhớ flash 16KB) đối với loại có giá thành thấp hơn. Arduino uno r3 sử dụng thạch anh có chu kì dao động là 16 MHz, có 14 pin (ngõ) ra/vào đƣợc đánh số từ 0 tới 13 trong đó có 6 pin PWM, ngoài ra còn có thêm 6 pin nhận tín hiệu analog đƣợc đánh kí hiệu từ A0 - A5, 6 pin này cũng có thể sử dụng đƣợc nhƣ các pin ra/vào ình thƣờng. 9 do an Trên board arduino uno r3 còn có 1 nút reset, 1 ngõ kết nối với máy tính qua cổng USB và 1 ngõ cấp nguồn sử dụng jack 2.1mm lấy năng lƣợng trực tiếp từ AC- DC adapter hay thông qua ắc-quy nguồn.
Thông số kỹ thuật của arduino uno r3 [2]: - Vi điều khiển: ATmega328P. - Điện áp hoạt động: 5V. - Điện áp vào khuyên dùng: 7-12V. - Điện áp vào giới hạn: 6-20V.
- Chân PWM Ddigital I/O: 6. - Cƣờng độ dòng điện trên mỗi chân I/O: 20 mA. - Cƣờng độ dòng điện trên mỗi chân 3. - Flash Memory: 32 KB (đối với ATmega328P).
- SRAM: 2 KB (ATmega328P) - EEPROM: 1 KB (ATmega328P) - Tốc độ: 16 MHz Sơ đồ các khối kết nối của arduino uno r3: Hình 2.3 Vị trí các khối kết nối trên arduino uno r3 10 do an Các khối kết nối trên arduino uno r3 cũng có chức năng tƣơng tự nhƣ trên arduino mega 2560 đã trình ày ở trên, bao gồm: 1. Ngõ vào số. Ngõ vào tƣơng tự. Nguồn vào và ra.
Phần mềm lập trình arduino IDE. Giao diện phần mềm lập trình arduino IDE bao gồm 3 phần chính nhƣ hình dƣới đây: Hình 2.4 Giao diện phần mềm lập trình arduino IDE 1. Vùng lệnh: Bao gồm các nút lệnh (File, Edit, Sketch, Tools, Help). Phía dƣới là các biểu tƣợng cho phép sử dụng nhanh các chức năng thƣờng 11 do an dùng.
Chức năng lần lƣợt của các biểu tƣợng đƣợc trình bày trong hình dƣới đây: Hình 2.5 Chức năng các iểu tƣợng trong arduino IDE 2. Vùng viết chƣơng trình: Là nơi đế ngƣời dùng viết chƣơng trình, phần mềm arduino IDE sử dụng ngôn ngữ C/C++ để lập trình cho arduino. Vùng thông báo: Những thông báo từ IDE sẽ đƣợc hiển thị tại vùng thông báo. Ở dƣới cùng bên ph i hiển thị loại board arduino và cổng COM đang đƣợc sử dụng.