Trong hướng dẫn này, chúng tôi giới thiệu khái niệm về ADC (Chuyển đổi tương tự sang kỹ thuật số) trong ARDUINO UNO. Bảng Arduino có sáu kênh ADC, như trong hình dưới đây. Trong số đó, bất kỳ một hoặc tất cả chúng đều có thể được sử dụng làm đầu vào cho điện áp tương tự. Các Arduino Uno ADC có độ phân giải 10 bit (vì vậy các giá trị số nguyên từ (0- (2 ^ 10) 1023)). Điều này có nghĩa là nó sẽ ánh xạ điện áp đầu vào từ 0 đến 5 vôn thành các giá trị nguyên từ 0 đến 1023. Vì vậy, với mỗi (5/1024 = 4,9mV) trên mỗi đơn vị.
Trong tất cả những điều này, chúng tôi sẽ kết nối một chiết áp hoặc nồi với kênh 'A0' và chúng tôi sẽ hiển thị kết quả ADC trên một màn hình đơn giản. Các màn hình đơn giản là các đơn vị hiển thị 16x1 và 16x2. Đơn vị hiển thị 16x1 sẽ có 16 ký tự và nằm trên một dòng. 16x2 sẽ có 32 ký tự trong tổng số 16 ký tự ở dòng thứ nhất và 16 ký tự khác ở dòng thứ hai. Ở đây người ta phải hiểu rằng trong mỗi ký tự có 5x10 = 50 pixel vì vậy để hiển thị một ký tự thì tất cả 50 pixel phải hoạt động cùng nhau, nhưng chúng ta không cần phải lo lắng về điều đó vì có một bộ điều khiển khác (HD44780) trong đơn vị hiển thị có chức năng công việc kiểm soát các điểm ảnh (bạn có thể thấy nó trong đơn vị LCD, nó là mắt đen ở phía sau).
Thành phần bắt buộc
Phần cứng: ARDUINO UNO, nguồn điện (5v), JHD_162ALCD (16x2LCD), tụ điện 100uF, nồi hoặc chiết áp 100KΩ, tụ điện 100nF.
Phần mềm: arduino IDE (Arduino nightly)
Sơ đồ mạch và giải thích
Trong LCD 16x2 có 16 chân trên tất cả nếu có đèn nền, nếu không có đèn nền sẽ có 14 chân. Người ta có thể cấp nguồn hoặc để lại các chân đèn sau. Bây giờ trong 14 chân có 8 dữ liệu ghim (7-14 hoặc D0-D7), 2 chân cung cấp điện (1 & 2 hoặc VSS & VDD hoặc GND & + 5V), 3 thứ pin cho điều khiển độ tương phản (VEE-điều khiển như thế nào dày các nhân vật nên được hiển thị), và 3 chân điều khiển (RS & RW & E).
Trong mạch, bạn có thể quan sát thấy tôi chỉ lấy hai chân điều khiển, bit tương phản và READ / WRITE không được sử dụng thường xuyên nên có thể bị chập xuống đất. Điều này đặt LCD ở chế độ đọc và độ tương phản cao nhất. Chúng ta chỉ cần điều khiển các chân ENABLE và RS để gửi các ký tự và dữ liệu cho phù hợp.
Các kết nối được thực hiện cho LCD được đưa ra dưới đây:
PIN1 hoặc VSS để nối đất
PIN2 hoặc VDD hoặc VCC đến nguồn + 5v
PIN3 hoặc VEE nối đất (mang lại độ tương phản tối đa tốt nhất cho người mới bắt đầu)
PIN4 hoặc RS (Lựa chọn đăng ký) thành PIN8 của ARDUINO UNO
PIN5 hoặc RW (Đọc / Ghi) nối đất (đặt màn hình LCD ở chế độ đọc giúp giảm bớt giao tiếp cho người dùng)
PIN6 hoặc E (Bật) thành PIN9 của ARDUINO UNO
PIN11 hoặc D4 đến PIN10 của ARDUINO UNO
PIN12 hoặc D5 đến PIN11 của ARDUINO UNO
PIN13 hoặc D6 đến PIN12 của ARDUINO UNO
PIN14 hoặc D7 đến PIN13 của ARDUINO UNO
ARDUINO IDE cho phép người dùng sử dụng màn hình LCD ở chế độ 4 bit. Loại giao tiếp này cho phép người dùng giảm mức sử dụng mã pin trên ARDUINO, không giống như các loại ARDUINO khác, ARDUINO không cần được lập trình riêng để sử dụng ở chế độ 4 nó vì theo mặc định, ARDUINO được thiết lập để giao tiếp ở chế độ 4 bit. Trong mạch, bạn có thể thấy chúng tôi đã sử dụng giao tiếp 4bit (D4-D7).
Vì vậy, chỉ quan sát từ bảng trên, chúng ta đang kết nối 6 chân của LCD với bộ điều khiển, trong đó 4 chân là chân dữ liệu và 2 chân để điều khiển.
Hình trên cho thấy sơ đồ mạch c của ADC của ARDUINO UNO.
Đang làm việc
Để giao tiếp màn hình LCD với ARDUINO UNO, chúng ta cần biết một số điều.
|
Trước hết, các kênh UNO ADC có giá trị tham chiếu mặc định là 5V. Điều này có nghĩa là chúng tôi có thể cung cấp điện áp đầu vào tối đa là 5V để chuyển đổi ADC ở bất kỳ kênh đầu vào nào. Vì một số cảm biến cung cấp điện áp từ 0-2,5V, với tham chiếu 5V, chúng tôi nhận được độ chính xác thấp hơn, vì vậy chúng tôi có hướng dẫn cho phép chúng tôi thay đổi giá trị tham chiếu này. Vì vậy, để thay đổi giá trị tham chiếu, chúng tôi có (“analogReference ();”)
Theo mặc định, chúng tôi nhận được độ phân giải ADC tối đa của bo mạch là 10bits, độ phân giải này có thể được thay đổi bằng cách sử dụng lệnh (“analogReadResolution (bits);”). Thay đổi độ phân giải này có thể hữu ích cho một số trường hợp.
Bây giờ nếu các điều kiện trên được đặt thành mặc định, chúng ta có thể đọc giá trị từ ADC của kênh '0' bằng cách gọi trực tiếp hàm "analogRead (pin);", ở đây "pin" đại diện cho chân mà chúng ta đã kết nối tín hiệu tương tự, trong trường hợp này nó sẽ là “A0”. Giá trị từ ADC có thể được lấy thành một số nguyên là “int ADCVALUE = analogRead (A0); ”, Bằng lệnh này, giá trị sau khi ADC được lưu trữ trong số nguyên“ ADCVALUE ”.
Bây giờ chúng ta hãy nói một chút về LCD 16x2. Trước tiên, chúng ta cần kích hoạt tệp tiêu đề ('#include
Thứ hai, chúng ta cần cho hội đồng biết loại LCD mà chúng ta đang sử dụng ở đây. Vì chúng ta có rất nhiều loại LCD khác nhau (như 20x4, 16x2, 16x1, v.v.). Ở đây, chúng ta sẽ giao diện màn hình LCD 16x2 với UNO để chúng ta nhận được 'lcd.begin (16, 2);'. Đối với 16x1, chúng tôi nhận được 'lcd.begin (16, 1);'.
Trong hướng dẫn này, chúng ta sẽ cho bảng biết chúng ta đã kết nối các chân ở đâu, Các chân được kết nối sẽ được biểu diễn theo thứ tự là “RS, En, D4, D5, D6, D7”. Các chân này phải được biểu diễn chính xác. Vì chúng tôi đã kết nối RS với PIN0, v.v. như hiển thị trong sơ đồ mạch, Chúng tôi biểu thị số pin trên bo mạch là “LiquidCrystal lcd (0, 1, 8, 9, 10, 11);”.
Sau khi ở trên, tất cả những gì còn lại là gửi dữ liệu, dữ liệu cần được hiển thị trên màn hình LCD sẽ được viết là “cd.print (“ hello, world! ”);”. Với lệnh này, màn hình LCD hiển thị 'hello, world!'.
Như bạn có thể thấy, chúng ta không cần phải lo lắng về bất kỳ điều này khác, chúng ta chỉ cần khởi tạo và UNO sẽ sẵn sàng hiển thị dữ liệu. Chúng ta không phải viết một vòng lặp chương trình để gửi dữ liệu BYTE bởi BYTE tại đây.
Việc sử dụng ADC của Arduino Uno được giải thích từng bước trong chương trình C được đưa ra dưới đây.