1

在发布此内容之前,我已尝试尽可能多地进行研究,但我是编程新手,所以我的普遍无知在这一点上使我无法真正知道如何提出正确的问题。

当前目标:

  1. 构建一个存储 50 多个英语单词/短语的数组;
  2. 访问我的 Arduino 上的阵列,并在我的 LCD 上显示单个单词/短语;和
  3. 通过单击 Arduino 上的按钮来切换单词/短语。

硬件规格:SainSmart UnoR3,基于 HD44780 的 LCD

问题:编写一个在我按下按钮时将显示一个新单词的代码。

“你好,世界!”的代码 液晶显示器

void setup() {
 // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

数组中随机字符串的代码

#include <stdio.h>
#include <stdlib.h>

int main() {
    const char *messages[] = {
        "Hello!",
        "How are you?",
        "Good stuff!"
    };
    const size_t messages_count = sizeof(messages) / sizeof(messages[0]);
    char input[64];
    while (1) {
        scanf("%63s", input);
        printf("%s\n", messages[rand() % messages_count]);
    }
    return 0;
}
4

1 回答 1

0

我还有一个 Arduino Uno 和一个 LCD 显示器。您的任务将是调试硬件和软件。所以,让我问一些问题。

在您的代码清单中,当您运行草图时,您会得到一个“hello world!” 在液晶显示器上显示?

您提供的main()内容与此问题有何关系。具体来说,在哪里main()运行?我希望它不是你草图的一部分!!

在你的loop()没有延迟。在初级程序员...通常在显示某些内容时要暂停几秒钟,否则您将以每秒数千次的变化来驱动 LCD。

因此,在 LCD 更新之间添加一条delay(3000);语句以延迟 3 秒(3,000 毫秒)。

接下来,在“loop()”中,您需要测试按钮是否按下,但现在只需让 LCD 显示即可。

请做这些事情并相应地更新您的问题,我将跟进更多建议/问题。

于 2013-08-23T18:07:19.267 回答