Tải bản đầy đủ - 0 (trang)
Xuất tín hiệu điều khiển ngõ ra:

Xuất tín hiệu điều khiển ngõ ra:

Tải bản đầy đủ - 0trang

Đồ án tốt nghiệp

- Số lượng cổng PWM đối với các bo dùng Atmega328 là 6, và đối với các bo dùng

Atmega2560 là 14.

- PWM có nhiều ứng dụng trong viễn thông, xử lý âm thanh hoặc điều khiển động cơ

mà phổ biến nhất là động cơ servos 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 RS-232 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 của Atmega328 là 1 và của Atmega2560 là 4.

- 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 rất nhiều

thiết bị như PC, touchscreen, các game console…

 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 Ardunino 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 tính

năng này các bo Arduino có thể kết nối với các thiết bị như LCD, bộ điều khiển video

game, 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



Trường Đại học Công nghiệp Hà Nội



Trang43



Đồ án tốt nghiệp

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…

Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không

tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những

thiết bị có khả năng tương tác với mơi trường thông qua các cảm biến và các cơ cấu

chấp hành. Những ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các

robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động. Đi cùng với nó là một

mơi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân thơng thường và

cho phép người dùng viết các chương trình cho Aduino bằng ngôn ngữ C hoặc C++.

Arduino là một công cụ tuyệt vời để tìm hiểu những điều cơ bản về lập trình và linh

kiện điện tử. Có rất nhiều loại mạch,bộ công cụ và shield( thường đi với các thư viện

lập trình tương ứng) để giúp thực hiện linh hoạt các ứng dụng công nghệ và mở rộng

các khả năng của dự án.

Với những sức mạnh xử lý như kể trên của bo mạch Arduino và qua quá trình tìm hiểu

và tham khảo, chúng em quyết định chọn Board Arduino Mega 2560 sử dụng trong đề

tài là vi điều khiển và vận hành hệ thống.

2.3.1.2



Board Arduino Mega 2560



Board arduino mega 2560 sử dụng chip ATmega2560 của ATmel, bộ nhớ chương trình

lên đến 256KB trong đó có 8KB được sử dụng bởi bootloader. Với bộ nhớ chương

trình lớn, bạn có thể viết nhiều chương trình phức tạp, điều khiển được nhiều thiết bị

hơn. Dung lượng RAM là 8KB. 4KB EEPROM



Trường Đại học Cơng nghiệp Hà Nội



Trang44



Đồ án tốt nghiệp



Hình 2.6: Bo mạch điều khiển Arduino Mega 2560

Arduino Mega 2560 là một vi điều khiển hoạt động dựa trên chip Atmega2560. Bao

gồm:

 54 chân digital( trong đó có 15 chân có thể xuất ra xung)

 6 ngắt ngoài:

Số chân tự ngắt

0

Chân trên arduino mega 2560

2

 16 chân vào analog( từ A0 đến A15).

 4 cổng Serial giao tiếp với phần cứng:

Cổng serial

Cổng 0

Cổng 1

Cổng 2

Cổng 3













Chân PX

0

19

17

15



1

3



2

21



3

20



4

19



5

18



Chân TX

1

18

16

14



1 thạch anh với tần số dao động 16 MHZ

1 cổng kết nối USB

1 jack cắm điện

1 đầu ICSP

1 nút reset



Trường Đại học Công nghiệp Hà Nội



Trang45



Đồ án tốt nghiệp

Arduino Mega 2560 có thể sử dụng hầu hết các shield dành cho các mạch arduino

Uno hay hoặc các mạch trước đây như Duemilanove hay Diecimila



Hình 2.7Sơ đồ chân của bo mạch Arduino Mega 2560

Bảng 2.1: các chi tiết về thông số kỹ thuật Arduino Mega 2560

Chip xử lý

Điện áp hoạt động

Điện áp vào (đề nghị)

Điện áp vào (giới hạn)

Cường độ dòng điện trên mỗi 3.3V pin

Cường độ dòng điện trên mỗi I/O pin

Flash Memory

SRAM

EEPROM

Clock Speed



ATmega2560

5V

7V-15V

6V-20V

50 mA

20 mA

256 KB

8 KB

4 KB

16 MHz



Khả năng hoạt động



Trường Đại học Cơng nghiệp Hà Nội



Trang46



Đồ án tốt nghiệp

Mega có thể được hỗ trợ thông qua kết nối USB hoặc với một nguồn cung cấp năng

lượng



bên



ngồi.



Nguồn



điện



được



chọn



tự



động.



Bên ngồi (khơng có USB) quyền lực có thể đến hoặc từ một bộ chuyển đổi AC-DC

(tường mụn cóc) hoặc pin. Bộ điều hợp có thể được kết nối bằng cách cắm một 2.1mm

Trung tâm tích cực cắm vào jack cắm điện của bo mạch. Dẫn từ pin có thể được lắp

vào



các



tiêu



đề



pin



Gnd







Vin



đầu



nối



điện.



Bo mạch có thể hoạt động trên một nguồn cung cấp bên ngoài của 6 đến 20 volt. Nếu

được cung cấp ít hơn 7V, Tuy nhiên, 5V pin có thể cung cấp ít hơn 5 volt và bo mạch

có thể khơng ổn định. Nếu sử dụng nhiều hơn 12V, điều chỉnh điện áp có thể quá nóng





gây







hại



ban.



Trong



phạm



vi



được



đề



nghị







7-12



volt.



Các chân điện là như sau:

 VIN. Điện áp đầu vào cho các board Arduino khi nó sử dụng một nguồn điện bên

ngoài (như trái ngược với 5 volt từ kết nối USB hoặc nguồn điện quy định

khác). Bạn có thể cung cấp điện áp thông qua mã pin này, hoặc, nếu điện áp qua

jack điện, cung cấp truy cập vào nó thơng qua mã pin này.

 5V. pin này kết quả đầu ra 5V cung cấp nguồn điện hoặc từ jack cắm điện DC(7 12V), kết nối USB (5V), hoặc pin VIN của Arduino (7-12V). Cung cấp điện áp

qua 5V hoặc 3.3V chân đi qua các điều chỉnh, và có thể làm hỏng thiết bị.

 3V3. Một nguồn cung cấp 3,3 volt được tạo ra bởi điều chỉnh on-board. Về hiện

tại tối đa là 50 mA.

 GND. Chân nối đất

 IOREF. Pin này trên diễn đàn cung cấp các tham chiếu điện áp mà vi điều khiển

hoạt động. Một lá chắn cấu hình đúng có thể đọc điện áp pin IOREF và chọn

nguồn điện thích hợp hoặc bật điện áp phiên dịch trên kết quả đầu ra để làm

việc với 5V hoặc 3.3V.

Một số chân khác:

 Afef. Điện áp tham chiều cho các đầu vào analog. Được sử dụng với

analogRefence

 Reset. Mang dòng LOW để thiết lập lại các vi điều khiển.

Truyền thơng với máy tính:

Arduino Mega 2560 có một số phương tiện truyền thơng với một máy tính, một

Arduino, hoặc một vi điều khiển khác. Các Atmega2560 cung cấp bốn phần cứng

Trường Đại học Công nghiệp Hà Nội



Trang47



Đồ án tốt nghiệp

UARTs cho TTL(5V) giao tiếp nối tiếp. Một ATmega16U2 (ATmega 8U2 trên phiên

bản 1 và phiên bản 2) trên các kênh là một trong những qua USB và cung cấp một

cổng com ảo để phần mềm trên máy tính (máy tính Windows sẽ cần một tập tin .inf,

nhưng máy OSX và Linux sẽ công nhận hội đồng quản trị như một cổng COM tự

động. Phần mềm Arduino (IDE) bao gồm một màn hình nối tiếp cho phép dữ liệu văn

bản đơn giản được gửi đến và từ hội đồng quản trị. các RX và TX đèn LED trên bảng

sẽ nhấp nháy khi dữ liệu đang được truyền qua ATmega8U2 / ATmega16U2 chip và

USB kết nối với máy tính (nhưng không cho giao tiếp nối tiếp vào chân 0 và 1).

Một thư viện SoftwareSerial cho phép giao tiếp nối tiếp trên bất kỳ của Mega 2560 của

chân kỹ thuật số.

Mega 2560 cũng hỗ trợ TWI và SPI truyền thông. Phần mềm Arduino (IDE) bao gồm

một thư viện Wire để đơn giản hóa việc sử dụng các bus TWI; Đối với SPI giao tiếp,

sử dụng thư viện SPI .

Lập trình

Arduino có thể được lập trình với các phần mềm Arduino. Các Atmega2560 trên Mega

Arduino đi kèm preburned với một bộ nạp khởi động cho nó mà khơng cho phép bạn

tải lên mã mới dụng một lập trình viên phân cứng bên ngồi. Nó giao tiếp bàng cách

sử dụng gốc STK500 giao thức.

2.3.1.3



Chương trình phần mềm IDE và ngơn ngữ lập trình cho 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 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++ rất quen thuộc với người làm kỹ thuật. 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.



Trường Đại học Công nghiệp Hà Nội



Trang48



Đồ án tốt nghiệp



Hình 2.8: Giao diện phần mềm Arduino IDE

Arduino IDE là phần mềm dùng để lập trình cho arduino. Mơi trường lập trình cho

Arduino là IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows,

Macintosh OSX và Lunix. Do có tính chất nguồn mở nên mơi trường lập trình này

hồn tồn miễn phí và có thể mở rộng hơn bởi người dùng có kinh nghiệm.

Ngơn ngữ lập trình có thể được mở rộng thơng qua các thư viện C++. Và ngơn ngữ lập

trình này dựa trên nền tảng ngôn ngữ C của AVR nên người dùng hồn tồn có thể

nhúng thêm code viết bằng AVR vào chương trình nếu muốn. Hiện tại, Arduino IDE

có thể download từ trang chủ http:/arduino.cc/.



Trường Đại học Công nghiệp Hà Nội



Trang49



Đồ án tốt nghiệp



2.3.2 Các cảm biến đo thông số mơi trường

2.3.2.1



Modul DHT11 đo nhiệt độ và độ ẩm

Hình 2.9:Module DHT11



Cảm biến độ ẩm, nhiệt độ DHT11 ra chân được tích hợp sẵn điện trở 5,1kΩ giúp

người dùng dễ dàng kết nối và sử dụng hơn so với cảm biến DHT11 chưa ra chân,

module lấy dữ liệu thông qua giao tiếp 1 wire (giao tiếp 1 dây). Bộ tiền xử lý tín hiệu

tích hợp trong cảm biến giúp bạn có được dữ liệu chính xác mà khơng cần phải qua bất

kỳ tính tốn nào. Module được thiết kế hoạt động ở mức điện áp 5VDC.

Các tính năng chính:

 Tích hợp cảm biến nhiệt độ và độ ẩm trên modul duy nhất

 Ngõ ra tín hiệu số dễ dùng

Ứng dụng

 Đo nhiệt độ, độ ẩm

 Dùng làm hệ thống tưới cây thơng minh...

Thơng số kỹ thuật

 Điện áp cấp 3~5VDC, dòng tiêu thụ<2.5mA

 Ngưỡng độ ẩm:( chính xác nhất) 20~80%- Độ phân giải:5%

 Ngưỡng đo nhiệt độ:( chính xác nhất) 0~500C-Độ phân giải: 20C

 Kích thước: 15,1mm x25mm x7,7mm

Trường Đại học Công nghiệp Hà Nội



Trang50



Đồ án tốt nghiệp

 Khối lượng: 6g

2.3.2.2



Module cảm biến cường độ ánh sáng TSL 2561



Hình 2.10: Module cảm biến cường độ ánh sáng TSL 2561

Module TSL 2561 là cảm biến ánh sáng kỹ thuật số, dựa trên giao tiếp I2C, chuyển đổi

cường độ ánh sáng thành tín hiệu số



Hình 2.11: Sơ đồ ngun lý của TSL 2561

Thơng số kỹ thuật:

 Có thể lựa chọn chế độ phát hiện

 Độ phân giải cao 16-bit đầu ra

 Phạm vi hoạt động rộng: 0,1-40000 LUX



Trường Đại học Công nghiệp Hà Nội



Trang51



Đồ án tốt nghiệp











Dải nhiệt độ hoạt động: -400C-850C

Điện áp cung cấp, VDD: 3,8V

Dải điện áp đầu ra số, VO: -0,5V đến 3,8V

Dòng đầu ra số, IO: -1mA đến 20mA



Thiết bị TSL 2561 cũng hỗ trợ một tính năng ngắt mà đơn giản hóa và cải thiện hiệu

quả của hệ thống bằng cách loại bỏ sự cần thiết phải thăm dò một cảm biến cho một

giá trị cường độ ánh sáng. Mục đích chính của chức năng ngắt là phát hiện ra sự thay

đổi có ý nghĩa trong cường độ ánh sáng. Khái niệm về sự thay đổi nghĩa có thể được

định nghĩa bởi người sử dụng cả về cường độ ánh sáng và thời gian, hoặc sự kiên trì,

sự thay đổi cường độ đó. TSL 2561có khả năng xác định ngưỡng trên và dưới mức ánh

sáng hiện tại. Ngắt được tạo ra khi giá trị của chuyển vượt quá một trong các giới hạn

này.

Bảng 2.2: điều kiện hoat động của modul TSL 2561

Min

Điện áp, VDD

2.7

Nhiệt độ hoạt động

-30

SCL, SDA điện áp đầu vào thấp

-0.5

SCL, SDA điện áp đầu vào cao

2.1

2.3.2.3

Modul cảm biến độ ẩm đất



NOM

3



Max

3.6

7.

0.8

3.6



Đơn vị

V

0

C

V

V



Cảm biến độ ẩm đất, trạng thái đầu ra mức thấp( 0V), khi đất thiếu nước đầu ra sẽ là

mức cao (5V), độ nhạy cao chúng ta có thể điều chỉnh được bằng biến trở. Phần đầu

đo được cắm vào đất để phát hiện độ ẩm của đất, khi độ ẩm của đất đạt ngưỡng thiết

lập, đầu ra DO sẽ chuyển trạng thái từ mức thấp lên mức cao. Nhờ thế, các bạn có thể

sử dụng Analog hoặc Digital của Arduino để đọc giá trị từ cảm biến.



Hình 2.12 Cảm biến độ ẩm đất



Trường Đại học Công nghiệp Hà Nội



Trang52



Đồ án tốt nghiệp

Cảm biến độ ẩm đất có 4 chân: Vcc, GND, 2 ngõ ra là D0( cho giá trị trả về mức logic

0 1) và A0( giúp bạn có thể đọc được chính xác hơn độ ẩm của đất). Bạn có thể dùng 1

trong 2 chân này... ở đây đọc giá trị của cả hai chân.

Sau khi nhận được tín hiệu chúng em sẽ lấy kết quả trung bình của 10 lần đo liên tiếp

để ra kết quả chính xác nhất.

Bảng 2.4 Thơng số cảm biến độ ẩm đất

Cảm biến độ ẩm đất

Vcc

GND

D0

A0



Arduino mega 2560

5V

GND

2

A0



2.3.3 Giao thức I2C và modul thời gian thực DS1302

I2C là viết tắt của “ Inter_Integrated Circuit”, một chuẩn giao tiếp được phát minh bởi

Philips semiconductor division (giờ là NXP) nhằm đơn giản hóa việc trao đổi dữ liệu

giữa các ICs. Đơi khi nó cũng được gọi là Two Wire Interface (TWI) vì chỉ sử dụng 2

kết nối để truyền tải dữ liệu, 2 kết nối của giao tiếp I2C gồm: SDA (Serial Data Line)

và SCL (Serial Clock Line).

Có hàng ngàn thiết bị sử dụng giao tiếp I2C, chẳng hạn như real-time clocks, digital

potentiometers, temperature sensors, digital compasses, memory chips, FM radio

circuits, I/O expanders, LCD controllers, amplifiers,...Board Arduino của chúng ta có

thể kiểm sốt tất cả và số lượng tối đa trong một thời điểm lên đến 112 thiết bị I2C.

Trên board Arduino UNO, SDA là chân analog 4, SCL là chân analog 5.



Hình 2.12: SDA là chân analog 4, SCL là chân analog 5

Trên I2C bus, sẽ có một thiết bị được coi là "Master", và trong hầu hết các trường

hợp, Arduino là một "Master", mỗi IC được gắn trên I2C bus là một "Slave". Mỗi



Trường Đại học Công nghiệp Hà Nội



Trang53



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Xuất tín hiệu điều khiển ngõ ra:

Tải bản đầy đủ ngay(0 tr)

×