Ardumotive Arduino Greek Playground
  • Home
    • About us
    • Contact
    • License
  • Arduino
    • Tutorials
    • Workshop
  • Raspberry Pi
  • DIY 3D Printer
  • News
    • Events >
      • Unboxing & Review
    • Blog
The 1st Arduino Playground in Greece - Open Source Hardware

I2C Liquid Crystal Display

Available Languages
Picture
Picture

Εισαγωγή

Picture
Σε αυτό το tutorial θα δούμε πως μπορούμε να συνδέσουμε μια οθόνη I2C με το Arduino.

Με το πρωτόκολλο επικοινωνίας i2c μπορούμε να συνδέσουμε την οθόνη με το Arduino μόνο με δυο καλώδια!

To i2c module διαθέτει ποτενσιόμετρο για την ρύθμιση της αντίθεσης της οθόνης.

Τα υλικά που θα χρειαστούμε

Για το tutorial αυτό θα χρειαστούμε:
  • Arduino uno
  • Breadboard (προερετικό)
  • I2C LCD 16x2

(και φυσικά μερικά καλώδια, 4 στην περίπτωση μας)
Picture

Διεύθυνση I2C συσκευής

Κάθε i2c συσκευή διαθέτει μια διεύθυνση. Η δικιά μου οθόνη έχει διεύθυνση 0x3F, στο ίδιο module συναντάμε και by default την 0x27, η οποία μπορεί να αλλάξει βραχυκυκλώνοντας τα pins Α0, Α1, Α2. Αν θέλετε να αλλάξετε την διεύθυνση της οθόνης, ακολουθήστε το παρακάτω πίνακα (1= Χωρίς βραχυκύκλωμα, 0 = με βραχυκύκλωμα): 
Picture

Το κύκλωμα

Οι συνδέσεις είναι πολύ απλές,,
  • GND στο GND
  • Vcc στο 5V
  • SDA στο Analog 4
  • ​SCL στο Analog 5

I2C Address Scanner

Τον παρακάτω κώδικα τον βρήκα απο εδώ, θα σας βοηθήσει να βρείτε την διεύθυνση i2c της συσκευής σας σε περίπτωση που αντιμετωπίσετε κάποιο πρόβλημα ή αν θέλετε να επιβεβαιώσετε κάποια αλλαγή. 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// I2C Scanner
// Written by Nick Gammon
// Date: 20th April 2011

#include <Wire.h>

void setup() {
  Serial.begin (9600);
  Serial.println ("I2C scanner. Scanning ...");
  byte count = 0;
  
  Wire.begin();
  for (byte i = 8; i < 120; i++)
  {
    Wire.beginTransmission (i);
    if (Wire.endTransmission () == 0)
      {
      Serial.print ("Found address: ");
      Serial.print (i, DEC);
      Serial.print (" (0x");
      Serial.print (i, HEX);
      Serial.println (")");
      count++;
      delay (1);  // maybe unneeded?
      } // end of good response
  } // end of for loop
  Serial.println ("Done.");
  Serial.print ("Found ");
  Serial.print (count, DEC);
  Serial.println (" device(s).");
}  // end of setup

void loop() {}
Ανοίξτε την σειριακή οθόνη για να πάρετε το αποτέλεσμα.
i2c_find_address.zip
File Size: 0 kb
File Type: zip
Download File

Ο κώδικας

LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE) αρχικοποιεί την βιβλιοθήκη, αλλάξτε την διεύθυνση i2c 0x3F αν χρειαστεί.

Η εντολή 
lcd.begin(16,2) αρχικοποιεί την βιβλιοθήκη με τις γραμμές και στήλες της οθόνης που έχουμε. Για παράδειγμα, αν είχαμε μια οθόνη με 20 στήλες και 4 γραμμές (20x4) θα έπρεπε να αλλάξουμε την εντολή σε lcd.begin(20x4).

Η εντολή lcd.print("--minima--") εκτυπώνει ένα μήνυμα στην πρώτη γραμμή και πρώτη στήλη της οθόνης. Το "minima" θα πρέπει να είναι με λατινικούς χαρακτήρες (δεν επιτρέπετε χρήση Ελληνικών) και να έχει μέγιστο μήκος όσο και το μέγεθος της οθόνης σε στήλες. Για παράδειγμα μια οθόνη με 16 στήλες μπορεί να εμφανίσει στην πρώτη γραμμή μήνυμα με μέγιστο μήκος 16 χαρακτήρες (μαζί με τα κενά), ενώ μια οθόνη με 20 στήλες μπορεί να εμφανίσει μήνυμα με μέγιστο μήκος 20 χαρακτήρες.
​
Η εντολή lcd.setCursor
(0,1) μετακινεί τον δείκτη στην πρώτη στήλη και δεύτερη γραμμή της οθόνης. Αν είχαμε μια οθόνη 20x4 και θέλαμε να ξεκινήσουμε το μήνυμα μας στην πέμπτη στήλη της τρίτης γραμμής θα αλλάζαμε την εντολή σε lcd.setCursor(4,2).
​

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
/* I2C LCD 16x2 Arduino Tutorial
 * More info http://www.ardumotive.com/i2clcd(en).html
 * Dev: Michalis Vasilakis Date: 19/11/2016 Ver. 1.0 */

//Libraries 
#include <Wire.h>  
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address, if it's not working try 0x27.

void setup(){
  lcd.begin(16,2);   // iInit the LCD for 16 chars 2 lines
  lcd.backlight();   // Turn on the backligt (try lcd.noBaklight() to turn it off)
  lcd.setCursor(0,0); //First line
  lcd.print("I2C LCD Tutorial");
  lcd.setCursor(0,1); //Second line
  lcd.print("*Ardumotive.com*");
}

void loop(){
}
Κατεβάστε τον κώδικα απ' εδώ και ανοίξτε το αρχείο με το Arduino IDE. Μέσα θα βρείτε και τις σχετικές βιβλιοθήκες.
​

lcd_i2c_16x2_tutorial.zip
File Size: 6307 kb
File Type: zip
Download File

Μπορείτε να κάνετε τις δικές σας παρεμβάσεις στον κώδικα, δοκιμάστε για παράδειγμα να αλλάξετε το μήνυμα στην πρώτη και δεύτερη γραμμή

Well done!

Picture
Μόλις ολοκληρώσατε άλλο ένα "How to" tutorial και μάθατε πως να χρησιμοποιείτε μια οθόνη I2C LCD.
Ελπίζω να σας άρεσε, αν θέλετε μπορείτε να αφήσετε το σχόλιο σας παρακάτω.
Picture

Search Engine

Picture

Licence 

Picture

Help us to grow up!

Picture


Donate us
About us
License
Cookies policy

Visit the biggest Arduino Shop in Greece!

Picture
find us on dwrean.net
find us on Codebender
find us on Instructables
Developed and designed by Vasilakis Michalis Copyright © 2013 Ardumotive All Rights Reserved
All trademarks referenced herein are properties of their
Powered by Create your own unique website with customizable templates.
Design by DivTag Templates