Giao tiếp arduino với lcd

      161

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

*
Sơ đồ gia dụng đấu nối tiếp xúc IC2 với LCD 16×2.

Bạn đang xem: Giao tiếp arduino với lcd

Code quét những device trong một bus I2C

*

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

*

*
: Sunrom Electronics" />

Các chúng ta có thể tải code tìm địa chỉ bus sinh hoạt đây. Tải ngay.

// --------------------------------------//http://playground.arduino.cc/Main/I2cScanner// i2c_scanner//// Version 1// This program (or code that looks like 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 lớn 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 lớn 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 khổng lồ 127.// A sensor seems to lớn 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 clip 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 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 đến 2 màn hình LCD 16×02, liên kết với Arduino

*

/* * Arduino code for use two or more LCD1602 with I2C with Arduino * Custom function khổng lồ 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 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 lấy phí to be used as long as you keep this chú ý intact.* * This code has been download from Robojax.com This program is không tính tiền software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the miễn phí Software Foundation, either version 3 of the License, or (at your option) any later version.

Xem thêm: Hướng Dẫn 7 Cách Tải Ảnh Về Máy Tính, Tải Ảnh Hoặc Video Xuống Thiết Bị Của Bạn

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 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 to 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" lớn 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" to lớn 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 lớn display * dis is display number * rowNum is row number (0) * title is the text (Voltage:) * valueText is the value * value2Text is the appended khổng lồ the valueText lượt thích (A, V etc) * *