你的位置:首页 > 操作系统

[操作系统]Arduino控制LCD显示helloworld


首先是一些基础知识:

  LCD 1602简介:(图片来自http://www.51hei.com/bbs/dpj-36571-1.html)

 

 

Arduino LiquidCrystal库简介:

  这个库可以封装了对LCD芯片的一些操作,用起来很方便,不用再自己编写相关的芯片时序控制、数据或命令读写等函数的代码了。

  1. LiquidCrystal()

  简介:创建一个LiquidCrystal的实例(构造函数).可使用4线或8线方式作为数据线(请注意,还需要指令线).若采用四线方式,将d0-d3悬空不连接.RW引脚可接地而不用接在Arduino的某个引脚上;如果这样接,省略在函数中的rw参数。

  构造函数:

    LiquidCrystal(rs, enable, d4, d5, d6, d7)  

    LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)  

    LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7)  

    LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7) 

  参数说明:

    rs: rs连接的Arduino的引脚编号  rw: rw连接的Arduino的引脚编号   enable:enable连接的Arduino的引脚编号  

    d0, d1, d2, d3, d4, d5, d6, d7: 连接的Arduino的引脚编号 

  例子  :

    #include <LiquidCrystal.h>    LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); //使用的上述第一个构造函数,Arduino的12脚接LCD的rs脚、11脚接enable...
     void setup()     {       lcd.print("hello, world!");     }      void loop() {}

   2.begin()

     简介 :指定显示屏的尺寸(宽度和高度)。  

    语句:lcd.begin(cols, rows)  

    参数设置 :

      lcd:一个LiquidCrystal类型的变量  

      cols: 显示器可以显示的列数(1602是16列)  

      rows: 显示器可以显示的行数(1602是2行) 

   3.clear()

      简介:清屏

     语句:lcd.clear();

   4.setCursor()

     简介 : 将光标定位在特定的位置

     语句  lcd.setCursor(col, row)  

     参数:

       lcd:一个LiquidCrystal类型的变量  

       col: 你要显示光标的列 (从0开始计数)  

       row: 你要显示光标的行 (从0开始计数)

    5.print()

      简介:  将文本显示在LCD上

      语句  :

         lcd.print(data)  

         lcd.print(data, BASE)

      参数:

        data:要显示的数据,可以是char, byte, int, long或者string类型的  

        BASE (optional): 数制(可选的),BIN,DEC,OCT,HEX分别将数字以二进制,十进制,八进制,十六进制方式显示出来. 

    该库还有其他很多有用的函数,这里就不一一介绍了,具体要应用到时可以查阅相关库资料。

  

  有了这些基本知识之后,我们可以开始准备连接硬件线路了

   要用的材料:

    1.杜邦线若干

    2.Arduino主板一块

    3.面板包一块

    4.1602 LCD一块

    5.可变电阻器一个

    6.220欧电阻一个

   连接方式:

    将LCD的RS,ENABLE,D4,D5,D6,D7分别接到Arduino的12,11,5,4,3,2口;

    LCD的Vss、R/W接到GND, Vdd接到5v;

    LCD的A脚接到5v,k脚串接一个电阻到GND(稍微降低一点背光的亮度);

    可变电阻的一只脚接到5v,中间一只接到lcd的V0,另外一只接到GND,这个可变电阻的作用是调节LCD的对比度,若对比度不合适则会导致字符显示看不到

  

 

  软件代码:

 // 引用LiquidCrystal Library #include <LiquidCrystal.h>   // 建立LiquidCrystal 的变数lcd // LCD 接脚: rs, enable, d4, d5, d6, d7  // 对应到Arduino 接脚: 12, 11, 5, 4, 3, 2 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);   void setup()  {  // 设定LCD 的行列数目(2 x 16)  lcd.begin(16, 2);    // 列印"Hello World" 讯息到LCD 上  lcd.print("hello, world!");  }   void loop() {  // 将光标设到第5列,第2行(第一列第一行为0,0),设置显示到屏幕第二行中间  lcd.setCursor(6, 1);    // 打印Arduino 重开之后经过的秒数  lcd.print(millis()/1000); }

  代码在连接好的电路上运行的结果:

  

  结果显示算是成功了,本次实验值得注意的有以下几点:

  1.对硬件如LCD的基本了解,各个引脚的接法,其中LCD对比度的控制,在V0脚上串接一个可调电阻是个很好的选择

  2.对Arduino库的了解,用起来很方便,不需自己编写赋复杂的硬件控制代码。

 

 

  参考:

     http://www.51hei.com/bbs/dpj-36571-1.html

     百度文库