Код Arduino (C / C ++) для отображения содержимого массива на ЖК-дисплее

Я постарался сделать как можно больше исследований, прежде чем публиковать это, но я новичок в программировании, поэтому мое общее невежество на данный момент не позволяет мне действительно знать, как задавать правильные вопросы.

Текущие цели:

  1. Создание массива, в котором хранится более 50 английских слов / фраз;
  2. Получите доступ к массиву на моем Arduino и отобразите отдельные слова / фразы на моем ЖК-дисплее;
    а также
  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;
}

1

Решение

У меня также есть Arduino Uno и ЖК-дисплей. Ваша задача будет отлаживать как аппаратное, так и программное обеспечение. Итак, позвольте мне задать несколько вопросов.

В вашем листинге кода, когда вы запускаете скетч, вы получаете «привет мир!» дисплей на ЖК?

Как main() что вы предоставили отношение к этой проблеме. В частности, где находится main() Бег? Я надеюсь это НЕ часть вашего эскиза !!

В вашем loop() ты сделаешь НЕ задержка У начинающего программиста … обычно при отображении чего-то, что вы хотите сделать паузу на несколько секунд, иначе вы будете управлять ЖК-дисплеем с тысячами изменений в секунду.

Так что добавьте delay(3000); Заявление о задержке на 3 секунды (3000 миллисекунд) между обновлениями на ЖК-дисплее.

Далее, в ‘loop () `вам нужно будет проверить нажатие кнопки, а пока просто заставить ЖК-дисплей отображаться.

Пожалуйста, сделайте это и обновите ваш вопрос соответственно, и я дополню вашими предложениями / вопросами.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]