Chức năng chân của LCD

Một phần của tài liệu Đồ án thiết kế mô hình cân điện tử bằng arduino (Trang 38)

tự Tên Trạng thái logic Mô tả Ground 1 Vss - 0V Nguồn cho LCD 2 Vdd(VCC) - +5V Tương phản 3 Vee - 0-Vdd 4 RS 0 1 D0-D7 : lệnh D0-D7 : dữ liệu Điều khiển LCD 5 RW 0 1 Ghi(AVR=>LCD) Đọc(LCD=>AVR ) 6 E 0 1 Từ 1=>0

Vơ hiệu hóa LCD LCD hoạt động Bắt đầu ghi/đọc 7 DB0 0/1 Bit 0 LSB 8 DB1 0/1 Bit 1 9 DB2 0/1 Bit 2 Dữ liệu / lệnh 10 DB3 0/1 Bit 3 11 DB4 0/1 Bit 4 12 DB5 0/1 Bit 5 13 DB6 0/1 Bit 6

14 DB7 0/1 Bit 7 MSB

Đèn nền 15 LED+ - Nguồn dương

đèn nền

16 LED- - GND đèn nền

Chân 1 và chân 2 là các chân nguồn nối với GND và nguồn 5V. Chân 3 là chân chỉnh độ tương phản của LCD thường được nối với một biến trở chia áp. Các chân điều khiển RS, R/W, EN và các giá trị dữ liệu được nối trực tiếp với vi điều khiển. Tùy chế độ hoạt động 4 bit hay 8 bit mà các chân từ D0-D3 có thể được nối với vi điền khiển hoặc bỏ qua.

2.3.2 Màn hình LCD16x02 giao tiếp I2C

Hình 2. 3 Màn hình LCD16x02 giao tiếp I2C Thơng số kĩ thuật:

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

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

- Giao tiếp: I2C, IC giao tiếp PCF8574 làm trung gian giữa Arduino với LCD1602 8 bit.

- Đị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.

Một chương trình hiển thị ký tự trên LCD sẽ đi theo 4 bước sau:

- Xóa tồn bộ màn hình

- Đặt chế độ hiển thị

- Đặt vị trí con trỏ (nơi bắt đầu của các ký tự hiển thị).

- Hiển thị kí tự

2.4 Phím matrix 4x4 hiển thị lên LCD 16x2.

2.4.1 Thơng số kỹ thuật:

• Module bàn phím ma trận 4x4 loại phím mềm.

• Độ dài cáp: 88mm.

• Nhiệt độ hoạt động 0 ~ 70oC. • Đầu nối ra 8 chân.

• Kích thước bàn phím 77 x 69 mm

Hình 2.26 hình ảnh phím ma trận 4x4.

2.4.2 Cấu tạo của 1 ma trận phím 4x4.

Nói đến ma trận là ai cũng tưởng tưởng đến hàng và cột. Và các pác cũng bít khi đó nó sẽ có lợi như thế nào khi ghép kiểu ma trận này! Cấu tạo nó được như hình vẽ dưới:

Hình 2.27. Hoạt động chân RS.

Ma trận phím 4*4 hiện thị LCDViệc có nhiều nút nhấn cũng như tiết kiệm được chân vi điều khiển là một bài toán đặt ra đối với 1 bài tập vi điều khiển lớn. Việc ghép nối giao tiếp với bàn phím với vi xử lý được ghép nối thành 1 ma trận hay gọi là ma trận phím!

2.4.3 Mạch nguyên lý

Thuật tốn qt phím được sử dụng là lần lượt tìm hàng và tìm cột (hoặc ngược lại) Khi tìm hàng, các hàng sẽ được đặt làm đầu vào, các cột được đặt làm đầu ra mức thấp. Sau đó kiểm tra các hàng xem có hàng nào ở mức thấp hay khơng (có phím nào bấm gây ra nối với cột hay không)? Sau khi xác định được hàng sẽđặt các cột làm đầu vào, hàng vừa tìm được làm đầu ra mức thấp. Việc kiểm tra được tiến hành với các cột. Sau khi xác định được hàng và cột sẽ suy ra phím được bấm. Nói thế này cũng khó hiểu nhỉ nhưng mà chỉ cần hiểu sơ qua thuật toán quét LED như thế này: + Đầu tiên cho các hàng ở mức 1 và các cột ở mức 0 + Kiểm tra xem nào hàng nào đựoc nhấn (khi nút được nhấn) tức là đựoc nhận tín hiệu từ các cột + Nếu mà có 1 hàng bất kỳ đựoc nhấn sau đó ta lại chuyển giá trị 0 vào hàng đựoc nhấn và giá trị 1 vào các cột. Khi đó cột lại nhận nhiệm vụ làm tín hiệu vào.Nếu mà 1 trong các cột đựoc nhấn (Khi nút được nhấn) trong các trường hợp này thì cho ra các giá trị tương ứng. + Việc kiểm tra các hàng khác là tương tự như trên! Ởđây không đề cập đến việc nhiễu phím nút nhấn nên bỏ qua.

2.5 Module HC05

2.5.1 Thơng số ký thuật Tính năng phần cứng:

• Độ nhạy -80dBm điển hình

• Cơng suất phát RF lên đến + 4dBm

• Hoạt động cơng suất thấp 1.8V, 1.8 đến 3.6VI / O

• Kiểm sốt PIO

• Giao diện UART với tốc độ truyền có thể lập trình • Với ăng-ten tích hợp

• Với đầu nối cạnh

2.5.2 Các tính năng của phần mềm

• Tốc độ Baud mặc định: 38400, Các bit dữ liệu: 8, Bit dừng: 1, Chẵn lẻ: Khơng chẵn lẻ, Kiểm sốt dữ liệu: có.

Tốc độ truyền được hỗ trợ:

9600,19200,38400,57600,115200,230400,460800.

• Với một xung tăng trong PIO0, thiết bị sẽ bị ngắt kết nối. • Cổng hướng dẫn trạng thái PIO1: ngắt kết nối thấp, kết nối

cao;

• PIO10 và PIO11 có thể được kết nối với led đỏ và xanh lam riêng biệt. Khi chủ nhân và nô lệ

được ghép nối, đèn LED màu đỏ và màu xanh lam nhấp nháy 1 lần / 2 giây trong khoảng thời gian, trong khi bị ngắt kết nối chỉ có đèn LED màu xanh lam nhấp nháy 2 lần / s.

• Tự động kết nối với thiết bị cuối cùng bật nguồn theo mặc định.

• Cho phép thiết bị ghép nối kết nối theo mặc định. • Tự động ghép nối PINCODE: ”0000” làm mặc định

• Tự động kết nối lại trong 30 phút khi bị ngắt kết nối do vượt quá phạm vi kết nối.

2.6. Arduino sử dụng.

2.6.1 Arduino Uno R3 SMD

Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn. Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32bit. Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau.

Được giới thiệu vào năm 2005, 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 Uno R3 SMD hoàn toàn giống với Arduino Uno R3 bản chân cắm (PDIP) . Điểm khác biệt nằm ở Chip nạp chương trình : Arduino Uno R3 (PDIP) dùng chip nạp Atmega16U2, còn Arduino Uno R3 SMD dùng chip nạp CH340 nên tiết kiệm chi phí hơn nhiều.

Arduino là một Board mạch Vi Điều Khiển sử dụng chip AVR ATmega328, Atmega168, ATmega8 của Atmel. Có chứa tất cả mọi thứ cần thiết để hỗ trợ trong việc lập trình vi điều khiển dễ dàng hơn.

Hình 2.33. Arduino Uno R3 SMD

Arduino Uno được xây dựng với phần nhân là vi điều khiển họ 8bit AVR ATmega328P sử dụng thạch anh có chu kì dao động là 16 MHz. Bộ não này có thể xử lí những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD, … hay những ứng dụng, tác vụ khác.

Thơng số kỹ thuật của Arduino board được tóm tắt trong bảng sau:

Bảng 2.5. Thông số kĩ thuật board Arduino Uno

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

Tần số hoạt động 16 MHz

Dòng tiêu thụ ~30 mA

Điện áp vào khuyên

dùng 7-12V

Điện áp vào giới hạn 6-20V

Digital I/O 14 chân

PWM Digital I/O 6 chân có khả năng

băm xung

Analog Input Pins 6 chân (độ phân giải 10bit)

Dòng tối đa trên mỗi

chân I/O 30 mA Dòng ra tối đa (3.3V) 50 mA Dòng ra tối đa (5V) 500 mA Flash Memory 32 KB (ATmega328P) với 0.5 KB dùng bởi bootloader SRAM 2 KB (ATmega328P) EEPROM 1 KB (ATmega328P) Chiều dài 68.6 mm Chiều rộng 53.4 mm Trọng lượng 25 g

Arduino Uno có thể được cấp nguồn 5V thơng qua cổng USB hoặc cấp nguồ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ường thì cấp nguồn bằng pin vng 9V là hợp lí nhất nếu 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 sẽ làm hỏng Arduino UNO.

Hình 2.38. Sơđồ cấu trúc board Arduino Uno đồ cấu trúc board Arduino Uno

Board Arduino Uno có các chân năng lượng là:

- 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ày phả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ó ln là 5V. Mặc dù vậy bạn không được lấy 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ấp nguồn.

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

Trên board Arduino Uno cịn có 1 ngõ kết nối với máy tính qua cổng USB và 1 ngõ cấp nguồn sử dụng jack 2.1mm lấy năng lượng trực tiếp từ AC-DC adapter hay thơng qua ắc-quy nguồn.

Hình 2.39. Sơ đồ chân của Arduino Uno

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

Flash Memory (32KB bộ nhớ): bộ nhớ có thể ghi được, dữ liệu không bị mất ngay cả khi tắt điện. Về vai trị, ta có thể hình dung bộ nhớ này như ổ cứng để chứa dữ liệu trên board. Chương trình được viết cho Arduino sẽ được lưu ở đây. Kích thước của vùng nhớ này thơng thường dựa vào vi điều khiển được sử dụng, ví dụ như ATmega8 có 8KB flash memory. Loại bộ nhớ này có thể chịu được khoảng 10,000 lần ghi / xố. Thường thì sẽ có khoảng vài KB trong số này được dùng cho bootloader.

RAM - Random Access Memory (2KB bộ nhớ): giá trị các biến khai báo khi lập trình được lưu tại đây, khai báo càng nhiều thì càng cần dùng nhiều bộ nhớ RAM. Tương tự như RAM của

máy tính, sẽ bị mất dữ liệu khi ngắt điện nhưng bù lại tốc độ đọc ghi xố rất nhanh. Kích thước nhỏ hơn Flash Memory nhiều lần.

EEPROM – Electrically Eraseble Programmable Read Only Memory (1KB bộ nhớ): giống một chiếc ổ cứng mini, một dạng bộ nhớ tương tự như Flash Memory nhưng có chu kì ghi / xố cao hơn - khoảng 100,000 lần và có kích thước rất nhỏ. Để đọc / ghi dữ liệu ta có thể dùng thư viện EEPROM của Arduino.

Với vi điều khiển này, Arduino có tổng cộng 14 chân (ngõ) vào/ra được đánh số từ 0 tới 13 (trong đó có 6 chân PWM, được đánh dấu ~ trước mã số của pin). Song song đó, Arduino có thêm 6 chân nhận tín hiệu analog được đánh kí hiệu từ A0 - A5, 6 chân này cũng có thể sử dụng được như các pin ra / vào bình thường (như pin 0 - 13). Ở các chân được đề cập, chân 13 là chân đặc biệt vì nối trực tiếp với LED trạng thái trên board.

Hình 2.40. Các chân Analog và Digital trên boardMột số chân Digital có chức năng đặc biệt như sau: Một số chân Digital có chức năng đặc biệt như sau:

- UART - 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àm analogWrite(). 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). Ngồi các chức năng thơng thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao 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ấm nú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.

Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V, tương đương với 1024 (210) giá trị. Với chân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các châ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ác châ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ếp I2C/TWI với các thiết bị khác.

2.6.2. Lập trình cho Arduino Uno.

• Arduino IDE - Intergrated Development Environment

Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino, nhóm phát triển dự án này đã cũng cấp đến cho người dùng một mơi trường lập trình Arduino được gọi là Arduino IDE (Mơi trường phát triển tích hợp). Cơng cụ này được đội ngũ kĩ sư của Arduino phát triển và có thể chạy trên Windows, MAC OS X và Linux.

Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngơn riêng. Ngôn ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói chung. Và Wiring lại là một biến thể của C/C++ hay có thể gọi là “ngơn ngữ Arduino”. Ngôn ngữ Arduino bắt nguồn từ C/C++ phổ biến hiện nay do đó dễ học, dễ hiểu.

Hình 2.44. Giao diện Arduino IDE

Arduino IDE đi kèm với một thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc, có thể giúp các thao tác input/ output được dễ dàng hơn. Người dùng chỉ cần định nghĩa 2 hàm

để tạo ra một chương trình vịng thực thi (cyclic executive) có thể chạy được:

- setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập các cài đặt.

- loop(): hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch.

Vùng lệnh: bao gồm các nút lệnh menu (File, Edit, Sketch, Tools, Help). Phía dưới là các icon cho phép sử dụng nhanh các chức năng thường dùng của IDE được miêu tả như sau:

Hình 2.45. Một số ký hiệu và chức năng trong Arduino IDE Vùng viết chương trình: Vùng này để người lập trình thực hiện việc lập trình cho chương trình của mình.

Vùng thơng báo: Những thơng báo từ IDE sẽ được hiển thị tại đây. Góc dưới cùng bên phải hiển thị loại board Arduino và cổng COM được sử dụng, nếu chọn sai loại board hoặc cổng COM sẽ khơng thể upload được code.

Hình 2.46. Vùng thơng báo trong Arduino IDE

Có vài menu trong phần mềm IDE, tuy nhiên thơng dụng nhất vẫn là menu File, ngồi những tính năng như mở một file mới hay lưu một file, phần menu này có một mục đáng chú ý là Example. Phần Example (ví dụ) đưa ra các ví dụ sẵn để người

Một phần của tài liệu Đồ án thiết kế mô hình cân điện tử bằng arduino (Trang 38)

Tải bản đầy đủ (DOCX)

(82 trang)
w