【arduino】LCD1602屏幕动画

一、实验器材

UNO控制板:1块
LCD1602带解码器(PCF8574)显示屏
杜邦线若干

二、连线示意图

GND接–GND
VCC接–VCC
SDA接–A4
SCL接–A5
实物接线图如下,图片是博主网上找的

三、代码如下

    #include <Wire.h>  //加载Wire通讯库#include <LiquidCrystal_I2C.h>  //加载液晶屏库LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2); // 设 LCD的地址为0x27,16列2行const int batteries = 3;const int batteryPin[] = {A0, A2, A6, A4};const int basePin[] = {A1, A3, A7, A5};const float R[] = {10.0, 10.0, 10.0, 10.0};const int ledPin[]= {9, 8, 7, 6};const float stopVoltage = 0.9;const float resetVoltage = 0.1;const int batteryOn = 1;const int batteryStop = 0;const int batteryReset = -1;const float referenceVoltage = 5.00;float batteryVoltage[3] = {0.0, 0.0, 0.0};  // voltsfloat baseVoltage[3] = {0.0, 0.0, 0.0}; // voltsfloat capacity[3] = {0L, 0L, 0L};  // mAhfloat energy[3] = {0L, 0L, 0L};  // mWhunsigned long previousTime = 0L;  // millisecondsunsigned long currentTime = 0L;  // millisecondsint batteryStatus[3] = {batteryReset, batteryReset, batteryReset};float latestViableCurrent[3] = {0.0, 0.0, 0.0}; // this is temporaryunsigned long lastUpdate = 0L;long animationStep = -200;byte cursorLCD = 15;int numberOfColumns = 16;long randomVariable = 0;boolean waitForAnimationDelay = true;int printCycle = 0;void animationSetup() {for (int i=0; i < 8; i++) {byte charLine[8];for (int j=0; j < 8; j++) {if (j > i) charLine[7-j]=B00000;else charLine[7-j]=B11111;}lcd.createChar(i, charLine);}}void setup() {Serial.begin(9600);lcd.init();lcd.backlight();animationSetup();}void animation1() {lcd.setCursor(14,0);lcd.write(byte(animationStep % 8));// lcd.write(7);animationStep++;}    void animation3() {byte character[2];for (int column = 0; column < numberOfColumns; column++) {int actualValue=cos(animationStep*(0.1+column*0.01))*8.5+9;if (actualValue == 17) {character[0]=byte(255);character[1]=byte(255);}else if (actualValue > 9) {character[0]=byte(actualValue-10);character[1]=byte(255);}else if (actualValue == 9) {character[0]=byte(32);character[1]=byte(255);}else if (actualValue == 8) {character[0]=byte(32);character[1]=byte(255);}else if (actualValue == 0) {character[0]=byte(32);character[1]=byte(32);}      else {character[0]=byte(32);character[1]=byte(actualValue-1);}lcd.setCursor(15-column,0);lcd.write(character[0]);lcd.setCursor(15-column,1);lcd.write(character[1]);}// lcd.write(byte(animationStep % 8));// lcd.write(7);animationStep++;}void loop() {animation3();}

【arduino】LCD1602屏幕动画相关推荐

  1. Arduino LCD1602电子时钟

    功能 利用LCD1602显示时间,日期.星期,并能通过按键修改时间 Proteus ISIS 仿真图: 时间计算原理: 不使用DS1302时钟芯片,而是使用arduino的mills()函数,其功能是 ...

  2. Arduino + Lcd1602 显示当前环境温度

    有小伙伴表示Arduino也是个好玩具,所以又入了一块Arduino UNO R3先玩着.突然想起科技京城电子市场很久很久没去过了,所以一时兴起又顶着烈日去晃了一圈,哈哈太好了,市场还在.顺便买了块L ...

  3. Arduino——LCD1602显示屏

    简介 LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符.LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,即可以显示出图形. 引脚说明 引脚     ...

  4. arduino ssd1306屏幕打印信息(已测可用)

    1 安装 ssd1306oled显示库 2 ssd1306oled信息打印代码 #include <SPI.h> #include <Wire.h> #include < ...

  5. C语言:将一个文本文件按字符送上屏幕(动画效果)

    #include<stdio.h> /* 包含putchar()相关文件操作fopen()打开文件 feof()判断文件到结尾更多查看stdio.h */ #include<stdl ...

  6. HTML+CSS+JS实现 ❤️酷炫HUD科幻数据屏幕动画界面❤️

  7. 解决Arduino使用LCD屏幕制作电子时钟的问题

    Arduino LCD屏幕电子时钟 前言 需要做一个公交车报站器,语音模块还没到,花了一天研究了一下ST7735芯片的屏幕,手上这块是1.44寸的TFT屏幕,翻了半天网络,使用ST7735做实物的比较 ...

  8. android 11/12/13系统屏幕旋转动画分析-车机手机系统工程师必备

    1.触发屏幕旋转流程 更多内容qqun:422901085 https://ke.qq.com/course/5992266#term_id=106217431 触发流程,这里我先只考虑正常窗手机传感 ...

  9. C语言arduino密码锁实验报告,简易密码锁的制作-Arduino中文社区 - Powered by Discuz!...

    本帖最后由 chemistry 于 2018-11-8 16:57 编辑 一款简易密码锁一.功能: 将密码显示在lcd屏上,正常状态下电磁锁处于锁定状态,当输入密码与原设定密码一致时,打开电磁锁.同时 ...

最新文章

  1. 北大联合UCLA发表论文:9头以上Transformer就能模拟CNN!
  2. 使用百度大脑,导入aip以及相应的库文件报错问题
  3. 程序员的算法课(8)-贪心算法:理解霍夫曼编码
  4. (转)基于MVC4+EasyUI的Web开发框架经验总结(11)--使用Bundles处理简化页面代码...
  5. 什么是数据脱敏(Data Masking)?
  6. 大数据时代下,数据感知在数据质量管理系统中的应用
  7. requests爬取英雄联盟皮肤图片
  8. python 将数据库的 utc时间转换成本地时间
  9. JavaScript-- 基础知识面试题
  10. Android 连接USB设备(主机模式)
  11. 推荐系列(五):协同过滤的优点和缺点
  12. adobe登录无法连接服务器未响应,adobe链接不到服务器
  13. cnpm的安装(超级详细版)
  14. 什么是web前端开发工程师和h5有什么关系
  15. jquery实现抽奖小游戏
  16. --i和i--的区别
  17. 数据分析、数据挖掘、数据运营有啥区别?
  18. 大话通信和计算机网络,《大话通信》读后感 - 通信人读书 - 通信人家园 - Powered by C114...
  19. 【稳定性day0】稳定性治理的三种思想—亚马逊、Netflix与蚂蚁金服
  20. 常用的数字高程模型(DEM)数据介绍,附免费下载

热门文章

  1. vue在一个方法执行完后执行另一个方法
  2. 2018年创翼 开wifi方法 适合电脑小白
  3. 《网络攻防》Web安全基础实践
  4. Linux下lsb_release命令的安装教程
  5. Mars Crowdloan 空投领取及开放查询(内附领取操作)
  6. 9 9简单的数独游戏python_如何使用tkinter gui python创建一个9*9的数独生成器?
  7. 网络系统(Java web)开发与设计项目实战——实现用户登录与注册
  8. linux tar 压缩 删除源文件,Linux tar 如何在压缩之后删除原文件
  9. mysql怎么创建出生日期表_如何在MySQL中从出生日期开始生成数字序列
  10. 什么是句柄、什么是自上而下、自下而上分析—编译原理