1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG

36 68 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 2,49 MB

Cấu trúc

  • CHƯƠNG 1. GIỚI THIỆU PHẦN MỀM VISUAL STUDIO (7)
    • 1.1. VISUAL STUDIO LÀ GÌ? (7)
    • 1.2. CÁC TÍNH NĂNG CỦA PHẦN MỀM VISUAL STUDIO (7)
  • CHƯƠNG 2. TỔNG QUAN VỀ LINH KIỆN (9)
    • 2.1. GIỚI THIỆU ARDUINO (9)
      • 2.1.1. Arduino là gì? (9)
      • 2.1.2. Cấu tạo của Arduino (9)
      • 2.1.3. Thông số cơ bản của Arduino Uno R3 (10)
      • 2.1.4. Các loại Board Arduino phổ biến (10)
      • 2.1.5. Ứng dụng Arduino (11)
    • 2.2. PHẦN MỀM LẬP TRÌNH ARDUINO IDE (12)
      • 2.2.1. Giao diện phần mềm IDE (13)
      • 2.2.2. Cấu trúc một chương trình trong phần mềm IDE (16)
    • 2.3. GIỚI THIỆU VỀ LCD I2C (18)
      • 2.3.1. Giới thiệu LCD 16x2 (18)
      • 2.3.2. Thông số kỹ thuật LCD 16x2 (19)
      • 2.3.3. Module LCD I2C (20)
    • 2.4. GIỚI THIỆU IC THỜI GIAN THỰC DS1307 (22)
    • 2.5. GIAO TIẾP ARDUINO VỚI IC THỜI GIAN THỰC DS1307 (24)
    • 2.6. GIAO TIẾP ARDUINO VỚI CẢM BIẾN NHIỆT ĐỘ, ĐỘ ẨM DHT11 (24)
    • 2.7. LED ĐƠN (25)
    • 2.8. GIỚI THIỆU VỀ ĐỘNG CƠ DC (25)
    • 2.9. GIỚI THIỆU VỀ ĐỘNG CƠ BƯỚC SERVO (25)
  • CHƯƠNG 3. THIẾT KẾ – LƯU ĐỒ THUẬT TOÁN (27)
    • 3.1. THIẾT KẾ (27)
      • 3.1.1. Sơ đồ nguyên lý mô phỏng Proteus (27)
      • 3.1.2. Giao diện điều khiển LED – MOTOR – SERVO (27)
      • 3.1.3. Giao diện đọc nhiệt độ, độ ẩm – Điều khiển LCD (28)
    • 3.2. LƯU ĐỒ THUẬT TOÁN (28)
      • 3.2.1. Lưu đồ thuật toán điều khiển LED (28)
      • 3.2.2. Lưu đồ thuật toán điều khiển MOTOR (29)
      • 3.2.3. Lưu đồ thuật toán điều khiển SERVO (30)
      • 3.2.4. Lưu đồ thuật toán đọc nhiệt độ – độ ẩm (31)
  • CHƯƠNG 4. KẾT QUẢ THỰC NGHIỆM – KẾT LUẬN (32)
    • 4.1. KẾT QUẢ (32)
    • 4.2. KẾT LUẬN .......................................................................................................................... 29 PHỤ LỤC (34)

Nội dung

MỤC LỤC Trang DANH MỤC HÌNH ẢNH DANH MỤC BẢNG BIỂU LỜI NÓI ĐẦU.........................................................................................................1 CHƯƠNG 1. GIỚI THIỆU PHẦN MỀM VISUAL STUDIO.....................................2 1.1. VISUAL STUDIO LÀ GÌ? .......................................................................2 1.2. CÁC TÍNH NĂNG CỦA PHẦN MỀM VISUAL STUDIO..........................2 CHƯƠNG 2. TỔNG QUAN VỀ LINH KIỆN............................................................4 2.1. GIỚI THIỆU ARDUINO..........................................................................4 2.1.1. Arduino là gì?...............................................................................4 2.1.2. Cấu tạo của Arduino.....................................................................4 2.1.3. Thông số cơ bản của Arduino Uno R3.........................................5 2.1.4. Các loại Board Arduino phổ biến..................................................5 2.1.5. Ứng dụng Arduino .................................................................6 2.2. PHẦN MỀM LẬP TRÌNH ARDUINO IDE .........................................7 2.2.1. Giao diện phần mềm IDE.............................................................8 2.2.2. Cấu trúc một chương trình trong phần mềm IDE........................11 2.3. GIỚI THIỆU VỀ LCD I2C......................................................................13 2.3.1. Giới thiệu LCD 16x2.....................................................................13 2.3.2. Thông số kỹ thuật LCD 16x2........................................................14 2.3.3. Module LCD I2C............................................................................15 2.4. GIỚI THIỆU IC THỜI GIAN THỰC DS1307...........................................17 2.5. GIAO TIẾP ARDUINO VỚI IC THỜI GIAN THỰC DS1307....................19 2.6. GIAO TIẾP ARDUINO VỚI CẢM BIẾN NHIỆT ĐỘ, ĐỘ ẨM DHT11.......19 2.7. LED ĐƠN..................................................................................................20 2.8. GIỚI THIỆU VỀ ĐỘNG CƠ DC................................................................20 2.9. GIỚI THIỆU VỀ ĐỘNG CƠ BƯỚC SERVO..........................................20 CHƯƠNG 3. THIẾT KẾ – LƯU ĐỒ THUẬT TOÁN...................................................22 3.1. THIẾT KẾ..................................................................................................22 3.1.1. Sơ đồ nguyên lý mô phỏng Proteus.................................................22 3.1.2. Giao diện điều khiển LED – MOTOR – SERVO...................................22 3.1.3. Giao diện đọc nhiệt độ, độ ẩm – Điều khiển LCD...................................23 3.2. LƯU ĐỒ THUẬT TOÁN.............................................................................23 3.2.1. Lưu đồ thuật toán điều khiển LED........................................................23 3.2.2. Lưu đồ thuật toán điều khiển MOTOR.................................................24 3.2.3. Lưu đồ thuật toán điều khiển SERVO...................................................25 3.2.4. Lưu đồ thuật toán đọc nhiệt độ – độ ẩm.................................................26 CHƯƠNG 4. KẾT QUẢ THỰC NGHIỆM – KẾT LUẬN........................................................27 4.1. KẾT QUẢ............................................................................................................27 4.2. KẾT LUẬN.........................................................................................................29 PHỤ LỤC DANH MỤC HÌNH ẢNH Hình 1. Visual Studio Hình 2. Cấu tạo của Arduino Uno Hình 3. Minh họa giao diện lập trình Arduino IDE Hình 4. Minh họa vùng Toolbar trên giao diện Arduino IDE Hình 5. Minh họa chọn board Arduino và cổng COM giao tiếp phù hợp Hình 6. Minh họa vùng viết chương trình. Hình 7. Tổng quan quá trình xử lý chương trình Arduino Hình 8. Màn hình LCD 16x2 Hình 9. Module LCD I2C 15 Hình 10. Sơ đồ đấu nối giao tiếp IC2 với LCD 16×2. Hình 11. Module DS1307 Hình 12. Sơ đồ chân DS1307 Hình 13. Sơ đồ nguyên lý DS1307 với Arduino Hình 14. Module DHT11 Hình 15. Minh họa cấu tạo động cơ điện một chiều Hình 16. Minh họa động cơ bước BYJ28 và sơ đồ nguyên lý bên trong động cơ Hình 17. Minh họa sơ đồ nguyên lý mạch Hình 18. Giao diện điều khiển LED – MOTOR – SERVO Hình 19. Giao diện đọc nhiệt độ, độ ẩm – Điều khiển LCD Hình 20. Kết quả thực nghiệm điều khiển LED – MOTOR – SERVO Hình 21. Kết quả thực nghiệm đọc nhiệt độ, độ ẩm – Điều khiển LCD

GIỚI THIỆU PHẦN MỀM VISUAL STUDIO

VISUAL STUDIO LÀ GÌ?

Visual Studio là phần mềm hỗ trợ lập trình website hiệu quả, thuộc sở hữu của Microsoft Được giới thiệu lần đầu vào năm 1997 với tên mã Project Boston, phần mềm này đã được Microsoft tích hợp nhiều công cụ phát triển, tạo thành một sản phẩm hoàn chỉnh và tiện ích cho lập trình viên.

Visual Studio là một hệ thống toàn diện cho phát triển ứng dụng, bao gồm trình chỉnh sửa mã, thiết kế và gỡ lỗi, giúp người dùng dễ dàng viết code, sửa lỗi và chỉnh sửa thiết kế chỉ với một phần mềm Ngoài ra, người dùng còn có thể thiết kế giao diện và trải nghiệm ứng dụng bằng XAML hoặc Blend khi phát triển ứng dụng Xamarin và UWP.

CÁC TÍNH NĂNG CỦA PHẦN MỀM VISUAL STUDIO

Tính đến thời điểm hiện tại, Visual Studio vẫn là phần mềm lập trình hệ thống hàng đầu và chưa có sản phẩm nào có thể thay thế Phần mềm này được đánh giá cao nhờ vào nhiều tính năng hấp dẫn mà nó cung cấp.

Phần mềm lập trình Visual Studio của Microsoft hỗ trợ đa nền tảng, cho phép lập trình viên sử dụng trên Windows, Linux và Mac Điều này mang lại sự tiện lợi tối đa trong quá trình phát triển ứng dụng.

 Đa ngôn ngữ lập trình:

Visual Studio hỗ trợ nhiều ngôn ngữ lập trình như C#, F#, C/C++, HTML, CSS, Visual Basic và JavaScript Nhờ vậy, nó có khả năng phát hiện và thông báo lỗi trong các chương trình một cách dễ dàng.

 Kho tiện ích mở rộng phong phú:

Visual Studio hỗ trợ nhiều ngôn ngữ lập trình đa dạng, nhưng nếu bạn muốn sử dụng ngôn ngữ khác, có thể dễ dàng tải xuống các tiện ích mở rộng Tính năng này hoạt động như một phần độc lập, giúp không làm giảm hiệu suất của phần mềm.

Khi lập trình với Visual Studio, công cụ này sẽ gợi ý cho lập trình viên những tùy chọn thay thế để điều chỉnh đoạn code, giúp tăng tính tiện lợi cho người dùng.

Một tính năng cũng khá hay ho, hỗ trợ cho người lập trình trong trường hợp

Tính năng "nhớ nhớ quên quên" trong bình luận cho phép lập trình viên ghi lại nhận xét, giúp họ dễ dàng theo dõi công việc cần hoàn thành và không bỏ sót bất kỳ công đoạn nào.

TỔNG QUAN VỀ LINH KIỆN

GIỚI THIỆU ARDUINO

Arduino là một bo mạch vi điều khiển được phát triển bởi nhóm giáo sư và sinh viên Ý vào năm 2005, cho phép cảm nhận và điều khiển nhiều đối tượng khác nhau Nó có khả năng thực hiện nhiều nhiệm vụ, từ việc lấy tín hiệu từ cảm biến đến điều khiển đèn, động cơ và các thiết bị khác Hơn nữa, Arduino có thể kết nối với nhiều module bổ sung như module đọc thẻ từ, ethernet shield và sim900A, giúp mở rộng khả năng ứng dụng của nó.

Phần cứng Arduino được xây dựng trên nền tảng vi xử lý AVR Atmel 8bit hoặc ARM Atmel 32-bit, với tổng cộng 6 phiên bản khác nhau Trong số đó, Arduino Uno và Arduino Mega là hai phiên bản phổ biến nhất được sử dụng rộng rãi.

Phần mềm để lập trình cho mạch Arduino là phần mềm IDE

Hình 2 Cấu tạo của Arduino Uno

2.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

2.1.4 Các loại Board Arduino phổ biến

Arduino khác với nhiều board mạch lập trình trước đó ở chỗ không cần phần cứng riêng để nạp mã, chỉ cần cáp USB 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 lập trình trở nên dễ dàng hơn Dưới đây là một số loại Arduino phổ biến.

Arduino Uno là board mạch đơn giản nhất, lý tưởng cho người mới bắt đầu Nó có 14 chân đầu ra số và 6 chân đầu vào, với khả năng phân giải 1024 mức và tốc độ 16MHz Board hoạt động với điện áp từ 7V đến 12V và kích thước 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

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 I/O 30mA

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

 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 là một thiết kế sáng tạo với việc không có chân số cố định, cho phép người dùng tùy chỉnh số chân kết nối trực tiếp, từ đó tiết kiệm không gian hiệu quả Thiết bị này thường có hai loại nguồn 3.3V và 5V để đáp ứng nhu cầu sử dụng đa dạng.

 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à một board mạch không có cổng USB để lập trình, được thiết kế với một chip điều khiển nhỏ gọn Board này kết nối qua COM ảo và có khả năng kết nối với chuột và bàn phím, mang lại sự linh hoạt trong việc phát triển các ứng dụng.

Arduino LilyPad là một công nghệ dệt điện tử có thể đeo được, được phát triển bởi Leah Sang Buechley và thiết kế bởi dòng Lea Leah cùng SparkFun Mỗi board LilyPad được thiết kế độc đáo với các miếng kết nối lớn và mặt sau mịn, cho phép dễ dàng khâu vào quần áo bằng chỉ Arduino này tích hợp I/O, nguồn và các board cảm biến chuyên biệt cho ứng dụng dệt may điện tử.

RedBoard Arduino là một bo mạch dễ sử dụng, có thể lập trình thông qua cáp USB Mini-B bằng phần mềm Arduino IDE Nó tương thích với Windows 8 mà không cần thay đổi cài đặt bảo mật Với thiết kế phẳng ở mặt sau và sử dụng chip USB hoặc FTDI, RedBoard rất tiện lợi cho các dự án thiết kế Để bắt đầu, chỉ cần cắm bo mạch, chọn tùy chọn Arduino UNO trong menu, và bạn đã sẵn sàng tải lên chương trình Bạn có thể điều khiển RedBoard qua cáp USB thông qua giắc cắm thùng.

Ngoài ra, còn có thể kể đến: Arduino Diecimila, Arduino Duemilanove, Arduino Due, v.v

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

Sử dụng Arduino, chúng ta có thể tạo ra các trò chơi tương tác hấp dẫn như Tetrix, phá gạch, Mario và nhiều game sáng tạo khác bằng cách kết nối với Joystick và màn hình.

Arduino là một giải pháp hiệu quả để điều khiển thiết bị ánh sáng cảm biến, đóng vai trò quan trọng trong hệ thống đèn giao thông Các hiệu ứng đèn nháy được lập trình giúp làm nổi bật các biển quảng cáo, tạo sự thu hút cho người xem.

 Arduino cũng được ứng dụng trong máy in 3D và nhiều ứng dụng khác tùy thuộc vào khả năng sáng tạo của người sử dụng.

PHẦN MỀM LẬP TRÌNH ARDUINO IDE

Arduino cung cấp một môi trường lập trình tích hợp mã nguồn mở, cho phép người dùng viết và tải mã lên bo mạch Arduino Đây là một nền tảng đa dạng, hỗ trợ nhiều loại bo mạch cùng với nhiều tính năng độc đáo Ứng dụng lập trình này có giao diện thân thiện, phù hợp cho cả người dùng chuyên nghiệp lẫn không chuyên.

Arduino sử dụng môi trường lập trình viết bằng Java, phổ biến cho các bo mạch Arduino và Genuido, được nhiều công ty trên toàn cầu áp dụng để lập trình thiết bị Java 2 Platform Standard Edition là một IDE hỗ trợ Java và hiện đang được sử dụng rộng rãi.

Arduino là một môi trường phát triển tích hợp đa nền tảng, hỗ trợ nhiều loại bo mạch như Arduino Uno, Nano, Mega, Esplora, Ethernet, Fio, Pro, Pro Mini và LilyPad Arduino Phần mềm này cũng rất phù hợp cho lập trình viên C, giúp họ dễ dàng phát triển và triển khai các dự án.

C++ là sự lựa chọn lý tưởng thay thế cho các IDE khác Đối với những ai muốn học lập trình PHP, PHP Designer 2007 Personal là một lựa chọn xuất sắc Phần mềm này cung cấp các giải pháp hiệu quả cho việc thiết kế website.

Để bắt đầu lập trình với Arduino, bạn cần truy cập trang web [Arduino Software](http://arduino.cc/en/Main/Software) và tải về phiên bản Arduino IDE phù hợp với hệ điều hành của mình, bao gồm Windows, Mac OS hoặc Linux Đối với Windows, bạn có thể chọn giữa bản cài đặt (.exe) hoặc bản Zip; với bản Zip, bạn chỉ cần giải nén và chạy mà không cần cài đặt Arduino IDE là một ứng dụng đa nền tảng được phát triển bằng Java, giúp người dùng dễ dàng lập trình và phát triển dự án.

Dưới đây là 8 công cụ hữu ích cho các nhà phát triển và những người mới bắt đầu trong lĩnh vực phát triển phần mềm, bao gồm trình biên tập mã nguồn với các tính năng như đánh dấu cú pháp, kiểm tra dấu ngoặc tự động và canh lề tự động Ngoài ra, công cụ này còn hỗ trợ biên dịch và tải chương trình lên bo mạch Một chương trình hoặc mã nguồn viết cho Arduino được gọi là 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ú

2.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 phát triển bằng ngôn ngữ C hoặc C++, sử dụng thư viện phần mềm "Wiring" để đơn giản hóa các thao tác input/output Người dùng chỉ cần định nghĩa hai hàm để tạo ra một chương trình vòng thực thi (cyclic executive) có khả năng hoạt động hiệu quả.

Arduino IDE là nơi để soạn thảo chương trình, kiểm tra lỗi và nạp chươ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ạp chươ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

Cá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ở Serial Monitor để hiển thị dữ liệu khi trong Sketch có lệnh in ra màn hình hoặc gửi ký tự qua chuẩn RS232.

-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

Trong menu Tool, chúng ta cần chú ý đến các mục liên quan đến mạch và cổng nối tiếp, đặc biệt là mục Board Việc chọn bo mạch phù hợp với loại bo mà chúng ta đang sử dụng là rất quan trọng.

Việc chọn đúng loại bo mạch là rất quan trọng, vì nếu sử dụng loại bo mạch không phù hợp, quá trình nạp chương trình vào chip sẽ gặp lỗi.

Để thiết lập kết nối giữa máy tính và board Arduino, bạn cần sử dụng tab Serial Port để chọn cổng COM phù hợp Sau khi cài đặt driver, tên cổng COM của Arduino sẽ hiển thị trong Device Manager Bạn chỉ cần vào Serial Port và chọn đúng cổng COM để nạp chương trình; nếu chọn sai, việc nạp chương trình cho Arduino sẽ không thành công.

- 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

Phầ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 board một số kiểu khai báo biến thông dụng: #define

Từ "define" có nghĩa là định nghĩa, trong khi hàm #define được sử dụng để gán một chân hoặc một ngõ ra cụ thể với một cái tên.

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()) void setup() {

Cấu trúc của nó có dấu ngoặc nhọn ở đầu và ở cuối, nếu thiếu phần này khi kiểm tra chương trình thì chương trình sẽ báo lỗi

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 đó:

Sử dụng Serial.begin(9600) để truyền dữ liệu từ board Arduino đến máy tính Hàm pinMode(biến, kiểu) được dùng để xác định kiểu chân là đầu vào hay đầu ra.

Ví dụ: pinMode(ChanDO,INPUT);

Dùng để viết các lệnh trong chương trình để mạch Arduino thực hiện các nhiệ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

Dấu // được sử dụng để giải thích nội dung trên cùng một dòng Khi thực hiện kiểm tra chương trình, phần giải thích này sẽ bị bỏ qua và không được kiểm tra.

Ký hiệu này cũng dùng để giải thích, nhưng giải thích dành cho 1 đoạn, tức có thể xuống dòng được

#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ân có 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ị);

PWM (Pulse Width Modulation) được sử dụng để điều khiển tốc độ động cơ và độ sáng LED Lệnh digitalRead(chân) cho phép đọc giá trị số tại chân mong muốn, trong khi lệnh analogRead(chân) dùng để đọc giá trị tương tự tại chân cần thiết.

GIỚI THIỆU VỀ LCD I2C

2.3.2 Thông số kỹ thuật LCD 16x2

LCD 16x2 được sử dụng để hiển thị trạng thái hoặc các thông số

 LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS,

 5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2

 Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữ liệu

 Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi

LCD 16×2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng ta đang làm

Bảng 3 Chức năng của các chân LCD

Chân Ký hiệu Mô tả

1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều khiển

2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với

VCC=5V của mạch điều khiển

3 VEE Điều chỉnh độ tương phản của LCD

Chân chọn thanh ghi (Register select) Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi

Trong chế độ “ghi”, bus DB0-DB7 sẽ kết nối với thanh ghi lệnh IR của LCD, trong khi ở chế độ “đọc”, nó sẽ được nối với bộ đếm địa chỉ của LCD.

 Logic “1”: bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD

5 R/W Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc

Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus DB0- DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân

Khi ở chế độ ghi, dữ liệu trên bus sẽ được LCD chuyển vào thanh ghi bên trong khi phát hiện xung chuyển từ cao sang thấp của tín hiệu chân E.

Khi ở chế độ đọc, dữ liệu sẽ được LCD xuất ra các chân DB0-DB7 khi phát hiện cạnh lên (chuyển từ thấp sang cao) tại chân E Dữ liệu này sẽ được giữ lại trên bus cho đến khi chân E trở về mức thấp.

Hoạt động của LCD được điều khiển thông qua 3 tín hiệu E, RS, R/W

Tín hiệu E là yếu tố quan trọng trong việc gửi dữ liệu đến LCD Để thực hiện điều này, chương trình cần thiết lập E=1, sau đó điều chỉnh các trạng thái điều khiển trên RS, R/W và bus dữ liệu Cuối cùng, E được đưa về 0 để LCD có thể nhận dữ liệu hiện tại qua các đường điều khiển và bus dữ liệu.

Tín hiệu RS (Register Select) đóng vai trò quan trọng trong việc xác định loại dữ liệu được xử lý Khi RS=0, dữ liệu được hiểu là lệnh hoặc chỉ thị đặc biệt như xóa màn hình hoặc đặt vị trí con trỏ Ngược lại, khi RS=1, dữ liệu sẽ được coi là văn bản và được hiển thị trên màn hình.

- Tín hiệu R/W là tín hiệu “Đọc/Ghi” Khi R/W=1, thông tin trên bus dữ liệu được ghi vào LCD Khi R/W=0, chương trình sẽ đọc LCD

- Bus dữ liệu gồm 4 hoặc 8 đường tùy thuộc vào chế độ hoạt động mà người sử dụng lựa chọn

LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụng nhiều chân trên vi điều khiển

Module I2C LCD ra đời và giải quyết vấn để này cho bạn

Thay vì phải mất 6 chân vi điều khiển để kết nối với

Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU Có

2 chế độ sử dụng 8 đường bus này:

 Chế độ 8 bit: dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7

 Chế độ 4 bit: dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7

15 - Nguồn dương cho đèn nền

LCD 16×2 (RS, EN, D7, D6, D5 và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối

Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4, …) và tương thích với hầu hết các vi điều khiển hiện nay Ưu điểm:

- Tiết kiệm chân cho vi điều khiển

- Dễ dàng kết nối với LCD

- Điện áp hoạt động: 2.5 – 6V DC

- Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780)

- Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2)

- Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt

- Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD

- Hình 10 Sơ đồ đấu nối giao tiếp IC2 với LCD 16×2

Bảng 4 Giao tiếp I2C LCD Arduino Module I2C LCD 16×2 Arduino Nano/Uno

GIỚI THIỆU IC THỜI GIAN THỰC DS1307

IC thời gian thực (RTC) DS1307 cung cấp thông tin thời gian hiện tại chính xác, bao gồm giờ, phút, giây, thứ, ngày tháng và năm, ngay cả khi thiết bị bị tắt Giao tiếp với vi điều khiển qua chuẩn I2C, DS1307 hoạt động như một thiết bị slave trên bus I2C IC này có khả năng đếm thời gian theo định dạng 24 giờ hoặc 12 giờ với chỉ thị AM/PM Đặc biệt, chip tích hợp bộ dò phát hiện mất nguồn và tự động chuyển sang nguồn pin dự phòng Dưới đây là một số tính năng nổi bật của IC RTC DS1307.

 Lưu trữ và cung cấp các thông tin thời gian thực: ngày, tháng, năm, giờ, phút, giây,…

 Khả năng thiết lập ngày đến năm 2100

 Tiêu thụ điện năng thấp: dòng tiêu thụ dưới 500nA khi hoạt động bằng pin

 Tự động chuyển sang nguồn pin trong trường hợp mất điện

 Đồng hồ 24 giờ hoặc 12 giờ với chỉ báo AM/PM

 Sử dụng chuẩn giao tiếp I2C

Link datasheet DS1307: https://bom.to/54otVe

Hình 12 Sơ đồ chân DS1307

Bảng 5 Sơ đồ chân Module thời gian thực DS1307

1 X1 Đây là các chân kết nối với thạch anh tần số 32.768 KHz để kích hoạt bộ dao động nội

Chân này được kết với cực dương pin Lithium 3V để cấp nguồn nuôi dự phòng

Chân dữ liệu nối tiếp (Serial Data) Đây là chân dữ liệu vào/ra của giao thức I2C Chân này cần đưa lên nguồn 5V thông qua điện trở 10kΩ

Chân đầu vào xung đồng hồ nối tiếp (Serial Clock) là chân ngõ vào xung nhịp trong giao thức I2C, cần được kéo lên 5V thông qua điện trở 10kΩ.

Ngõ xuất ra xung vuông có tần số lập trình linh hoạt từ 1Hz đến 32Khz, bao gồm các mức 4Khz và 8Khz Khi không sử dụng, chân này có thể được thả nổi.

Chân cấp nguồn chính, khoảng 5VDC Nếu VCC không có mà VBAT có thì DS1307 vẫn hoạt động bình thường nhưng không ghi và đọc được dữ liệu

GIAO TIẾP ARDUINO VỚI CẢM BIẾN NHIỆT ĐỘ, ĐỘ ẨM DHT11

Cảm biến DHT11 được phát triển để thay thế dòng SHT1x, phù hợp cho những ứng dụng không yêu cầu độ chính xác cao về nhiệt độ và độ ẩm Thiết bị này sử dụng giao tiếp số theo chuẩn 1 dây, mang lại sự đơn giản và hiệu quả trong việc thu thập dữ liệu môi trường.

- Dùng để đo nhiệt độ , độ ẩm

- Các ứng dụng đo nhiệt độ , độ ẩm khác

- Dòng sử dụng: 2.5mA max (khi truyền dữ liệu)

- Đo tốt ở độ ẩm 20-80%RH với sai số 5%

- Đo tốt ở nhiệt độ 0 to 50°C sai số ±2°C

- Tần số lấy mẫu tối đa 1Hz (1 giây 1 lần)

- Kích thước 15mm x 12mm x 5.5mm

- 4 chân, khoảng cách chân 0.1mm

GIỚI THIỆU VỀ ĐỘNG CƠ DC

Động cơ điện một chiều DC gồm hai phần chính:

- Stato (phần đứng yên) với các cực từ bằng nam châm vĩnh cửu hoặc nam châm điện

- Roto (phần chuyển động) với các cuộn dây quấn, cổ góp cùng chổi điện

Chổi than và vành góp có chức năng cung cấp điện áp một chiều cho cuộn dây phần ứng và đảo chiều dòng điện trong cuộn dây này Số lượng chổi than tương ứng với số lượng cực từ, trong đó một nửa mang cực tính dương và nửa còn lại mang cực tính âm.

GIỚI THIỆU VỀ ĐỘNG CƠ BƯỚC SERVO

Động cơ bước được chia thành ba loại chính: động cơ nam châm vĩnh cửu, động cơ từ trở biến thiên và động cơ hỗn hợp Chúng có nhiều góc quay khác nhau, từ 90 độ đến 0.72 độ hoặc nhỏ hơn Động cơ nam châm vĩnh cửu có cấu trúc bao gồm các cuộn dây quấn trên roto, trong khi stato được tạo thành từ các nam châm vĩnh cửu, tương tự như động cơ AC đồng bộ.

Động cơ bước BYJ28 có cấu trúc roto làm bằng sắt nhẹ với số cực của roto ít hơn số cực của stato, thuộc loại động cơ phản kháng với góc quay giới hạn từ 1.8° đến 30° trong chế độ điều khiển bước đủ Moment hãm của động cơ này dao động từ 1 đến 50 Ncm, tần số khởi động lớn nhất đạt 1 kHz và tần số làm việc tối đa trong điều kiện không tải là 20 kHz Động cơ bước hỗn hợp, một loại động cơ cảm ứng, có góc bước thay đổi từ 0.36° đến 15° trong chế độ moment đủ, với moment hãm từ 3 đến 1000 Ncm và tần số khởi động lớn nhất lên đến 40 kHz, là loại động cơ được sử dụng phổ biến nhất nhờ kết hợp ưu điểm của động cơ nam châm vĩnh cửu và động cơ biến từ trở Phương pháp điều khiển động cơ bước bao gồm điều khiển góc quay, chiều quay và tốc độ quay, trong đó điều khiển góc quay cho phép độ chính xác cao, với góc quay nhỏ nhất được coi là một bước Hai phương pháp điều khiển phổ biến là điều khiển đủ bước, trong đó số bước tối đa trong một chu kỳ tương ứng với số cặp cực, và điều khiển nửa bước, thực hiện bằng cách kích dẫn đồng thời hai cực đối xứng để tạo moment quay cùng chiều.

THIẾT KẾ – LƯU ĐỒ THUẬT TOÁN

THIẾT KẾ

3.1.1 Sơ đồ nguyên lý mô phỏng Proteus

Hình 17 Minh họa sơ đồ nguyên lý mạch 3.1.2 Giao diện điều khiển LED – MOTOR – SERVO

Hình 18 Giao diện điều khiển LED – MOTOR – SERVO

3.1.3 Giao diện đọc nhiệt độ, độ ẩm – Điều khiển LCD

Hình 19 Giao diện đọc nhiệt độ, độ ẩm – Điều khiển LCD

LƯU ĐỒ THUẬT TOÁN

3.2.1 Lưu đồ thuật toán điều khiển LED

Giải thích lưu đồ thuật toán điều khiển LED:

Khi nhấn vào giao diện thiết kế, ký tự “~” sẽ được gửi đi, trong khi nhấn LED 1 lần 2 sẽ gửi ký tự “!” Quá trình này sẽ lặp lại tuần hoàn Bên phía Arduino, khi mở cổng COM để giao tiếp, nếu nhận được ký tự “~”, lệnh bật LED sẽ được thực hiện.

1, ngược lại nếu nhận được ký tự “!” thì sẽ thực hiện lệnh tắt LED 1

 Các LED còn lại gửi các ký tự như lưu đồ thuật toán và cách hoạt động tương tự như LED 1

 Các ký tự có thể tùy chọn, do người lập trình đặt tên

3.2.2 Lưu đồ thuật toán điều khiển MOTOR

Giải thích lưu đồ thuật toán điều khiển MOTOR:

Sẽ gửi ký tự “[” nếu được nhấn, arduino nhận được ký tự này sẽ thực hiện lệnh quay động cơ DC ngược chiều kim đồng hồ

Sẽ gửi ký tự “]” nếu được nhấn, arduino nhận được ký tự này sẽ thực hiện lệnh quay động cơ DC theo chiều kim đồng hồ

Sẽ gửi ký tự “z” nếu được nhấn, arduino nhận được ký tự này sẽ thực hiện lệnh dừng động cơ DC

Sẽ gửi ký tự “/” nếu được nhấn, arduino nhận được ký tự này sẽ thực hiện lệnh động cơ DC sẵn sàng hoạt động

3.2.3 Lưu đồ thuật toán điều khiển SERVO

Giải thích lưu đồ thuật toán điều khiển SERVO:

Sẽ gửi ký tự “}” nếu được nhấn, arduino nhận được ký tự này sẽ thực hiện lệnh quay động cơ SERVO từ góc 180° → 0°

Sẽ gửi ký tự “{” nếu được nhấn, arduino nhận được ký tự này sẽ thực hiện lệnh quay động cơ SERVO từ góc 0° → 180°

Arduino nhận chuỗi ký tự dạng text và chuyển đổi chúng thành số để điều khiển servo ở góc tương ứng.

3.2.4 Lưu đồ thuật toán đọc nhiệt độ – độ ẩm

Giải thích lưu đồ thuật toán:

Sau khi kết nối cổng COM, Arduino sẽ gửi giá trị thời gian thực, nhiệt độ và độ ẩm mà nó thu thập được từ module DS1307 và DHT11 thông qua lệnh.

 Giao diện thiết kế sẽ nhận các giá trị này và gán vào các textbox tương ứng bằng lệnh

Sẽ gửi chuỗi dạng text có độ dài nào đó, arduino nhận được chuỗi này, sau đó tiến hành in ra màn hình LCD

KẾT QUẢ THỰC NGHIỆM – KẾT LUẬN

KẾT QUẢ

Hình 20 Kết quả thực nghiệm điều khiển LED – MOTOR – SERVO

Hình 21 Kết quả thực nghiệm đọc nhiệt độ, độ ẩm – Điều khiển LCD

KẾT LUẬN 29 PHỤ LỤC

- Phần cứng được thiết kế nhỏ gọn và được lắp ráp theo kiểu module nên dễ dàng thay thế cũng như kiểm tra các linh kiển trong mạch

- Phần mềm chạy khá ổn định, sai lệch nhiệt độ trong khoảng cho phép

- Có thế ứng dụng trong thực tế

- Phần cứng thiết kế chưa đươc đẹp

- Sai số mạch còn lớn

Sau thời gian nghiên cứu và thực hành, em đã hoàn thành bài thực hành được giao Em đã nỗ lực hết mình và nhận được sự hỗ trợ nhiệt tình từ bạn bè trong lớp Đặc biệt, em xin cảm ơn thầy Phan Hải Phong đã hướng dẫn em tận tình, giúp em hoàn thành bài thực hành một cách tốt nhất.

Em xin chân thành cảm ơn

Dù kiến thức của em còn hạn chế, em vẫn mong nhận được sự đóng góp và chỉ bảo từ thầy cô cùng các bạn để cải thiện bài thực hành của mình.

Em xin chân thành cảm ơn!

Link tải thư viện: https://bom.to/L1LWf7

2 THƯ VIỆN ĐỒNG HỒ THỜI GIAN THỰC

Link tải thư viện: https://bom.to/I4gU1w

3 THƯ VIỆN CẢM BIẾN NHIỆT ĐỘ, ĐỘ ẨM

Link tải thư viện: https://bom.to/LVe8Nz

4 FILE PROTEUS, CODE ARDUINO VÀ GIAO DIỆN BÀI THỰC HÀNH Link tải: https://bom.so/SglVcW

Ngày đăng: 14/01/2022, 00:10

HÌNH ẢNH LIÊN QUAN

Hình 1. Visual Studio - BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG
Hình 1. Visual Studio (Trang 7)
Hình 2. Cấu tạo của Arduino Uno - BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG
Hình 2. Cấu tạo của Arduino Uno (Trang 9)
Bảng 1.  Thông số cơ bản của Arduino Uno R3 - BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG
Bảng 1. Thông số cơ bản của Arduino Uno R3 (Trang 10)
Hình 3. Minh họa giao diện lập trình Arduino IDE - BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG
Hình 3. Minh họa giao diện lập trình Arduino IDE (Trang 13)
Hình 4. Minh họa vùng Toolbar trên giao diện Arduino IDE - BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG
Hình 4. Minh họa vùng Toolbar trên giao diện Arduino IDE (Trang 14)
Hình 5. Minh họa chọn board Arduino và  cổng COM giao tiếp phù hợp  Cổng giao tiếp giữa máy tính và Board được thiết lập thông qua tab Serial Port: đây - BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG
Hình 5. Minh họa chọn board Arduino và cổng COM giao tiếp phù hợp Cổng giao tiếp giữa máy tính và Board được thiết lập thông qua tab Serial Port: đây (Trang 15)
Hình 6. Minh họa vùng viết chương trình. - BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG
Hình 6. Minh họa vùng viết chương trình (Trang 15)
Hình 7. Tổng quan quá trình xử lý chương trình Arduino - BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG
Hình 7. Tổng quan quá trình xử lý chương trình Arduino (Trang 16)
Bảng 2. Một số ký hiệu và câu lệnh thường gặp - BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG
Bảng 2. Một số ký hiệu và câu lệnh thường gặp (Trang 17)
Hình 8. Màn hình LCD 16x2 - BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG
Hình 8. Màn hình LCD 16x2 (Trang 18)
Bảng 3. Chức năng của các chân LCD - BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG
Bảng 3. Chức năng của các chân LCD (Trang 19)
Hình 9. Module LCD I2C - BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG
Hình 9. Module LCD I2C (Trang 20)
SƠ ĐỒ ĐẤU NỐI - BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG
SƠ ĐỒ ĐẤU NỐI (Trang 21)
Bảng 4. Giao tiếp I2C LCD Arduino  Module I2C LCD 16×2   Arduino Nano/Uno - BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG
Bảng 4. Giao tiếp I2C LCD Arduino Module I2C LCD 16×2 Arduino Nano/Uno (Trang 21)
Hình 11. Module DS1307 - BÁO cáo THỰC HÀNH ĐIỆN TỬ VIỄN THÔNG
Hình 11. Module DS1307 (Trang 22)

TỪ KHÓA LIÊN QUAN

w