1. Trang chủ
  2. » Tất cả

Đồ án Vi Xử Lí

40 6 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 40
Dung lượng 1,27 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Điều khiển cho một đối tượng có nhiều cách để thực hiện, tuy nhiên trong giới hạn của đồ án, chúng em đã điều khiển cho đề tài Hệ thống tưới cây tự động bằng Vi điều khiển.. MỤC LỤCCHƯƠN

Trang 1

LỜI NÓI ĐẦU

Kính thưa thầy, cô!

Công nghệ tự động là một trong những ngành quan trọng bậc nhất của mọinền công nghiệp Nó luôn phát triển mạnh mẽ không ngừng, luôn thay đổi và tiếnhóa tới các mức độ cao hơn Là một sinh viên, em cảm thấy tự hào khi được tiếpthu những kiến thức cơ bản của ngành công nghệ ấy

Hiểu được mức độ quan trọng đó của ngành nghề mình đang học, chúng emluôn cố gắng tìm tòi và học hỏi để có thể hiểu, lập trình điều khiển cho một đốitượng Điều khiển cho một đối tượng có nhiều cách để thực hiện, tuy nhiên trong

giới hạn của đồ án, chúng em đã điều khiển cho đề tài Hệ thống tưới cây tự động bằng Vi điều khiển.

Chúng em xin gửi lời cảm ơn chân thành tới ThS Lê Thị Vân Anh, người đã

tận tình hướng dẫn, chỉ bảo nhóm chúngem để em có thể hoàn thành đồ án này mộtcách tốt nhất

Dù đã rất cố gắng nhưng do chủ đề rất rộng lớn của kĩ thuật và trình độ cóhạn nên chúng em không tránh khỏi sai sót Chúng em rất mong muốn nhận đượcnhững nhận xét, góp ý của thầy cô giáo

Nhóm sinh viên thực hiện

Nguyễn Anh Tuấn Trần Anh Tú

Vũ Văn Lương Nguyễn Việt Dương

Hà Nội, tháng 5 năm 2016

Trang 2

MỤC LỤC

CHƯƠNG I: ĐẶT VẤN ĐỀ

Như các bạn đã biết, ngày nay việc áp dụng khoa học, kĩ thuật vào sản xuấtnông nghiệp là một việc làm cần thiết, giúp tăng năng suất, giảm thiểu sức nặngkhi lao động tay chân, ảnh hưởng sức khỏe, thay thế cho những phương thức

truyền thống cũ kĩ, đem lại hiệu quả kinh tế cao…Và, hệ thống tưới cây tự động

là một trong những ví dụ hết sức tiêu biểu cho những luẩn điểm đã nêu ở trên

Hiện nay, việc sử dụng hệ thống tưới cây tự động đã trở nên phổ biến,chúng không những tạo nên những hình thái đẹp mà còn đáp ứng nhu cầu nước củacây Chúng đóng góp cho sản xuất nông nghiệp, đặc biệt là ngành nông nghiệpcông nghệ cao Một hệ thống tưới tự động có rất nhiều lợi ích mà có thể bạn chưa

hề nghĩ tới, đặc biệt là vào mùa khô

Việc thiết kế hệ thống tưới cây tự động đòi hỏi bạn có một số thông tin vềcác vật tư thiết bị, như bộ điều khiển tưới cây tự động, van điện từ… Bên cạnh đó,việc lập trình, thiết kế hệ thống tưới cây tự động đòi hỏi nhiều kiến thức và kĩnăng Lập trình cho bộ điều khiển hệ thống tưới cây tự động có thể sử dụng rấtnhiều công cụ như: Vi điều khiển, PLC,…Do yêu cầu của môn học, ở đồ án này,

nhóm chúng em sẽ sử dụng Vi điều khiển Arduino UNO R3, chip đồng hồ thời gian thực DS1307 và LCDđể thiết kế cho hệ thống này.

1 Tìm hiểu hệ thống tưới cây tự động

1.1 Tìm hiểu lợi ích của hệ thống tưới cây tự động

1.1.1 Lợi ích của hệ thống tưới tự động trong cắt giảm chi phí:

Lý do nhiều nhất khi xây dựng một hệ thống tưới cây tự động mà mọi ngườithường nghĩ tới đó là chi phí lắp đặt, tuy nhiên ít người biết rằng một hệ thống tưới

tự động không chỉ đem lại đủ số vốn đầu tư mà còn mang lại những lợi ích khác

Trang 3

so với tưới thủ công Điều này giúp bạn cắt giảm đáng kể hóa đơn tiền nước hàngtháng.

Tạo giá trị cho công trình: có thể bạn chưa biết, cảnh quan của một côngtrình chiếm 20% tổng giá trị công trình Một hệ thống tưới tốt và đúng cách thì làmcảnh quan thêm thu hút và từ đó tạo ra giá trị

Tiết kiệm thời gian: thời gian là tiền bạc, và thời gian thì vô cùng quý giá.Một hệ thống tưới tự độngsẽ thay bạn chăm sóc cho cây cối sân nhà, thời gian đóbạn có thể chăm sóc cho gia đình hay thực hiện những ý tưởng sáng tạo

Tiết kiệm đáng kể nguồn nhân công so với thực hiện công việc tưới tiêubằng thủ công

Hệ thống được đầu tư cố định, đảm bảo tuổi thọ lâu dài cho các thiết bị dùngtrong tưới tiêu

Hình ảnh minh họa

1.1.2 Lợi ích của hệ thống tưới tự động trong bảo vệ môi trường:

Ngoài việc cắt giảm chi phí, hệ thống tưới tự động còn có lợi cho môitrường Bảo vệ nguồn nước: dòng chảy là một trong số những nguyên nhân gây ônhiễm nguồn nước ngầm Một hệ thống được điều khiển tự động, đặc biệt là một

bộ cảm biến và tắt tự động, làm giảm đáng dòng chảy mang theo ô nhiễm và bụibẩn vào nguồn nước ngầm

Trang 4

Tiết kiệm nước: nguồn tài nguyên nước đang ngày càng cạn kiệt, nhất làtrong thời đại hiện nay Hệ thống tưới tự động giúp bạn bảo vệ tài nguyên quý giá

ấy mà vẫn có được cảnh quan thiên nhiên cây cối xanh tốt Hệ thống tưới có thểkhai thác nguồn nước ngầm để phục vụ tưới tiêu, điều này làm cho chi phí phải trảđối với nước tưới là rất thấp

Hệ thống tưới tự động được thiết kế chuyên nghiệp sẽ tiết kiệm được tới60% lượng nước dùng trong tưới tiêu

Tóm lại, hệ thống tưới cây tự động vô cùng có lợi cả về mặt chi phí và môitrường, giúp bạn kiết kiệm thời gian và công sức nhưng công trình cây xanh củabạn thì vẫn luôn luôn tươi tốt

1.2 Các bước tiến hành lắp đặt hệ thống tưới cây tự động

Dựa vào diện tích canh tác, giống cây trồng, cần tiến hành đo đạc, thiết kế

mô hình hệ thống tưới cây tự động sao cho hợp lý

Xác định loại thiết bị tưới phù hợp với mô hình đã thiết kế bằng việc dựavào áp lực, lưu lượng nước, công suất của hệ thống thiết kế

Chọn bình tưới và vị trí đặt bình tưới: bình tưới quạt dùng cho khu vực lớn,bình tưới phun cho khu vực nhỏ Tùy theo thực tế khu canh tác mà đặt vị trí bìnhtưới sao cho nước được cung cấp đều khắp mọi nơi

Phân chia hệ thống tưới cây tự động thành các vùng khác nhau Lượng nướcthường không có sẵn để tiến hành tưới đồng loạt trên diện rộng, phải phân chia khuvực tưới, chọn vị trí đặt van để kiểm soát áp lực và lượng nước mỗi khu vực

Tiến hành lắp đặt hệ thống tưới cây tự động: chọn vị trí đặt bảng điều khiển,máy bơm, đường ống và van theo thiết kế

1.3 Thời gian tưới và các hệ thống tưới tự động hiện nay đang được ưa chuộng

1.3.1 Thời gian tưới:

Tưới nước vào buổi sớm trong ngày, tránh tưới nước khi trời gió:

Tưới nước vào sáng sớm thường tốt hơn so với lúc chiều tối vì giúp ngănngừa sự phát triển của nấm Tưới nước vào lúc sáng sớm hoặc lúc chiều muộn, đều

có thể giảm lượng nước thất thoát do bay hơi Tưới nước vào buổi sớm trong ngày

Trang 5

cũng là cách phòng tránh tốt nhất các loại ốc sên và sâu chuột hại vườn Tránh tướinước khi trời gió vì gió có thể thổi tạt các tia nước và làm tăng quá trình bốc hơi.

Trong đồ án này, chúng em sẽ lập trình điều khiểu cho hệ thống tự động

phun nước tưới cây trong 1 phút vào các thời điểm 7h và 16h hàng ngày.

1.3.2 Các hệ thống tưới hiện nay được ưa chuộng

Hệ thống tưới tự động kiểu phun sương

Hệ thống tưới tự động kiểu phun mưa

Hệ thống tưới tự động kiểu nhỏ giọt

Vv

CHƯƠNG II: THIẾT KẾ PHẦN CỨNG

1 Sơ đồ khối chức năng

Hình 2.1: Sơ đồ khối chức năng của hệ thống tưới cây tự động

Vi Điều Khiển

Sensor

Sensor

RTCLCD display

Relay

Water

Trang 6

Trong đó:

- Relay: module Relay 1 kênh

- RTC: Chip đồng hồ thời gian thực DS 1307

- Sensor: Cảm biến nhiệt độ DS18B20

- LCD display: màn hình hiển thị LCD

2 Khâu cảm biến – đo lường (Dùng cảm biến nhiệt độ DS18B20)

2.1 Cấu tạo

Cảm biến đo nhiệt độ DS18b20 sử dụng chuẩn giao tiếp 1 WIRE (đường dẫntín hiệu và đường dẫn điện áp nguồn nuôi có thể dùng chung trên một dây dẫn).Ngoài ra, nhiều cảm biến có thể dùng chung trên một đường dẫn (Rất thích hợp vớicác ứng dụng đo lường đa điểm)

Cảm biến DS18b20 thường dùng gồm có 3 chân: VCC, GND, DATA nhưhình dưới:

Hình 2.2: Sơ đồ chân của cảm biến nhiệt độ DS18B20

Trang 7

Hình 2.3: Sơ đồ kết nối của cảm biến nhiệt độ DS18B20

- Điện áp nguồn nuôi có thể thay đổi trong khoảng rộng (từ 3,0 V đến 5,5 V)

- Dòng tiêu thụ tại chế độ nghỉ cực nhỏ

- Thời gian lấy mẫu và biến đổi thành số tương đối nhanh, không quá 200 ms

- Mỗi cảm biến có một mã định danh duy nhất 64 bit chứa trong bộ nhớ ROM trênchip (on chip)

3 Khâu điều khiển

Khâu điều khiển chính là bộ não của toàn bộ hệ thống Trong khâu này,chúng ta sẽ dùng Vi điều khiển Arduino Uno R3 làm trung tâm điều khiển

3.1 Arduino

Arduino đã và đang được sử dụng rất rộng rãi trên thế giới, và ngày càngchứng tỏ được sức mạnh của chúng thông qua vô số ứng dụng độc đáo của người

Trang 8

dùng trong cộng đồng nguồn mở (open-source) Tuy nhiên tại Việt Nam Arduinovẫn còn chưa được biết đến nhiều

3.1.1 Hiện tượng Arduino

Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY (là nhữngngười tự chế ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây, gầngiống với những gì Apple đã làm được trên thị trường thiết bị di động Số lượngngười dùng cực lớn và đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đạihọc đã làm cho ngay cả những người tạo ra chúng phải ngạc nhiên về mức độ phổbiến

Arduino là gì mà có thể khiến ngay cả những sinh viên và nhà nghiên cứu tạicác trường đại học danh tiếng như MIT, Stanford, Carnegie Mellon phải sử dụng;hoặc ngay cả Google cũng muốn hỗ trợ khi cho ra đời bộ kit Arduino Mega ADKdùng để phát triển các ứng dụng Android tương tác với cảm biến và các thiết bịkhác?

Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác vớicá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ớimộ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 amhiể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 ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vịvua vào thế kỷ thứ 9 là King Arduin Arduino chính thức được đưa ra giớithiệ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ườngInteraction Design Instistute Ivrea (IDII) Mặc dù hầu như không được tiếp thị gì

cả, tin tức về Arduino vẫn lan truyền với tốc độ chóng mặt nhờ những lời truyềnmiệng tốt đẹp của những người dùng đầu tiên 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

Trang 9

3.1.2 Khả năng của bo mạch Arduino

Bo mạch Arduino sử dụng dòng vi xử lý 8-bit megaAVR của Atmel với haichip phổ biến nhất là ATmega328 và ATmega2560 Các dòng vi xử lý này chophép lập trình các ứng dụng điều khiển phức tạp do được trang bị cấu hình mạnhvới các loại bộ nhớ ROM, RAM và Flash, các ngõ vào ra digital I/O trong đó cónhiều ngõ có khả năng xuất tín hiệu PWM, các ngõ đọc tín hiệu analog và cácchuẩn giao tiếp đa dạng như UART, SPI, TWI (I2C)

3.1.3 Sức mạnh xử lý

- Xung nhịp: 16MHz

- EEPROM: 1KB (ATmega328) và 4KB (ATmega2560)

- SRAM: 2KB (Atmega328) và 8KB (Atmega2560)

- Flash: 32KB (Atmega328) và 256KB (Atmega2560)

3.1.4 Đọ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 mạch dùngAtmega328 là 14, và trên Atmega2560 là 54

- 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ảng0.5mV) Số lượng cổng vào analog là 6 đối với Atmega328, và 16 đối vớiAtmega2560 Với tính năng đọc analog, người dùng có thể đọc nhiều loại cảm biếnnhư nhiệt độ, áp suất, độ ẩm, ánh sáng, gyro, accelerometer…

3.1.5 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ổngdigital trên các mạch dùng Atmega328 là 14, và trên Atmega2560 là 54

- 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 PWMnày là 8-bit Số lượng cổng PWM đối với các bo dùng Atmega328 là 6, và đối vớicác bo dùng Atmega2560 là 14 PWM có nhiều ứng dụng trong viễn thông, xử lý

Trang 10

âm thanh hoặc điều khiển động cơ mà phổ biến nhất là động cơ servos trong cácmáy bay mô hình.

3.1.6 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ạchArduino Mỗi bo có trang bị một số cổng Serial cứng (việc giao tiếp do phần cứngtrong 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ựchiệ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ầnphả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 đượcgiữ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ínhnă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…

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ínhnă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ểnvideo 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ínhnăng này, các bo Arduino có thể giao tiếp với một số loại cảm biến như thermostatcủa CPU, tốc độ quạt, một số màn hình OLED/LCD, đọc real-time clock, chỉnh âmlượng cho một số loại loa…

Trang 11

3.1.7 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ạinhiều lợi thế cho Arduino, tuy nhiên sức mạnh thực sự của Arduino nằm ở phầnmề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

Hình 2.5:Giao diện IDE của Arduino

Môi trường lập trình Arduino IDE có thể chạy trên ba nền tảng phổ biếnnhất hiện nay là Windows, Macintosh OSX và Linux Do có tính chất nguồn mởnên môi trường lập trình này hoàn toàn miễn phí và có thể mở rộng thêm bởi ngườidù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à dongô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ùnghoàn toàn có thể nhúng thêm code viết bằng AVR C vào chương trình nếu muốn

3.1.8 Arduino UNO R3 là gì?

Nhắc tới dòng mạch Arduino dùng để lập trình, cái đầu tiên mà người tathường nói tới chính là dòng Arduino UNO Hiện dòng mạch này đã phát triển tớithế hệ thứ 3 (R3) Bạn sẽ bắt đầu đến với Arduino qua thứ này

Trang 12

Hình 2.6: Arduino UNO R3

Một vài thông số của Arduino UNO R3

Dòng tối đa trên mỗi chân I/O 30 mA

Trang 13

Năng lượng

Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấpnguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V Thườngthì cấp nguồn bằng pin vuông 9V là hợp lí nhất nếu bạn không có sẵn nguồn từcổng USB Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, bạn sẽ làm hỏngArduino UNO

Các chân năng lượng

- GND (Ground) : cực âm của nguồn điện cấp cho Arduino UNO Khi bạn

dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân nàyphải được nối với nhau

- 5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA

- 3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA

- Vin (Voltage Input) : để cấp nguồn ngoài cho Arduino UNO, bạn nối cực

dương của nguồn với chân này và cực âm của nguồn với chân GND

- IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được

đo ở chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy

Trang 14

nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấpnguồn.

- RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đươngvới việc chân RESET được nối với GND qua 1 điện trở 10KΩ

Lưu ý:

Arduino UNO không có bảo vệ cắm ngược nguồn vào Do đó bạn phải hếtsức cẩn thận, kiểm tra các cực âm – dương của nguồn trước khi cấp cho ArduinoUNO Việc làm chập mạch nguồn vào của Arduino UNO sẽ biến nó thành mộtmiếng nhựa chặn giấy mình khuyên bạn nên dùng nguồn từ cổng USB nếu có thể

Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra cho cácthiết bị khác, không phải là các chân cấp nguồn vào Việc cấp nguồn sai vị trí cóthể làm hỏng board Điều này không được nhà sản xuất khuyến khích

Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới6V có thể làm hỏng board

Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điềukhiển ATmega328

Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của ArduinoUNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển

Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO

sẽ làm hỏng vi điều khiển

Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của ArduinoUNO vượt quá 40mA sẽ làm hỏng vi điều khiển Do đó nếu không dùng để truyềnnhận dữ liệu, bạn phải mắc một điện trở hạn dòng

Bộ nhớ

- Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:

- 32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộnhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KB trong số này

sẽ được dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá

Trang 15

- 2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khaibáo khi lập trình sẽ lưu ở đây Bạn khai báo càng nhiều biến thì càng cầnnhiều bộ nhớ RAM Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lạitrở thành thứ mà bạn phải bận tâm Khi mất điện, dữ liệu trên SRAM sẽ bịmất.

Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ

có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ởmỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiểnATmega328 (mặc định thì các điện trở này không được kết nối)

Một số chân digital có các chức năng đặc biệt như sau:

- 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận(receive – RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bịkhác thông qua 2 chân này Kết nối bluetooth thường thấy nói nôm na chính

là kết nối Serial không dây Nếu không cần giao tiếp Serial, bạn không nên

sử dụng 2 chân này nếu không cần thiết

- Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với

độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàmanalogWrite() Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra

ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V nhưnhững chân khác

- Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài cácchức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằnggiao thức SPI với các thiết bị khác

- LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấmnút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân

số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng

Trang 16

Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Vớichân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng cácchân analog Tức là nếu bạn cấp điện áp 2.5V vào chân này thì bạn có thể dùng cácchân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là10bit.

Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếpI2C/TWI với các thiết bị khác

3.2 Module Relay 1 kênh (5V-220V/10A)

- Sử dụng Relay 5V đóng ngắt điện áp 220V 10A

Trang 17

3.3.Module BUCK DC-DC LM2596 3A (module chuyển đổi nguồn)

Mô Tả:

- Mạch thay đổi điện áp 1 chiều với điện áp 1 chiều (mức cao sang mức thấp hoặcngược lại)

- Sử dụng LM2596S-ADJ

- Thay đổi điện áp bằng biến trở

- Điện áp đầu vào: 4V-35V

- Điện áp đầu ra: 1.23V-30V

- Dòng đầu ra: 3A (max)

- Hiệu suất chuyển đổi: 92% (tối đa)

4.1 Chip đồng hồ thời gian thực DS1307

DS1307 là chip đồng hồ thời gian thực (RTC : Real-time clock), khái niệmthời gian thực ở đây được dùng với ý nghĩa thời gian tuyệt đối mà con người đang

sử dụng, tình bằng giây, phút, giờ…DS1307 là một sản phẩm của DallasSemiconductor (một công ty thuộc Maxim Integrated Products) Chip này có 7

Trang 18

thanh ghi 8-bit chứa thời gian là: giây, phút, giờ, thứ (trong tuần), ngày, tháng,năm Ngoài ra DS1307 còn có 1 thanh ghi điều khiển ngõ ra phụ và 56 thanh ghitrống có thể dùng như RAM DS1307 được đọc và ghi thông qua giao diện nối tiếpI2C (TWI của AVR) nên cấu tạo bên ngoài rất đơn giản DS1307 xuất hiện ở 2 góiSOIC và DIP có 8 chân như trong hình 2.9.

Hình 2.9: Hai gói cấu tạo chip DS1307

Các chân của DS1307 được mô tả như sau:

- X1 và X2: là 2 ngõ kết nối với 1 thạch anh 32.768KHz làm nguồn tạo dao động

cho chip

- VBAT: cực dương của một nguồn pin 3V nuôi chip

- GND: chân mass chung cho cả pin 3V và Vcc

- Vcc: nguồn cho giao diện I2C, thường là 5V và dùng chung với vi điều khiển.

Chú ý là nếu Vcc không được cấp nguồn nhưng VBAT được cấp thì DS1307 vẫnđang hoạt động (nhưng không ghi và đọc được)

- SQW/OUT: một ngõ phụ tạo xung vuông (Square Wave / Output Driver), tần số

của xung được tạo có thể được lập trình Như vậy chân này hầu như không liênquan đến chức năng của DS1307 là đồng hồ thời gian thực, chúng ta sẽ bỏ trốngchân này khi nối mạch

- SCL và SDA là 2 đường giao xung nhịp và dữ liệu của giao diện I2C mà chúng ta

đã tìm hiểu trong bài TWI của AVR

Có thể kết nối DS1307 bằng một mạch điện đơn giản như trong hình 2.10

Trang 19

Hình 2.10: Mạch ứng dụng đơn giản của DS1307

Cấu tạo bên trong DS1307 bao gồm một số thành phần như mạch nguồn,mạch dao động, mạch điều khiển logic, mạch giao điện I2C, con trỏ địa chỉ và cácthanh ghi (hay RAM) Do đa số các thành phần bên trong DS1307 là thành phần

“cứng” nên chúng ta không có quá nhiều việc khi sử dụng DS1307 Sử dụngDS1307 chủ yếu là ghi và đọc các thanh ghi của chip này Vì thế cần hiểu rõ 2 vấn

đề cơ bản đó là cấu trúc các thanh ghi và cách truy xuất các thanh ghi này thôngqua giao diện I2C Phần này chúng ta tìm hiểu cấu trúc các thanh ghi trước, điềukhiển DS1307 bằng AVR làm ví dụ

Bộ nhớ DS1307 có tất cả 64 thanh ghi 8-bit được đánh địa chỉ từ 0 đến 63(từ 0x00 đến 0x3F theo hệ hexadecimal) Tuy nhiên, thực chất chỉ có 8 thanh ghiđầu là dùng cho chức năng “đồng hồ” (tôi sẽ gọi là RTC) còn lại 56 thanh ghi bỏtrông có thể được dùng chứa biến tạm như RAM nếu muốn Bảy thanh ghi đầu tiênchứa thông tin về thời gian của đồng hồ bao gồm: giây (SECONDS), phút(MINUETS), giờ (HOURS), thứ (DAY), ngày (DATE), tháng (MONTH) và năm(YEAR) Việc ghi giá trị vào 7 thanh ghi này tương đương với việc “cài đặt” thờigian khởi động cho RTC Việc đọc giá từ 7 thanh ghi là đọc thời gian thực mà chiptạo ra Ví dụ, lúc khởi động chương trình, chúng ta ghi vào thanh ghi “giây” giá trị

42, sau đó 12s chúng ta đọc thanh ghi này, chúng ta thu được giá trị 54 Thanh ghithứ 8 (CONTROL) là thanh ghi điều khiển xung ngõ ra SQW/OUT (chân 6) Tuynhiên, do chúng ta không dùng chân SQW/OUT nên có thề bỏ qua thanh ghi thứ 8

Tổ chức bộ nhớ của DS1307 được trình bày trong hình 2.11.

Trang 20

Hình 2.11: Tổ chức bộ nhớ của DS1307

Vì 7 thanh ghi đầu tiên là quan trọng nhất trong hoạt động của DS1307,chúng ta sẽ khảo sát các thanh ghi này một cách chi tiết Trước hết hãy quan sát tổ

chức theo từng bit của các thanh ghi này như trong hình 2.12.

Hình 2.12: Tổ chức các thanh ghi thời gian

Điều đầu tiên cần chú ý là giá trị thời gian lưu trong các thanh ghi theo dạngBCD BCD là viết tắt của cụm từ Binary-Coded Decimal, tạm dịch là các số thậpphân theo mã nhị phân Ví dụ bạn muốn cài đặt cho thanh ghi MINUTES giá trị

42 Nếu quy đổi 42 sang mã thập lục phân thì chúng ta thu được 42=0x2A Theocách hiểu thông thường chúng ta chỉ cần gán MINUTES=42 hoặc

Ngày đăng: 16/12/2016, 22:20

HÌNH ẢNH LIÊN QUAN

Hình ảnh minh họa - Đồ án Vi Xử Lí
nh ảnh minh họa (Trang 3)
1. Sơ đồ khối chức năng - Đồ án Vi Xử Lí
1. Sơ đồ khối chức năng (Trang 5)
Hình 2.3: Sơ đồ kết nối của cảm biến nhiệt độ DS18B20 - Đồ án Vi Xử Lí
Hình 2.3 Sơ đồ kết nối của cảm biến nhiệt độ DS18B20 (Trang 7)
Hình 2.5:Giao diện IDE của Arduino - Đồ án Vi Xử Lí
Hình 2.5 Giao diện IDE của Arduino (Trang 11)
Hình 2.6: Arduino UNO R3 - Đồ án Vi Xử Lí
Hình 2.6 Arduino UNO R3 (Trang 12)
Hình 2.7: Sơ đồ nguyên lí của module Relay 1 kênh - Đồ án Vi Xử Lí
Hình 2.7 Sơ đồ nguyên lí của module Relay 1 kênh (Trang 16)
Hình 2.8: Sơ đồ nguyên lí module chuyển nguồn LM2596 - Đồ án Vi Xử Lí
Hình 2.8 Sơ đồ nguyên lí module chuyển nguồn LM2596 (Trang 17)
Hình 2.10: Mạch ứng dụng đơn giản của DS1307 - Đồ án Vi Xử Lí
Hình 2.10 Mạch ứng dụng đơn giản của DS1307 (Trang 19)
Hình 2.12: Tổ chức các thanh ghi thời gian - Đồ án Vi Xử Lí
Hình 2.12 Tổ chức các thanh ghi thời gian (Trang 20)
Hình 2.11: Tổ chức bộ nhớ của DS1307 - Đồ án Vi Xử Lí
Hình 2.11 Tổ chức bộ nhớ của DS1307 (Trang 20)
Hình 2.13: Số BCD - Đồ án Vi Xử Lí
Hình 2.13 Số BCD (Trang 21)
Hình 2.14: Cấu trúc DS1307 - Đồ án Vi Xử Lí
Hình 2.14 Cấu trúc DS1307 (Trang 23)
Hình 2.15: Text LCD 16x2 - Đồ án Vi Xử Lí
Hình 2.15 Text LCD 16x2 (Trang 24)
Bảng 1: Sơ đồ chân của LCD - Đồ án Vi Xử Lí
Bảng 1 Sơ đồ chân của LCD (Trang 25)
Hình 2.16: Kết nối Text LCD - Đồ án Vi Xử Lí
Hình 2.16 Kết nối Text LCD (Trang 26)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w