Đồ án môn học Vi xử lý: Thiết kế hệ thống tưới nước tự động - Đại học Điện Lực

Đồ án môn học vi xử lý: Thiết kế hệ thống tưới nước tự động. Tìm hiểu về nguyên lý hoạt động, sơ đồ mạch và code điều khiển chi tiết.

Trường đại học

Trường Đại Học Điện Lực

Chuyên ngành

Vi Xử Lý

Người đăng

Ẩn danh

Thể loại

Đồ án môn học

2023

44
5
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI NÓI ĐẦU

DANH MỤC HÌNH VẼ

MỞ ĐẦU

1. Tính cấp thiết của đề tài

2. Lý do chọn đề tài

3. Mục đích nghiên cứu

4. Phương pháp nghiên cứu

1. Tổng quan về đề tài

1.1. Đặt vấn đề

2. Giới thiệu phần cứng

2.1. Vi điều khiển ATmega328P-AU

2.2. Giới thiệu về Arduino

2.3. Tổng quan về bo mạch Arduino Uno R3

3. Phần mềm

4. Kết quả và định hướng phát triển

Tóm tắt

I. Khám phá tổng quan đồ án thiết kế hệ thống tưới tự động

Trong bối cảnh nền nông nghiệp Việt Nam đang bước vào giai đoạn hiện đại hóa, việc ứng dụng khoa học kỹ thuật để thay thế sức lao động thủ công và nâng cao hiệu quả sản xuất là một yêu cầu cấp thiết. Đề tài thiết kế hệ thống tưới nước tự động trong khuôn khổ một đồ án vi xử lý là một minh chứng rõ nét cho xu hướng này. Hệ thống này không chỉ giải quyết bài toán tưới tiêu một cách chính xác, tiết kiệm nước và nhân công mà còn mở ra hướng đi mới cho nông nghiệp thông minh. Thay vì phụ thuộc vào kinh nghiệm chủ quan, hệ thống sử dụng các linh kiện điện tử như cảm biến độ ẩm đất để thu thập dữ liệu môi trường, sau đó bộ não trung tâm là vi điều khiển sẽ phân tích và đưa ra quyết định tưới tiêu tối ưu. Mục tiêu chính của đồ án là vận dụng kiến thức về hệ thống nhúng, lập trình và thiết kế mạch để xây dựng một mô hình thực tế có khả năng hoạt động ổn định và hiệu quả. Việc nghiên cứu này kế thừa các công trình lý thuyết về microcontroller, các loại cảm biến, và các phương pháp lập trình điều khiển, đồng thời áp dụng vào một bài toán thực tiễn có ý nghĩa. Phương pháp nghiên cứu được triển khai bài bản, từ việc tìm hiểu cơ sở lý thuyết, lựa chọn linh kiện, thiết kế sơ đồ nguyên lýlưu đồ giải thuật, cho đến lập trình mô phỏng và kiểm thử trên mô hình vật lý. Sản phẩm cuối cùng không chỉ là một thiết bị hoạt động mà còn là một bộ báo cáo đồ án hoàn chỉnh, ghi lại toàn bộ quá trình từ ý tưởng đến hiện thực hóa, làm tài liệu tham khảo giá trị cho các nghiên cứu sau này.

1.1. Tính cấp thiết của hệ thống trong nông nghiệp thông minh

Việc tưới nước là khâu quan trọng bậc nhất trong trồng trọt, ảnh hưởng trực tiếp đến sinh trưởng, năng suất và chất lượng nông sản. Tuy nhiên, các phương pháp truyền thống thường mang tính chủ quan, gây lãng phí tài nguyên nước và không đáp ứng đúng nhu cầu của cây trồng ở từng giai đoạn. Tài liệu gốc chỉ rõ: "Tưới đúng và tưới đủ theo yêu cầu nông học của cây trồng sẽ không sinh sâu bệnh, hạn chế thuốc trừ sâu cho sản phẩm an toàn, đạt năng suất, hiệu quả cao". Sự ra đời của hệ thống tưới nước tự động giải quyết triệt để vấn đề này. Bằng cách tự động hóa hoàn toàn quy trình dựa trên dữ liệu thực tế từ cảm biến độ ẩm đất và các cảm biến khác, hệ thống đảm bảo cây trồng luôn được cung cấp đủ nước, đúng thời điểm, góp phần phát triển nền nông nghiệp thông minh bền vững, tiết kiệm chi phí và nâng cao hiệu quả kinh tế.

1.2. Mục tiêu nghiên cứu và phương pháp thực hiện đồ án

Mục tiêu cốt lõi của đồ án vi xử lý này là "nghiên cứu thiết kế và chế tạo mô hình hệ thống tưới tự động, từ đó đưa vào ứng dụng thực tiễn". Để đạt được mục tiêu đó, phương pháp nghiên cứu được xác định rõ ràng, bao gồm: Kế thừa các kết quả nghiên cứu trước đây về cơ sở lý thuyết phần mềm và mô phỏng; Nghiên cứu sâu về các nền tảng lập trình như Arduino IDE để tìm ra phương pháp đơn giản, hiệu quả; và cuối cùng là Kiểm chứng bằng cách "Chạy thử mô hình nhiều lần, kiểm tra phát hiện lỗi và từ đó hoàn thiện hệ thống". Quy trình này đảm bảo sản phẩm không chỉ là lý thuyết mà còn là một mô hình thực tế có tính ứng dụng cao, được kiểm chứng và tối ưu hóa qua thực nghiệm.

II. Hướng dẫn chọn linh kiện cho hệ thống tưới nước tự động

Việc lựa chọn linh kiện điện tử phù hợp là yếu tố quyết định đến sự thành công, độ ổn định và chi phí của toàn bộ đồ án vi xử lý. Một hệ thống tưới nước tự động cơ bản bao gồm ba thành phần chính: Khối xử lý trung tâm, Khối cảm biến và Khối chấp hành. Đối với khối xử lý, vi điều khiển là trái tim của hệ thống. Các lựa chọn phổ biến như Arduino Uno, ESP32, hay ESP8266 đều có ưu và nhược điểm riêng. Arduino Uno với vi điều khiển ATmega328P nổi bật nhờ sự đơn giản, cộng đồng hỗ trợ lớn và thư viện phong phú, rất phù hợp cho người mới bắt đầu. Trong khi đó, ESP32ESP8266 tích hợp sẵn khả năng kết nối Wi-Fi, là lựa chọn lý tưởng cho các ứng dụng IoT (Internet of Things), cho phép giám sát từ xađiều khiển qua web. Khối cảm biến đóng vai trò là các giác quan, thu thập thông tin từ môi trường. Cảm biến độ ẩm đất (soil moisture sensor) là linh kiện không thể thiếu, giúp xác định khi nào cần tưới. Ngoài ra, có thể tích hợp thêm cảm biến nhiệt độ (DS18B20) và cảm biến ánh sáng để hệ thống hoạt động thông minh hơn. Cuối cùng, khối chấp hành thực thi mệnh lệnh từ vi điều khiển. Các thành phần chính bao gồm máy bơm nước mini để cung cấp nước và module relay để đóng/ngắt dòng điện cho máy bơm một cách an toàn. Việc lựa chọn đúng công suất máy bơm và relay phù hợp với điện áp là cực kỳ quan trọng để hệ thống vận hành bền bỉ.

2.1. Phân tích vi điều khiển Arduino Uno ESP32 và ESP8266

Bo mạch Arduino Uno dựa trên vi điều khiển ATmega328P là một nền tảng mã nguồn mở, cực kỳ phổ biến trong các dự án điện tử. Tài liệu gốc nhấn mạnh, "Arduino rất dễ sử dụng cho người mới bắt đầu, nhưng đủ linh hoạt cho người dùng nâng cao". Với 14 chân I/O kỹ thuật số và 6 chân đầu vào analog, nó đủ khả năng để điều khiển các cảm biến và cơ cấu chấp hành trong một hệ thống tưới cơ bản. Trong khi đó, ESP32ESP8266 là các microcontroller mạnh mẽ hơn với ưu điểm vượt trội là tích hợp sẵn Wi-Fi và Bluetooth. Điều này mở ra khả năng phát triển các tính năng IoT, cho phép người dùng giám sát và điều khiển hệ thống tưới cây từ bất kỳ đâu thông qua một app mobile hoặc giao diện web, đưa đồ án lên một tầm cao mới về tính tiện dụng và thông minh.

2.2. Tổng hợp các loại cảm biến độ ẩm đất và ánh sáng

Cảm biến là cầu nối giữa môi trường vật lý và bộ xử lý trung tâm. Cảm biến độ ẩm đất FC-28 hoạt động dựa trên nguyên lý đo điện trở của đất. "Độ ẩm nhiều hơn làm cho đất dẫn điện dễ dàng hơn (điện trở thấp hơn), trong khi đất khô dẫn điện kém (điện trở cao hơn)". Tín hiệu analog (A0) từ cảm biến sẽ được vi điều khiển đọc và chuyển đổi thành giá trị độ ẩm tương đối. Bên cạnh đó, Cảm biến ánh sáng LDR (Quang trở) kết hợp với IC so sánh LM393 giúp hệ thống nhận biết điều kiện ngày/đêm. Điều này cho phép thiết lập các kịch bản tưới thông minh hơn, ví dụ như chỉ tưới vào sáng sớm hoặc chiều tối để giảm sự bay hơi nước, tối ưu hóa hiệu quả tưới tiêu.

2.3. Lựa chọn cơ cấu chấp hành máy bơm và module relay

Cơ cấu chấp hành là bộ phận trực tiếp thực hiện hành động tưới. Một máy bơm nước mini (thường là loại 5V hoặc 12V) được sử dụng để bơm nước từ nguồn chứa đến vị trí cây trồng. Tuy nhiên, dòng điện yêu cầu của máy bơm thường lớn hơn dòng mà một chân I/O của vi điều khiển có thể cung cấp trực tiếp. Do đó, cần sử dụng một module relay. Relay hoạt động như một công tắc điện tử, cho phép tín hiệu điện áp thấp từ Arduino điều khiển một mạch điện có điện áp và dòng điện cao hơn của máy bơm. Việc này không chỉ đảm bảo máy bơm hoạt động đúng cách mà còn bảo vệ vi điều khiển khỏi các sự cố về điện, tăng cường độ an toàn và ổn định cho toàn bộ hệ thống.

III. Phương pháp thiết kế mạch và lập trình cho đồ án vi xử lý

Sau khi lựa chọn linh kiện, giai đoạn thiết kế và lập trình là bước hiện thực hóa ý tưởng. Quá trình này bắt đầu bằng việc xây dựng một sơ đồ khối tổng thể. Sơ đồ này mô tả các thành phần chính và luồng thông tin giữa chúng, giúp có cái nhìn bao quát về cách hệ thống hoạt động. Từ sơ đồ khối, ta tiến hành thiết kế mạch chi tiết hơn với sơ đồ nguyên lý. Sơ đồ này thể hiện chính xác cách các chân của vi điều khiển, cảm biến, module relay và các linh kiện khác được kết nối với nhau. Đây là bản vẽ kỹ thuật quan trọng để lắp ráp phần cứng. Song song với thiết kế phần cứng là xây dựng logic cho phần mềm. Lưu đồ giải thuật (flowchart) là công cụ hữu hiệu để trực quan hóa các bước xử lý của chương trình: Bắt đầu, khởi tạo các thiết bị, đọc giá trị từ cảm biến độ ẩm đất, so sánh với ngưỡng cài đặt, quyết định bật/tắt máy bơm, và lặp lại chu trình. Dựa trên lưu đồ này, việc viết mã nguồn trở nên rõ ràng và ít sai sót hơn. Ngôn ngữ lập trình chủ yếu được sử dụng là lập trình C/C++ trên nền tảng Arduino IDE. Môi trường lập trình này cung cấp các thư viện hỗ trợ mạnh mẽ, giúp việc giao tiếp với các loại cảm biến và thiết bị trở nên đơn giản, rút ngắn đáng kể thời gian phát triển sản phẩm.

3.1. Thiết kế sơ đồ khối và sơ đồ nguyên lý chi tiết cho hệ thống

Sơ đồ khối của hệ thống tưới nước tự động thường bao gồm: Khối Nguồn, Khối Điều khiển trung tâm (Arduino Uno), Khối Cảm biến (Độ ẩm đất, ánh sáng), Khối Hiển thị (LCD) và Khối Chấp hành (Relay, Máy bơm). Sơ đồ này cho thấy mối liên kết logic, ví dụ tín hiệu từ Cảm biến đi vào Khối Điều khiển, và tín hiệu điều khiển đi ra Khối Chấp hành. Tiếp theo, sơ đồ nguyên lý sẽ chi tiết hóa các kết nối này. Ví dụ, nó sẽ chỉ rõ chân A0 của Arduino nối với chân A0 của cảm biến độ ẩm, chân D7 của Arduino nối với chân IN của module relay, và màn hình LCD I2C được kết nối qua chân A4 (SDA) và A5 (SCL). Sơ đồ này là tài liệu nền tảng để tiến hành lắp ráp và sau này là thiết kế mạch in PCB.

3.2. Xây dựng lưu đồ giải thuật và lập trình C C với Arduino IDE

Lưu đồ giải thuật là bản kế hoạch cho mã nguồn. Nó bắt đầu với khối 'Start', tiếp theo là 'Khởi tạo LCD, Serial', sau đó vào một vòng lặp vô tận. Trong vòng lặp, các bước gồm: 'Đọc giá trị từ cảm biến độ ẩm', 'Hiển thị lên LCD'. Tiếp theo là khối điều kiện 'If (độ ẩm < ngưỡng)'. Nếu đúng (True), luồng sẽ đi đến 'Bật Relay (bơm nước)'. Nếu sai (False), luồng đi đến 'Tắt Relay (dừng bơm)'. Cuối cùng, vòng lặp quay lại bước đọc cảm biến. Dựa trên lưu đồ này, mã nguồn được viết bằng lập trình C/C++ trên Arduino IDE sẽ rất trực quan. Các hàm như analogRead() được dùng để đọc cảm biến, digitalWrite() để điều khiển relay, và các hàm từ thư viện LiquidCrystal_I2C để hiển thị thông tin lên màn hình.

IV. Bí quyết xây dựng mô hình hệ thống tưới nước tự động

Việc xây dựng một mô hình thực tế là bước kiểm chứng quan trọng nhất của một đồ án vi xử lý. Quá trình này chuyển những thiết kế trên lý thuyết thành một sản phẩm vật lý hoạt động được. Bước đầu tiên là lắp ráp thử nghiệm các linh kiện điện tử trên breadboard. Giai đoạn này cho phép dễ dàng thay đổi kết nối và kiểm tra từng thành phần một cách linh hoạt, từ việc đọc giá trị cảm biến độ ẩm đất đến việc kích hoạt module relay. Sau khi mã nguồn và mạch điện đã hoạt động ổn định trên breadboard, bước tiếp theo là chuyển sang một giải pháp bền vững hơn. Thiết kế mạch in PCB (Printed Circuit Board) là một lựa chọn chuyên nghiệp, giúp hệ thống trở nên nhỏ gọn, chắc chắn và đáng tin cậy. Các phần mềm như Eagle, KiCad hay EasyEDA có thể được sử dụng để vẽ sơ đồ nguyên lý và layout mạch in. Đối với các hệ thống yêu cầu tính năng nâng cao, việc tích hợp công nghệ IoT (Internet of Things) là một hướng đi tất yếu. Bằng cách sử dụng các microcontroller như ESP8266 hoặc ESP32, hệ thống có thể kết nối vào mạng Wi-Fi. Điều này cho phép xây dựng một giao diện điều khiển qua web hoặc một app mobile chuyên dụng, giúp người dùng có thể giám sát từ xa các thông số như độ ẩm đất, nhiệt độ và điều khiển máy bơm từ bất cứ đâu, mang lại sự tiện lợi và khả năng kiểm soát tối đa.

4.1. Quy trình lắp ráp mô hình thực tế và thiết kế mạch in PCB

Quy trình lắp ráp mô hình thực tế bắt đầu bằng việc cố định các thành phần chính như bo mạch Arduino Uno, module relay và màn hình LCD lên một tấm nền. Các kết nối được thực hiện bằng dây cắm theo đúng sơ đồ nguyên lý đã thiết kế. Cảm biến độ ẩm được cắm xuống một chậu đất mẫu, và máy bơm được đặt trong một bình chứa nước. Sau khi kiểm tra hoạt động thành công, việc thiết kế mạch in PCB được tiến hành. Quá trình này gồm các bước: vẽ lại sơ đồ nguyên lý trên phần mềm, sắp xếp vị trí linh kiện (component placement), và đi dây (routing) để kết nối chúng. Mạch in hoàn chỉnh sẽ thay thế toàn bộ mớ dây nối phức tạp, giúp hệ thống nhúng trở nên chuyên nghiệp và ổn định hơn trong quá trình vận hành lâu dài.

4.2. Tích hợp IoT để giám sát từ xa qua web hoặc app mobile

Để nâng cấp hệ thống lên tầm IoT, bo mạch Arduino Uno được thay thế bằng ESP8266 hoặc ESP32. Đoạn code sẽ được bổ sung thêm các thư viện Wi-Fi để kết nối vào mạng internet. Dữ liệu từ cảm biến sau khi được đọc sẽ không chỉ hiển thị trên LCD mà còn được gửi lên một nền tảng IoT (như Blynk, ThingSpeak). Từ đó, một giao diện web hoặc một app mobile có thể truy cập vào nền tảng này để hiển thị dữ liệu dưới dạng biểu đồ và cung cấp các nút nhấn ảo. Người dùng có thể thực hiện giám sát từ xa tình trạng của cây trồng và bật/tắt máy bơm thủ công chỉ với một vài thao tác trên điện thoại, tạo ra một giải pháp nông nghiệp thông minh thực thụ.

V. Đánh giá ưu điểm và hướng phát triển của hệ thống tưới

Sau quá trình thiết kế, thi công và kiểm thử, hệ thống tưới nước tự động dựa trên đồ án vi xử lý đã chứng minh được nhiều ưu điểm vượt trội. Ưu điểm lớn nhất là khả năng tự động hóa hoàn toàn, giúp tiết kiệm đáng kể thời gian và công sức lao động. Hệ thống hoạt động dựa trên dữ liệu từ cảm biến độ ẩm đất, đảm bảo cây trồng được tưới đúng và đủ, tránh tình trạng úng nước hoặc khô hạn, từ đó nâng cao năng suất. Việc tối ưu hóa lượng nước tưới cũng góp phần tiết kiệm tài nguyên nước, một yếu tố quan trọng trong bối cảnh biến đổi khí hậu. Hơn nữa, chi phí để xây dựng một mô hình thực tế tương đối thấp, phù hợp với điều kiện của nhiều hộ gia đình hoặc các trang trại quy mô nhỏ. Tuy nhiên, hệ thống vẫn còn một số hạn chế nhất định như độ bền của cảm biến khi hoạt động lâu trong môi trường đất ẩm, và sự phụ thuộc vào nguồn điện. Hướng phát triển trong tương lai rất rộng mở. Hệ thống có thể được nâng cấp bằng cách tích hợp thêm nhiều loại cảm biến khác (pH, dinh dưỡng đất) và sử dụng năng lượng mặt trời để trở nên tự chủ hơn về năng lượng. Đặc biệt, việc áp dụng trí tuệ nhân tạo (AI) để phân tích dữ liệu và dự đoán thời điểm tưới tối ưu là một hướng đi đầy tiềm năng. Hệ thống cũng có thể được tùy biến để phù hợp với các phương pháp tưới cụ thể như tưới nhỏ giọt hoặc tưới phun sương.

5.1. Kết quả đạt được và những hạn chế còn tồn tại của đồ án

Báo cáo đồ án ghi nhận kết quả thành công trong việc xây dựng một mô hình thực tế hoạt động ổn định, đáp ứng các yêu cầu thiết kế ban đầu. Hệ thống có khả năng tự động đo độ ẩm và điều khiển máy bơm một cách chính xác. Tuy nhiên, hạn chế của mô hình là phạm vi ứng dụng nhỏ, cảm biến có thể bị ăn mòn sau một thời gian sử dụng, và logic điều khiển còn đơn giản, chủ yếu dựa vào một ngưỡng độ ẩm cố định. Việc khắc phục những điểm này, ví dụ như sử dụng cảm biến điện dung thay cho cảm biến điện trở và phát triển thuật toán điều khiển linh hoạt hơn, là nhiệm vụ cho các giai đoạn phát triển tiếp theo.

5.2. Tiềm năng ứng dụng trong tưới nhỏ giọt và tưới phun sương

Nền tảng của hệ thống tưới nước tự động này có thể dễ dàng được mở rộng và tùy chỉnh. Thay vì một máy bơm thông thường, đầu ra có thể kết nối với một hệ thống van điện từ để điều khiển các dòng nước trong một hệ thống tưới nhỏ giọt quy mô lớn. Tương tự, nó có thể điều khiển các béc phun trong một hệ thống tưới phun sương cho các vườn lan hoặc nhà kính. Bằng cách kết hợp giám sát từ xa qua IoT, người quản lý có thể điều khiển và theo dõi nhiều khu vực tưới khác nhau một cách độc lập, mở ra tiềm năng ứng dụng to lớn trong nông nghiệp công nghệ cao và cảnh quan đô thị.

11/09/2025

Trích đoạn nội dung tài liệu

Đặt vấn đề ……………………… II. Giới thiệu phần cứng 1. Vi điều khiển ATmega328P-AU. Atmega328 là một vi điều khiển tiên tiến và nhiều tính năng được sản xuất bởi hãng Atmel thuộc họ MegaAVR có sức mạnh vượt trội so với Atmega8.

Atmega328 là một bộ vi điều khiển 8 bit dựa trên kiến trúc RISC tiên tiến. Các vi điều khiển được sản xuất trong họ megaMVR được thiết kế để xử lý các bộ nhớ chương trình lớn và mỗi vi điều khiển trong họ này chứa lượng ROM, RAM, các chân I / O và các tính năng khác nhau và được sản xuất với các chân đầu ra khác nhau, từ 8 chân đến hàng trăm chân. *Đặc tính / Thông số kỹ thuật của ATmega328P Thiết kế hiệu suất cao. Tiêu thụ ít điện năng.

Số chân ngõ vào Analog là 6. Số chân I/O kỹ thuật số là 14 chân. Số kênh PWM là 6. Tổng số chân I/O là 23 chân.

Giao thức truyền thông nối tiếp USART, SPI, I2C. Điện áp hoạt động tối thiểu và tối đa từ 1. Bộ nhớ flash 32KB, SRAM 2KB, EEPROM 1KB. Tốc độ xung nhịp 16MHz.

Chứa tổng cộng ba bộ định thời, hai 8 bit và một 16 bit. Sơ đồ chân vi điều khiển ATmega328: 1. Các thông số khác - Bộ nhớ. ATmega328 có 32KB bộ nhớ (với 0.5KB dành cho bootloader).

Nó có 2KB bộ nhớ SRAM và 1KB bộ nhớ EEPROM (có thể đọc và ghi thông qua thư viện EEPROM library). Arduino Uno có một số phương thức để giao tiếp với máy tính và các Arduino khác, hoặc các dòng vi xử lý khác. ATmega328 cung cấp giao tiếp nối tiếp UART TTL (5V), trong đó có sẵn trên các chân digital 0 (RX) và 1 (TX). ATmega16U2 trên các kênh giao tiếp nối tiếp với bo mạch này thông qua cổng USB và xuất hiện cổng COM ảo kết nối với phần mềm máy tính.

16U2 sử dụng các trình điều khiển tiêu chuẩn phần cứng USB COM. Tuy nhiên khi thực hiện trên Window, một tập tin được yêu cầu. Phần mềm Arduino bao gồm một màn hình cho ta nhìn thấy được dữ liệu được chuyển đến bo mạch Arduino. LED RX và TX sẽ nhấp nháy khi dữ liệu được chuyển thông qua kết nối cổng USB của chip và cổng USB của máy tính.

Thư viện SoftwareSerial cho phép giao tiếp nối tiếp trên bất kỳ chân digital nào của Uno. ATmega328 cũng hỗ trợ giao tiếp I2C (TWI) và SPI. Phần mềm 19 Arduino bao gồm một thư viện wire library để đơn giản hóa việc sử dụng bus I2C. Với truyền dẫn SPI, sử dụng thư viện SPI.

-Tự động reset (phần mềm). Thay vì reset vật lý trước khi tải dữ liệu, Arduino Uno được thiết kế để cho phép thay thế bằng một phần mềm chạy trên máy tính khi được kết nối. Một trong những dòng điều khiển phần cứng (DTR) của ATmega8U2/16U2 được kết nối với đường dây được thiết lập của ATmega328 thông qua một tụ điện 100 nF. Khi dòng này được xác định (thấp nhất) , dòng reset rơi đủ lớn để reset lại chip.

Phần mềm Arduino sử dụng khả năng này để cho phép tải code lên bằng cách nhấn nút upload trong môi trường Arduino. Điều này có nghĩa là bộ nạp khởi động có thể có một thời gian chờ ngắn hơn, giảm thiểu DTR có thể phối hợp khi bắt đầu tải lên. Thiết lập này có ý nghĩa khác. Khi Uno được kết nối với một trong hai máy tính chạy Mac OS X hoặc Linux, nó reset mỗi khi kết nối được thực hiện từ phần mềm (thông qua cổng USB).

Trong nửa giây hoặc lâu hơn, bộ nạp khởi động chạy trên Uno. Trong khi nó được lập trình để bỏ qua dữ liệu bị thay đổi, nó sẽ ngăn chặn các byte đầu tiên của dữ liệu gửi đến bo mạch khi kết nối được thiết lập. Nếu 20 một bản sketch chạy trên bo mạch nhận được cấu hình một lần hoặc các dữ liệu khác khi lần đầu tiên bắt đầu, chắc chắn rằng phần mềm mà bo mạch giao tiếp chờ đợi một giây sau khi mở kết nối và trước khi gửi dữ liệu này. Bảo vệ quá dòng USB.

Arduino Uno có một bảng thiết lập được sử dụng để bảo vệ cổng USB của máy tính khi ngắn mạch và quá dòng. Mặc dù hầu hết các máy tính cung cấp chế độ bảo vệ nội bộ, nhưng còn có thêm các cầu chì, các cầu chì này có thêm một lớp bảo vệ. Nếu dòng cao hơn 500 mA được áp dụng cho các cổng USB, cầu chì sẽ tự động phá vỡ các kết nối khi ngắn mạch và quá dòng xảy ra. Đặc tính vật lý.

Chiều dài tối đa và chiều rộng tương ứng của Uno PCB là 2,7 và 2,1 inch, với các kết nối USB và jack nguồn thì sẽ vượt ra ngoài kích thước cũ. Bốn lỗ vít trên bo mạch dùng để gắn vào một bề mặt trong một số trường hợp. Lưu ý rằng khoảng cách giữa chân số 7 và 8 là 160mm (0,16 "). Bo mạch Arduino Uno Rev 3 2.

Giới thiệu về Arduino Arduino là một nền tảng mã nguồn mở được sử dụng để xây dựng các dự án điện tử. Arduino bao gồm cả vi mạch lập trình (thường được gọi là vi điều khiển) và một phần mềm (IDE) được sử dụng để lập trình viết và tải mã máy tính lên bo mạch. Nhờ sự đơn giản và dễ tiếp cận, Arduino đã được sử dụng trong hàng nghìn dự án và ứng dụng khác nhau. Phần mềm Arduino rất dễ sử dụng cho người mới bắt đầu, nhưng đủ linh hoạt cho người dùng nâng cao.

Không giống như hầu hết các bo mạch lập trình trước đây, Arduino không cần phần cứng riêng để tải mã mới lên bo mạch - bạn có thể chỉ cần sử dụng cáp USB. Ngoài ra, Arduino IDE sử dụng phiên bản đơn giản của C++, giúp việc học lập trình dễ dàng hơn. 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 biế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 cực kỳ dễ sử dụng, với một 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.

Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm. Chỉ với khoảng $30, người dùng đã có thể sở hữu một bo Arduino có 20 ngõ I/O có thể tương tác và điều khiển chừng ấy thiết bị. Arduino chính thức được đưa ra giới thiệu vào năm 2005 như là một công cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một trong những người phát triển Arduino, tại trường Interaction Design Instistute Ivrea (IDII). Hiện nay Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quan nơi đã sản sinh ra Arduino.

Một số ứng dụng của Arduino bao gồm: lập trình robot, máy bay không người lái, điều khiển thiết bị ánh sáng cảm biến, máy in 3D, thiết kế hệ thống smart home,… 2. Những khả năng của bo mạch Arduino * Đọc tín hiệu cảm biến ngõ vào: Digital: Các bo mạch Arduino đều có các cổng digital có thể cấu hình làm ngõ vào hoặc ngõ ra bằng phần mềm. Do đó người dùng có thể linh hoạt quyết định số lượng ngõ vào và ngõ ra. Tổng số lượng cổng digital trên các board là 14.

Analog: Các bo mạch Arduino đều có trang bị các ngõ vào analog với độ phân giải 10-bit (1024 phân mức, ví dụ với điện áp chuẩn là 5V thì độ phân giải khoảng 0. Số lượng cổng vào analog là 6.Với tính năng đọc analog, người dùng có thể đọc nhiều loại cảm biến loại tương tự khác nhau như nhiệt độ, áp suất, độ ẩm, ánh sáng, gyro, accelerometer… * Xuất tín hiệu điều khiển ngõ ra: Digital output: Tương tự như các cổng vào digital, người dùng có thể cấu hình trên phần mềm để quyết định dùng ngõ digital nào là ngõ ra. Tổng số lượng cổng digital là 14. PWM output: Trong số các cổng digital, người dùng có thể chọn một số cổng dùng để xuất tín hiệu điều chế xung PWM.

Độ phân giải của các tín hiệu PWM này là 8- bit. Số lượng cổng PWM là 6. PWM có nhiều ứng dụng trong viễn thông, xử lý âm thanh hoặc điều khiển tốc độ động cơ mà phổ biến nhất là động cơ servor trong các máy bay mô hình. * Chuẩn Giao tiếp: Serial: Đây là chuẩn giao tiếp nối tiếp được dùng rất phổ biến trên các bo mạch Arduino.

Mỗi bo có trang bị một số cổng Serial cứng (việc giao tiếp do phần cứng trong chip thực hiện). Bên cạnh đó, tất cả các cổng digital còn lại đều có thể thực hiện giao tiếp nối tiếp bằng phần mềm (có thư viện chuẩn, người dùng không cần phải viết code). Mức tín hiệu của các cổng này là TTL 5V. Lưu ý cổng nối tiếp RS232 trên các thiết bị hoặc PC có mức tín hiệu là UART 12V.

Để giao tiếp được giữa hai mức tín hiệu, cần phải có bộ chuyển mức, ví dụ như chip MAX232. Số lượng cổng Serial cứng là 1. Với tính năng giao tiếp nối tiếp, các bo Arduino có thể giao tiếp được với Máy tính, các bo Arduino khác, các thiết bị cảm biến, các thiết bị đầu ra như màn hình, LED, động cơ,. USB: Các bo Arduino tiêu chuẩn đều có trang bị một cổng USB để thực hiện kết nối với máy tính dùng cho việc tải chương trình.

Tuy nhiên các chip AVR không có cổng USB, do đó các bo Arduino phải trang bị thêm phần chuyển đổi từ USB thành tín hiệu UART. Do đó máy tính nhận diện cổng USB này là cổng COM chứ không phải là cổng USB tiêu chuẩn. SPI: Đây là một chuẩn giao tiếp nối tiếp đồng bộ có bus gồm có 4 dây. Với tinh năng này các bo Arduino có thể kết nối với các thiết bị như LCD, module sim, bộ điều khiển cảm biến các loại, đọc thẻ nhớ SD và MMC… TWI (I2C): Đây là một chuẩn giao tiếp đồng bộ khác nhưng bus chỉ có hai dây.

Với tính năng này, các bo Arduino có thể giao tiếp với một số loại cảm biến như thermostat của CPU, tốc độ quạt, một số màn hình OLED/LCD, đọc real-time clock, chỉnh âm lượng cho một số loại loa… * Môi trường lập trình bo mạch Arduino. Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính năng thông dụng mang lại nhiều lợi thế cho Arduino, tuy nhiên sức mạnh thực sự của Arduino nằm ở phần mềm. Môi trường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình Wiring dễ hiểu và dựa trên nền tảng C/C++. Và quan trọng là số lượng thư viện code được viết sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ