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

*
Sơ vật đấu nối tiếp xúc IC2 cùng với LCD 16×2.

Bạn đang xem: Hiển thị nhiệt độ, độ ẩm lên lcd 16x2 giao tiếp bằng i2c sử dụng arduino

Code quét những device vào một bus I2C

*

Module I2C PCF8574 hỗ trợ giao tiếp I2C với 7bit địa chỉ, trong số ấy có 4 bit cố định và 3 bit có thể được tín đồ dùng tùy chỉnh cấu hình có dạng 0 1 0 0 A2 A1 A0. Mang định, trên module nhà cung cấp để các chân A0, A1, A2 làm việc mức logic cao đề nghị PCF8574 có địa chỉ cửa hàng là 0x27. Để cố gắng đổi showroom của IC này khi cần, chúng ta có thể tùy chọn biến hóa các mức lô ghích của 3 chân này bằng cách nối xuống GND (mức thấp) cho các chân A0, A1, A2.

*

*
: Sunrom Electronics" />

Các bạn có thể tải code tìm địa chỉ bus ngơi nghỉ đây. Tải ngay.

// --------------------------------------//http://playground.arduino.cc/Main/I2cScanner// i2c_scanner//// Version 1// This program (or code that looks lượt thích it)// can be found in many places.// For example on the Arduino.cc forum.// The original author is not know.// Version 2, Juni 2012, Using Arduino 1.0.1// Adapted khổng lồ be as simple as possible by Arduino.cc user Krodal// Version 3, Feb 26 2013// V3 by louarnold// Version 4, March 3, 2013, Using Arduino 1.0.3// by Arduino.cc user Krodal.// Changes by louarnold removed.// Scanning addresses changed from 0...127 to 1...119,// according to lớn the i2c scanner by Nick Gammon// http://www.gammon.com.au/forum/?id=10896// Version 5, March 28, 2013// As version 4, but address scans now lớn 127.// A sensor seems khổng lồ use address 120.// Version 6, November 27, 2015.// Added waiting for the Leonardo serial communication.////// This sketch tests the standard 7-bit addresses// Devices with higher bit address might not be seen properly.// Watch đoạn phim explainign I2C address: https://www.youtube.com/watch?v=bqMMIbmYJS0// #include void setup() Wire.begin(); Serial.begin(9600); while (!Serial); // Leonardo: wait for serial monitor Serial.println("I2C Scanner"); void loop() byte error, address; int nDevices; Serial.println("Scanning..."); nDevices = 0; for(address = 1; address 127; address++ ) // The i2c_scanner uses the return value of // the Write.endTransmisstion lớn see if // a device did acknowledge to lớn the address. Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) Serial.print("I2C device found at address 0x"); if (address16) Serial.print("0"); Serial.print(address,HEX); Serial.println(" !"); nDevices++; else if (error==4) Serial.print("Unknown error at address 0x"); if (address16) Serial.print("0"); Serial.println(address,HEX); if (nDevices == 0) Serial.println("No I2C devices found"); else Serial.println("done"); delay(5000); // wait 5 seconds for next scan

*

Code chương trình cho 2 màn hình hiển thị LCD 16×02, kết nối với Arduino

*

/* * Arduino code for use two or more LCD1602 with I2C with Arduino * Custom function lớn display float (like 2.45), integer (like 2 or 8) & string * very easily * this Arduino sketch makes it possible to lớn use two display at the phối time * * Watch video clip instruction for this code: https://youtu.be/L6ekl2ABcuY* * * Written by Ahmad Shamshiri for Robojax.com on Saturday November 17, 2018 * at 20:45 in Ajax, Ontario, Canada * * This code is "AS IS" without warranty or liability. Không tính phí to be used as long as you keep this note intact.* * This code has been download from Robojax.com This program is không tính phí software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the không lấy phí Software Foundation, either version 3 of the License, or (at your option) any later version.

Xem thêm: Đồng Hồ Đeo Tay Armitron Chính Hãng, Giá Đồng Hồ Armitron Chính Hãng

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include // this is part of arduino#include LiquidCrystal_I2C lcd1(0x3F, 16, 2);// display 1LiquidCrystal_I2C lcd2(0x26, 16, 2);// display 2// number settingsconst int decimals = 2;// number of decimal places needed to lớn be displayedconst int positions = 5;// total position of numbers including the decimal placesvoid setup() // initialize the LCD lcd1.begin();//initialize LCD1 lcd2.begin();//initialize LCD2 lcd1.backlight();// turn the backlight ON for the LCD1 lcd2.backlight();// turn the backlight ON for the LCD2 Serial.begin(9600);// initialize serial monitor with 9600 baud lcd1.print("Robojax Display"); lcd1.setCursor(0,1); lcd1.print("Display 1"); lcd2.print("Robojax Display"); lcd2.setCursor(0,1); lcd2.print("Display 2"); Serial.println("Robojax Displays"); Serial.println("2 or More"); delay(3000);// change this line if you want not lớn wait lcd1.clear();// clearn screen 1 lcd2.clear();// clearn screen 2 void loop() // Robojax.com multiple LCD1602 I2C display int age = 31; int days= age * 365; float weight = 4.84; float voltage = 22.1; lcdDisplay(1, 0, "Age: ", intToStr(age), " years"); // print "Age: 31 years" khổng lồ line 1 of display 1 lcdDisplay(1, 1, "Days: ", intToStr(days), " days");// print "Days: 11351 days" to lớn line 2 of display 1 lcdDisplay(2, 0, "Weight: ", floatToStr(weight), " kg");//print "Weight: 2.84 kg" t line 1 of display 2 lcdDisplay(2, 1, "Voltage: ", floatToStr(voltage), "V");// print "Voltage 22.10V" khổng lồ line 2 of display 2 Serial.println("Age: ");Serial.print(age); Serial.print(" years"); Serial.println("Days: ");Serial.print(days); Serial.print(" days"); Serial.println("===="); delay(50); // wait for 200 milliseconds // loop end/* * Written by Ahmad Shamshiri on Nov 17, 2018 for Robojax.com * lcdDisplay(int dis, int rowNum, String titleText, String valueText, String value2Text) for example to display * dis is display number * rowNum is row number (0) * title is the text (Voltage:) * valueText is the value * value2Text is the appended to the valueText like (A, V etc) * *