• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

请问一下我想将直流电机和LCD连接起来,将直流电机在串口监视

六哥六哥 2017-03-08 浏览量:1358

请问一下大家我想将直流电机和LCD连接起来,将直流电机在串口监视器中显示的数字显示在LCD屏幕上面,这个该怎么做啊 ???

例程中有一个在串口输入字符可以显示在LCD屏幕上面,当我将两个程序结合在一起的时候,发现串口监视器显示的数据无法显示在LCD屏幕上面
// 包含头文件
#include <LiquidCrystal.h>

// 初始化引脚
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// 引脚定义
const int analogInPin = A0;  // 模拟输入引脚
const int analogOutPin = 9; //  PWM输出引脚
int ledPin = 13;
int sensorValue = 0;        // 电位器电压值
int outputValue = 0;        // 模拟量输出值(PWM)


void setup() {
  // 初始化串口参数
  Serial.begin(9600); 
  pinMode(ledPin, OUTPUT); 
   lcd.begin(16, 2);
    // 初始化串口
  Serial.begin(9600);
    //打印字符串到液晶
  lcd.write("Input string .. ");//提示从PC串口软件发送信息
  lcd.setCursor(0, 1);
  lcd.write("www.doflye.net");//提示从PC串口软件发送信息
}

void loop() {

  sensorValue = analogRead(analogInPin);           // 读取模拟量值   
  outputValue = map(sensorValue, 0, 1023, 0, 255);    // 变换数据区间
   sensorValue = analogRead(analogInPin);    
  // 点亮led,LY-51S独立模块开发板上led模块则是熄灭led
  digitalWrite(ledPin, HIGH);  
  // 使用读取的这个模拟量值作为演示时间,单位ms,范围0-1023
  delay(sensorValue);          
  // 熄灭led,LY-51S独立模块开发板上led模块则是点亮led 
  digitalWrite(ledPin, LOW);   
  // 使用读取的这个模拟量值作为演示时间,单位ms,范围0-1023
  delay(sensorValue);                  

  // 输出对应的PWM值
  analogWrite(analogOutPin, outputValue);           

  // 打印结果到串口监视器
  //这里可以使用arduino自带的串口调试器,也可以使用德飞莱串口调试软件
  //下载地址:http://doflye.net/viewthread.php?tid=4929
  Serial.print("sensor=" );                       
  Serial.print(sensorValue);      
  Serial.print("\t output=");      
  Serial.println(outputValue);   
// 如果检测到串口有字符输出...
  if (Serial.available()) {
    // 等待完整的信息接收
    delay(100);
    // 清屏
    lcd.clear();
    // 读取所有的字符信息
    while (Serial.available() > 0) {
      // 显示到液晶屏幕
      lcd.write(Serial.read());
    }
  }
  // 等待2ms进行下一个循环
  // 取保能稳定读取下一次数值
  delay(2);                     
}



0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 你先发一个字符到LCD,看看LCD的驱动是不是正确的,然后再检查电机的数值,用串口看,最后检查你的传参数过程是不是有问题
    • 发布于 2017-03-09
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • I have a motor,I have a LCD,啊哈,MCD。


    • 发布于2017-03-08
    • 举报
    • 评论 1
    • 0
    • 0
xukejing 回复了 pATAq :这答案有毒 回复

  • 肯定无法显示。需要先驱动LCD正常工作,然后再把从串口输出的数据同时给LCD显示一份。上面这段程序里没有操作LCD的代码,所以不可能显示出来。
    • 发布于2017-03-08
    • 举报
    • 评论 1
    • 0
    • 0
六哥六哥 回复了 LiuYang :好的,我等下在试试,那开始重新把LCD调试出显示 回复

  • lcd.write前指定一下光标位置
    • 发布于2017-03-08
    • 举报
    • 评论 1
    • 0
    • 0
六哥六哥 回复了 xukejing :怎么弄啊? 回复

  • 你那个LCD的初始化内容要加一下

    另外你那个LCD确认现在能不能点亮,看看硬件接线那些有没问题先,起码灯要亮,接下来才是设计显示的内容

    • 发布于2017-03-08
    • 举报
    • 评论 1
    • 0
    • 0
六哥六哥 回复了 chen0000009 :表示没有看懂啊,能不能在说的详细些 回复

  • 您好,這樣寫會有問題的,因為Serial會等待有字元輸入才會把結果顯示到LCD,因此改為以下即可

    void loop() {
    
      sensorValue = analogRead(analogInPin);           // 读取模拟量值   
      outputValue = map(sensorValue, 0, 1023, 0, 255);    // 变换数据区间
       sensorValue = analogRead(analogInPin);    
      // 点亮led,LY-51S独立模块开发板上led模块则是熄灭led
      digitalWrite(ledPin, HIGH);  
      // 使用读取的这个模拟量值作为演示时间,单位ms,范围0-1023
      delay(sensorValue);          
      // 熄灭led,LY-51S独立模块开发板上led模块则是点亮led 
      digitalWrite(ledPin, LOW);   
      // 使用读取的这个模拟量值作为演示时间,单位ms,范围0-1023
      delay(sensorValue);                  
    
      // 输出对应的PWM值
      analogWrite(analogOutPin, outputValue);           
    
      // 打印结果到串口监视器
      //这里可以使用arduino自带的串口调试器,也可以使用德飞莱串口调试软件
      //下载地址:http://doflye.net/viewthread.php?tid=4929
      Serial.print("sensor=" );                       
      Serial.print(sensorValue);      
      Serial.print("\t output=");      
      Serial.println(outputValue);   
      lcd.clear();
      // 读取所有的字符信息
      lcd.write(outputValue);
    
      // 等待2ms进行下一个循环
      // 取保能稳定读取下一次数值
      delay(2);                     
    }

    根據您的需求將outputValue值顯示在LCD

    以上供參考

    • 发布于2017-03-09
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

请问一下我想将直流电机和LCD连接起来,将直流电机在串口监视