gpt4 book ai didi

c++ - Arduino:LiquidCrystal 无法使用以太网库进行打印

转载 作者:搜寻专家 更新时间:2023-10-31 01:50:15 25 4
gpt4 key购买 nike

问题

在使用 LiquidCrystal 库(当然还有 shield)时,我无法让我的 Arduino Uno 的 LCD screen 库打印到我的 Ethernet

代码

#include <SPI.h>
#include <Ethernet.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

EthernetClient client;

String text = "Original Text";

void setup() {
// Set up the LCD's number of columns and rows:
lcd.begin(16, 2);

// Print a message to the LCD.
lcd.print("Setup Text");

// We have serial, but no milk!
Serial.begin(9600);
}

void loop() {
text = "Altered Text";
if (Ethernet.begin(mac) != 0) {
Serial.println("Some Ethernet work...");
}

lcd.setCursor(0, 1);
lcd.print(text);
}

预期结果

代表一个空白字符。

屏幕应该打印:
设置↓文字↓↓↓↓↓↓
修改了↓文本↓↓↓↓

虽然 一些以太网工作... 打印到串口。

实际结果

屏幕打印:
设置↓文字↓↓↓↓↓↓
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

虽然 一些以太网工作... 打印到串口。

注意事项

如果我注释掉循环中的以太网代码,我会得到预期结果

我的问题类似于——但不完全相同——这个问题:
Arduino code anomalies - LCD fails with multiple 'if' statements

我不认为我的问题是内存不足。我正在使用最新的以太网库,它修复了以前版本中的 memory leak bug

最佳答案

我在这里找到了答案:https://electronics.stackexchange.com/questions/29240/arduino-uno-ethernet-shield-16x2-lcd-not-initializing

@ben 根据此处的页面,用户“njohnson”的评论指出屏蔽使用除 1,2 和 8 之外的所有数字引脚。基于此,我尝试将液晶显示器连接到 6 模拟引脚(作为输出)及其现在工作正常。现在的问题是我在哪里/如何研究屏蔽原理图以确定我可以使用哪些引脚。现在,这似乎是一个不寻常的设计决定,因为使用屏蔽意味着牺牲 13 个数字引脚! – Ankit 2012 年 4 月 3 日 21:14

解决方案

我将 LCD 引脚移至模拟引脚 (14-19)。

代码修改

LiquidCrystal lcd(7, 8, 9, 10, 11, 12); 更改为 LiquidCrystal lcd(19, 18, 17, 16, 15, 14); 并相应地移动 LCD 屏幕引脚。

关于c++ - Arduino:LiquidCrystal 无法使用以太网库进行打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15399918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com