楼主: eagler8

【Arduino】108种传感器模块系列实验(88)--- LCD1602液晶屏模块

[复制链接]

签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2021-5-12 17:15 | 显示全部楼层

谢谢鼓励

签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2021-5-21 06:08 | 显示全部楼层

谢谢鼓励,多交流

签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2021-7-9 11:22 | 显示全部楼层
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验八十八: LCD1602A液晶屏5V显示模块(IIC/I2C接口)
  项目二十:循环显示常用的键码
  实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验八十八: LCD1602A液晶屏5V显示模块(IIC/I2C接口)
  4.   项目二十:循环显示常用的键码
  5.   Arduino------LCD1602
  6.   5V-------------VCC
  7.   GND-----------GND
  8.   A4-----------SDA IIC 数据线
  9.   A5-----------SCL  IIC 时钟线
  10. */

  11. #include <Wire.h>
  12. #include <LiquidCrystal_I2C.h>

  13. #if defined(ARDUINO) && ARDUINO >= 100
  14. #define printByte(args)  write(args);
  15. #else
  16. #define printByte(args)  print(args,BYTE);
  17. #endif

  18. uint8_t bell[8]  = {0x4, 0xe, 0xe, 0xe, 0x1f, 0x0, 0x4};
  19. uint8_t note[8]  = {0x2, 0x3, 0x2, 0xe, 0x1e, 0xc, 0x0};
  20. uint8_t clock[8] = {0x0, 0xe, 0x15, 0x17, 0x11, 0xe, 0x0};
  21. uint8_t heart[8] = {0x0, 0xa, 0x1f, 0x1f, 0xe, 0x4, 0x0};
  22. uint8_t duck[8]  = {0x0, 0xc, 0x1d, 0xf, 0xf, 0x6, 0x0};
  23. uint8_t check[8] = {0x0, 0x1, 0x3, 0x16, 0x1c, 0x8, 0x0};
  24. uint8_t cross[8] = {0x0, 0x1b, 0xe, 0x4, 0xe, 0x1b, 0x0};
  25. uint8_t retarrow[8] = {        0x1, 0x1, 0x5, 0x9, 0x1f, 0x8, 0x4};

  26. // 对于 16 个字符和 2 行显示,将 LCD 地址设置为 0x27
  27. LiquidCrystal_I2C lcd(0x27, 20, 4);

  28. void setup() {
  29.   lcd.init();                      // 初始化液晶显示器
  30.   lcd.backlight();

  31.   lcd.createChar(0, bell);
  32.   lcd.createChar(1, note);
  33.   lcd.createChar(2, clock);
  34.   lcd.createChar(3, heart);
  35.   lcd.createChar(4, duck);
  36.   lcd.createChar(5, check);
  37.   lcd.createChar(6, cross);
  38.   lcd.createChar(7, retarrow);
  39.   lcd.home();

  40.   lcd.print("Hello world...");
  41.   lcd.setCursor(0, 1);
  42.   lcd.print(" i ");
  43.   lcd.printByte(3);
  44.   lcd.print(" arduinos!");
  45.   delay(1000);
  46.   displayKeyCodes();
  47. }

  48. // 显示所有键码
  49. void displayKeyCodes(void) {
  50.   uint8_t i = 0;
  51.   
  52.   while (1) {
  53.     lcd.clear();
  54.     lcd.print("Codes 0x"); lcd.print(i, HEX);
  55.     lcd.print("-0x"); lcd.print(i + 16, HEX);
  56.     lcd.setCursor(0, 1);
  57.     for (int j = 0; j < 16; j++) {
  58.       lcd.printByte(i + j);
  59.     }
  60.     i += 16;
  61.     delay(1000);
  62.   }
  63. }

  64. void loop() {
  65. }
复制代码


签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2021-7-9 11:36 | 显示全部楼层
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验八十八: LCD1602A液晶屏5V显示模块(IIC/I2C接口)
  项目二十:循环显示常用的键码

  实验场景图之一
  


签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2021-7-9 11:48 | 显示全部楼层

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验八十八: LCD1602A液晶屏5V显示模块(IIC/I2C接口)
  项目二十:循环显示常用的键码


  实验场景图之二   

签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2021-7-9 11:52 | 显示全部楼层
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验八十八: LCD1602A液晶屏5V显示模块(IIC/I2C接口)
  项目二十:循环显示常用的键码

  实验场景图之三   

签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2021-7-9 13:38 | 显示全部楼层
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验九十一: 1号霍尔水流量传感器 直饮机流量监控模块
  项目十:用LCD1602A屏显示水流量传感器输出
  实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验九十一: 1号霍尔水流量传感器 直饮机流量监控模块
  4.   项目十:用LCD1602A屏显示水流量传感器输出
  5.   实验接线:Uno D2接流量传感器OUT
  6.   Arduino------LCD1602
  7.   5V-------------VCC
  8.   GND-----------GND
  9.   A4-----------SDA IIC 数据线
  10.   A5-----------SCL  IIC 时钟线
  11. */

  12. #include <Wire.h>
  13. #include <LiquidCrystal_I2C.h>
  14. LiquidCrystal_I2C lcd(0x27, 16, 2);

  15. unsigned char flow_sensor_pin = 2;
  16. unsigned int flow_per_min;
  17. unsigned long current_time;
  18. unsigned long cloop_time;
  19. volatile int sensor_pulses;

  20. void setup() {
  21.   Serial.begin(9600);
  22.   lcd.init(); //初始化LCD
  23.   lcd.backlight(); //打开背光
  24.   sei();
  25.   lcd.begin(16, 2);
  26.   lcd.clear();
  27.   lcd.setCursor(0, 0);
  28.   lcd.print(" Flow Meter ");

  29.   pinMode(flow_sensor_pin, INPUT);
  30.   digitalWrite(flow_sensor_pin, HIGH);
  31.   attachInterrupt(0, pulses_measure, RISING);

  32.   current_time = millis();
  33.   cloop_time = current_time;
  34. }

  35. void loop ()
  36. {
  37.   current_time = millis();
  38.   if (current_time >= (cloop_time + 1000))
  39.   {
  40.     cloop_time = current_time;
  41.     flow_per_min = (sensor_pulses / 7.5);
  42.     sensor_pulses = 0;

  43.     Serial.print(flow_per_min, DEC);
  44.     Serial.println(" L/MIN");

  45.     lcd.setCursor(0, 1);
  46.     lcd.print(" ");
  47.     lcd.setCursor(0, 1);
  48.     lcd.print(" Flow:");
  49.     lcd.print(flow_per_min, DEC);
  50.     lcd.print(" L/MIN");
  51.     delay(100);
  52.   }
  53. }

  54. void pulses_measure () {
  55.   sensor_pulses++;
  56. }
复制代码


签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2021-7-9 13:52 | 显示全部楼层
  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验九十一: 1号霍尔水流量传感器 直饮机流量监控模块
  项目十:用LCD1602A屏显示水流量传感器输出

实验场景图

33.jpg

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

ESP8266结合blinker使用小爱同学电脑远程开机
ESP8266结合blinker使用小
blinker是点灯科技开发的面向广大物联网爱好者和创客公司研发的APP,可以安全快速有效
【Arduino】168种传感器模块系列实验(159)---MAX9814咪头传感器
【Arduino】168种传感器模
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
【干货分享】mega2560原理图PCB图纸altium designer18
【干货分享】mega2560原理
分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
【限时免费领】1000 块 Wi-Fi+BLE MCU 开发板
【限时免费领】1000 块 Wi
有! >>涂鸦智能 Wi-Fi+BLE MCU 开发板
Stduino UNO mini来了,你确定不了解下嘛
Stduino UNO mini来了,你
Stduino UNO mini基于Arduino UNO板型支持数字式调用引脚,例如:pinMode(13,OUTPUT)
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表