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 web mạnh mẽ, thuộc quyền sở hữu của Microsoft Ra mắt lần đầu vào năm 1997 với tên mã Project Boston, phần mềm này đã được Microsoft kết hợp các công cụ phát triển khác nhau để tạo thành một sản phẩm hoàn chỉnh và duy nhất.
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 Với Visual Studio, bạn có thể dễ dàng viết code, sửa lỗi và chỉnh sửa thiết kế ứng dụng chỉ với một phần mềm duy nhất Hơn nữa, người dùng còn có khả năng thiết kế giao diện và trải nghiệm phát triển ứng dụng như Xamarin và UWP thông qua XAML hoặc Blend.
CÁC TÍNH NĂNG CỦA PHẦN MỀM VISUAL STUDIO
Tính đến nay, Visual Studio vẫn là phần mềm lập trình hệ thống hàng đầu, chưa có phần mềm nào có thể thay thế được nó Sự đánh giá cao này đến từ việc Visual Studio sở hữu nhiều tính năng cực kỳ hấp dẫn.
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 lớn trong quá trình phát triển ứng dụng, khác với nhiều trình viết code khác chỉ giới hạn trên một hệ điều hành.
Đ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, giúp 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 lập trình viên muốn sử dụng ngôn ngữ khác, họ 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 chương trình độc lập, giúp đảm bảo không làm giảm hiệu năng của phần mềm.
Khi lập trình với Visual Studio, công cụ này cung cấp cho các lập trình viên nhiều tùy chọn thay thế để điều chỉnh đoạn code, giúp cải thiện tính tiện dụng 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 để lại nhận xét, giúp họ dễ dàng ghi nhớ các công việc cần hoàn thành mà 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 thiết kế bởi một nhóm giáo sư và sinh viên Ý vào năm 2005 Bo mạch này có khả năng cảm nhận và điều khiển nhiều đối tượng khác nhau, từ việc nhận tín hiệu từ cảm biến cho đến điều khiển đèn, động cơ và nhiều thiết bị khác Ngoài ra, Arduino còn có khả năng kết nối với nhiều module khác như module đọc thẻ từ, ethernet shield, sim900A, giúp mở rộng ứng dụng của nó.
Phần cứng của Arduino bao gồm một board mạch nguồn mở, được thiết kế dựa trên vi xử lý AVR Atmel 8-bit hoặc ARM Atmel 32-bit Hiện tại, Arduino có tổng cộng 6 phiên bản, trong đó Arduino Uno và Arduino Mega là hai phiên bản phổ biến nhất.
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
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
2.1.4 Các loại Board Arduino phổ biến
Khác với hầu hết các board mạch lập trình trước đây, Arduino không yêu cầu phần cứng riêng để lập trình mà chỉ cần sử dụng 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 Một số loại Arduino phổ biến bao gồm Arduino Uno, Arduino Mega, và Arduino Nano.
Arduino Uno là board mạch đơn giản nhất, lý tưởng cho những người mới bắt đầu khám phá lĩnh vực điện tử Nó có 14 chân dữ liệu và 6 chân đầu vào, với điện áp hoạt động từ 7V đến 12V Board này hoạt động ở tốc độ 16MHz và có khả năng phân giải 1024 mức Kích thước của Arduino Uno 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.
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ế mới mẻ với khả năng tùy chỉnh chân số, cho phép người dùng gắn trực tiếp và tiết kiệm không gian Thiết bị thường có hai loại nguồn là 3.3V và 5V, phù hợp với nhiều ứng dụng khác nhau.
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 dùng để lập trình, được thiết kế với một chip điều khiển nhỏ 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 dự án điện tử.
Board mạch LilyPad Arduino 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 được thiết kế độc đáo với các miếng kết nối lớn và mặt sau mịn màng, cho phép dễ dàng khâu vào quần áo bằng chỉ Arduino này bao gồm các cổng I/O, nguồn và cả board cảm biến, được chế 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
USB Mini-B với Arduino IDE hoạt động trên Windows 8 mà không cần thay đổi cài đặt bảo mật Sản phẩm không thay đổi do chip USB hoặc FTDI mà chúng tôi sử dụng và hoàn toàn phẳng ở mặt sau Việc tạo ra rất đơn giản, thuận tiện cho thiết kế dự án Chỉ cần cắm board, chọn tùy chọn menu để chọn Arduino UNO 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 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.
Arduino được sử dụng rộng rãi trong cuộc sống hàng ngày và 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 tiêu biểu bao gồm tự động hóa nhà thông minh, điều khiển robot, và phát triển các dự án nghệ thuật tương tác.
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 những trò chơi tương tác thú vị như Tetrix, phá gạch, Mario và nhiều game sáng tạo khác thông qua việc 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 sẵn giúp làm nổi bật các biển quảng cáo, tăng cường sự chú ý của người tham gia giao thông.
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 mã nguồn mở giúp người dùng viết và tải code 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 Arduino với nhiều tính năng độc đáo Giao diện của ứng dụng lập trình được thiết kế hợp lý, phù hợp cho cả người dùng chuyên nghiệp và 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 Nhiều công ty trên thế giới áp dụng Java để lập trình cho thiết bị của họ Java 2 Platform Standard Edition cũng là một IDE hỗ trợ Java và hiện đang được nhiều người sử dụng.
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.
C++ là sự lựa chọn tuyệt vời cho các IDE khác, trong khi PHP Designer 2007 Personal là phần mềm lý tưởng cho những ai muốn học lập trình PHP 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, bạn cần truy cập trang web [Arduino](http://arduino.cc/en/Main/Software) và tải về phần mềm Arduino IDE phù hợp với hệ điều hành của máy tính như Windows, Mac OS hoặc Linux Đối với Windows, có hai lựa chọn: bản cài đặt (.exe) và bản Zip, trong đó bản Zip chỉ cần giải nén và không cần cài đặt Arduino IDE là một ứng dụng đa nền tảng được viết bằng Java, thiết kế cho cả nhà phát triển và người mới bắt đầu học lập trình Phần mềm này 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, tự động kiểm tra dấu ngoặc và tự động canh lề, cùng với khả năng biên dịch và tải chương trình lên bo mạch 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 Arduino IDE với 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 chạy 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ở màn hình hiển thị Serial Monitor bằng cách sử dụng công cụ này khi trong Sketch có lệnh in ra màn hình hoặc gửi ký tự thông 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, mục Board là một yếu tố quan trọng cần chú ý, vì việc chọn bo mạch phù hợp với loại bo mạch đang sử dụng là rất cần thiết Nếu sử dụng loại bo mạch khác, cần đảm bảo chọn đúng loại; nếu không, việc nạp chương trình vào chip sẽ gặp lỗi.
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 qua tab Serial Port, nơi người dùng chọn cổng COM của Arduino Sau khi cài đặt driver, máy tính sẽ hiển thị tên cổng COM của Arduino trong phần Device Manager Người dùng 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 là bước đầu tiên trong lập trình, nơi chúng ta xác định kiểu biến và tên của chúng Việc định nghĩa các biến trên board có thể được thực hiện thông qua một số kiểu khai báo phổ biến, chẳng hạn như #define.
Từ "define" có nghĩa là định nghĩa, trong khi hàm #define được sử dụng để định nghĩa hoặc gán một giá trị cho một tên cụ thể, thường liên quan đến việc gán một chân hoặc ngõ ra nào đó.
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 lê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);
Để lập trình cho mạch Arduino thực hiện các nhiệm vụ mong muốn, chúng ta sử dụng các lệnh trong chương trình, thường bắt đầu bằng cú pháp: 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 khi nó nằm trên một dòng Trong quá trình 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
Câu lệnh #define trong lập trình được sử dụng để định nghĩa và xác định tên của một biến gán vào một chân cụ thể Ví dụ, bạn có thể sử dụng #define led 13 để chỉ định chân số 13 cho biến led, và sau đó sử dụng digitalWrite(chân, trạng thái) để điều khiển trạng thái của chân đó.
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ị);
GIỚI THIỆU VỀ LCD I2C
Hì nh 8 Mà n hì nh LCD 16 x 2
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.
Logic “0” kết nối bus DB0-DB7 với thanh ghi lệnh IR của LCD trong chế độ ghi, hoặc với bộ đếm địa chỉ của LCD trong chế độ đọc.
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 E.
Trong chế độ ghi, dữ liệu từ bus sẽ được LCD tiếp nhận và chuyển vào thanh ghi nội bộ khi phát hiện xung chuyển đổi từ cao sang thấp của tín hiệu chân E.
Khi ở chế độ đọc, dữ liệu sẽ được xuất ra từ DB0-DB7 khi chân E phát hiện sự chuyển đổi từ mức thấp sang mức cao (low-to-high transition) và sẽ được giữ lại trên bus cho đến khi chân E trở về mức thấp.
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.
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 cho phép gửi dữ liệu đến LCD bằng cách thiết lập E=1, sau đó điều chỉnh trạng thái của RS, R/W và bus dữ liệu Cuối cùng, đưa E về 0 để LCD nhận dữ liệu hiện tại trên các đường điều khiển và bus dữ liệu Hoạt động chuyển đổi từ cao xuống thấp này là cần thiết để đảm bảo việc truyền tải thông tin chính xác.
Tín hiệu RS (Register Select) quyết định cách thức xử lý dữ liệu 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 được coi là văn bản và sẽ đượ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
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
2.4 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 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ị tắt nguồn 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 Nó hỗ trợ định dạng thời gian 24 giờ hoặc 12 giờ với chỉ thị AM/PM Đặc biệt, chip này có bộ dò phát hiện mất nguồn và tự động chuyển sang nguồn pin dự phòng Một số tính năng nổi bật của IC RTC DS1307 sẽ được trình bày dưới đây.
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
Bảng 5 Sơ đồ chân Module thời gian thực DS1307
Hì nh 12 Sơ đồ chân 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 của giao thức I2C Để hoạt động đúng, chân này cần được kéo lên 5V thông qua một điện trở 10kΩ.
Ngõ xuất ra xung vuông có khả năng lập trình tần số từ 1Hz đến 32KHz, bao gồm các mức 4KHz và 8KHz Nếu không sử dụng, chân này có thể được để nổi.
Chân cấp nguồn chính của DS1307 là khoảng 5VDC Nếu không có VCC nhưng vẫn có VBAT, DS1307 vẫn hoạt động bình thường, tuy nhiên không thể ghi và đọc được dữ liệu.
2.5 GIAO TIẾP ARDUINO VỚI IC THỜI GIAN THỰC DS1307
Hì nh 13 Sơ đồ nguyên lý DS1307 vớ i Arduino
2.6 GIAO TIẾP ARDUINO VỚI CẢM BIẾN NHIỆT ĐỘ, ĐỘ ẨM DHT11
Cảm biến nhiệt độ và độ ẩm DHT11 được phát triển để thay thế cho dòng SHT1x, đặc biệt trong những ứng dụng không yêu cầu độ chính xác cao về nhiệt độ và độ ẩm Cảm biến này sử dụng giao tiếp số theo chuẩn 1 dây, mang lại sự tiện lợi trong việc lắp đặt và sử dụ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.
LED đơn là linh kiện phát quang dựa trên hiện tượng tái hợp lỗ trống/elektron ở chân bán dẫn Ngõ ra của LED gồm hai chân Anode và Cathode với màu sắc khác nhau tùy vào phương pháp chế tạo Bằng cách ghép tổ hợp các LED nối tiếp hoặc song song, chúng ta có thể tạo ra mạch điện phát ra màu sắc theo ý muốn LED sẽ phát sáng khi điện áp đầu Anode cao hơn Cathode với một giá trị xác định tùy theo từng loại.
2.8 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ức năng của chổi than và vành là cung cấp điện áp một chiều cho cuộn dây phần ứng, đồng thời đổi 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ừ, với một nửa mang cực tính dương và một nửa mang cực tính âm.
Hì nh 15 Minh họa cấu tạo động cơ điện một chiều
2.9 GIỚI THIỆU VỀ ĐỘNG CƠ BƯỚC SERVO Động cơ bước được phân loại gồm động cơ nam châm vĩnh cửu, động cơ từ trở biến thiên và động cơ hỗn hợp Động cơ bước có nhiều loại góc quay phân biệt từ 90 độ đến 0.72 độ hoặc nhỏ hơn. Động cơ nam châm vĩnh cửu có cấu trúc gồm các cuộn dây quấn trên roto, stato là các nam châm vĩnh cửu Loại này có cấu trúc gần giống với động cơ AC đồng bộ.
Động cơ bước BYJ28 là một loại động cơ có từ trở biến thiên với rotor làm bằng sắt nhẹ, có số cực của rotor ít hơn số cực của stato Mỗi cuộn dây được quấn trên hai cực của stato đối diện nhau Động cơ này, còn được gọi là động cơ phản kháng, có góc quay giới hạn từ 1.8° đến 30° trong chế độ điều khiển bước đủ, với moment hãm 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 lớn nhất trong điều kiện không tải là 20 kHz Động cơ bước hỗn hợp là 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.
LED ĐƠN
LED đơn là linh kiện phát quang hoạt động dựa trên hiện tượng tái hợp lỗ trống/eletron ở chân bán dẫn Nó có hai chân Anode và Cathode với màu sắc khác nhau tùy thuộc vào phương pháp chế tạo Bằng cách ghép nối các LED theo kiểu nối tiếp hoặc song song, ta có thể tạo ra mạch điện phát ra màu sắc mong muốn LED sẽ phát sáng khi điện áp ở chân Anode cao hơn chân Cathode với giá trị xác định cho từng loại.
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ức năng của chổi than và vành là cung cấp điện áp một chiều cho cuộn dây phần ứng, đồng thời chuyển đổi 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 có cực tính dương và một nửa có cực tính âm.
Hì nh 15 Minh họa cấu tạo động cơ điện một chiều
GIỚI THIỆU VỀ ĐỘNG CƠ BƯỚC SERVO
Động cơ bước được phân loại 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 Các loại động cơ này có góc quay phân biệt 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 cấu tạo từ các nam châm vĩnh cửu, tương tự như động cơ AC đồng bộ.
Động cơ bước BYJ28 là một loại động cơ 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 Động cơ này, còn được gọi là động cơ phản kháng, có góc quay giới hạn từ 1.8° đến 30° và moment hãm từ 1 đến 50 Ncm, với tần số khởi động lớn nhất là 1 kHz và tần số làm việc tối đa không tải là 20 kHz Trong khi đó, động cơ bước hỗn hợp, có góc bước thay đổi từ 0.36° đến 15°, có moment hãm từ 3 đến 1000 Ncm và tần số khởi động lớn nhất lên tới 40 kHz, là loại động cơ phổ biến nhất nhờ vào việc 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 điều chỉnh rất chính xác, với hai phương pháp phổ biến là điều khiển đủ bước và điều khiển nửa bước.
THIẾT KẾ – LƯU ĐỒ THUẬT TOÁN
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 người dùng nhấn vào giao diện thiết kế, ký tự “~” sẽ được gửi đi, trong khi nếu nhấn LED 1 hai lần, ký tự “!” sẽ được gửi 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ự “~”, hệ thống sẽ thực hiện lệnh bật LED 1; ngược lại, nếu nhận được ký tự “!”, lệnh tắt LED 1 sẽ được thực hiện.
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 sẽ nhận chuỗi ký tự dạng text và chuyển đổi nó sang dạng số Sau khi chuyển đổi, Arduino sẽ điều khiển servo ở một góc xác định dựa trên giá trị số đã được chuyển đổi từ chuỗi ký tự.
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, giá trị thời gian thực, nhiệt độ và độ ẩm được Arduino đo từ module DS1307 và DHT11 sẽ được gửi đi bằng 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 ¿têntextbox> ReadLine( );
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.