极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10268|回复: 2

IIC1602显示数据不正确

[复制链接]
发表于 2013-9-15 16:40:43 | 显示全部楼层 |阅读模式
我用HY-SRF05测数据显示在IIC1602上,可是数据老和串口上的不一样,什么原因?程序如下:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display
int i;
int inputPin=3;  // define ultrasonic signal receiver pin  ECHO to D3
int outputPin=4; // define ultrasonic signal transmitter pin  TRIG to D4
void setup()
{
  Serial.begin(9600);
  pinMode(inputPin, INPUT);
  pinMode(outputPin, OUTPUT);
  lcd.init();                      // initialize the lcd

  // Print a message to the LCD.
  lcd.backlight();//是否背光
  lcd.setCursor(0,0);
  lcd.print("Hello, world!");

  
}

void loop()
{
  digitalWrite(outputPin, LOW);
  delayMicroseconds(2);
  digitalWrite(outputPin, HIGH); // Pulse for 10μs to trigger ultrasonic detection
  delayMicroseconds(10);
  digitalWrite(outputPin, LOW);  
  int distance = pulseIn(inputPin, HIGH);  // Read receiver pulse time
  i= distance/58;   // Transform pulse time to distance
  Serial.println(i);
  lcd.setCursor(0,1);
  lcd.print("s=0");
  lcd.print(i/10);
  delay(40);
  
}
回复

使用道具 举报

发表于 2013-9-16 01:37:20 | 显示全部楼层
如何不正确呢?是现实的问题还是什么问题?一般来说我在每次显示之前会用lcd.clear()做一次屏幕的刷新,然后再显示新的数据。这样就不会有旧的数据干扰新的数据,尤其是旧数据比较长而新数据比较短的时候。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-17 10:47:56 | 显示全部楼层
lcd.clear();是不是放在显示程序前,另外如果要一行连续写几个不同的量的话,是否就直接添加cd.print();?
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-5 13:52 , Processed in 0.036596 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表