2013-08-23 2 views
1

J'ai essayé de faire autant de recherches que possible avant de poster ceci, mais je suis novice en programmation, donc mon ignorance générale m'empêche à ce stade de pouvoir vraiment savoir poser les bonnes questions.Code Arduino (C/C++) Pour afficher le contenu de la matrice sur l'écran LCD

objectifs actuels:

  1. Construire un tableau qui stocke 50+ mots anglais/phrases;
  2. Accédez à la baie de mon Arduino et affichez des mots/phrases individuels sur mon écran LCD; Basculer entre les mots/phrases en cliquant sur un bouton sur l'Arduino.

Spécifications matérielles: SainSmart UnoR3, LCD basé sur HD44780

Problème: L'écriture d'un code qui affiche un nouveau mot quand je pousse un bouton.

Code pour "Bonjour, monde!" J'ai également un Arduino Uno et un écran à cristaux liquides 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); 
} 

code pour une chaîne aléatoire d'un tableau

#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; 
} 
+0

Pouvez-vous s'il vous plaît nous fournir votre code et problème? – glautrou

+0

@glautrou J'ai modifié mon message pour inclure mon code et mon problème (c'est-à-dire, avoir un code qui affichera de nouveaux mots quand j'appuie sur un bouton). – SocraticDatum

Répondre

0

. Votre tâche consiste à déboguer le matériel et le logiciel. Alors, laissez-moi poser quelques questions.

Dans votre liste de code, lorsque vous exécutez l'esquisse, vous obtenez un "bonjour monde!" afficher à l'écran LCD?

Comment est le main() que vous avez fourni pertinent à ce problème. Plus précisément, où est main() en cours d'exécution? J'espère que c'est PAS partie de votre croquis !!

Dans votre loop() vous faites pas avoir un délai. À un programmeur de départ ... généralement lors de l'affichage de quelque chose que vous voulez faire une pause pendant quelques secondes, sinon vous allez conduire l'écran LCD avec des milliers de changements par seconde.

Ajoutez donc une instruction delay(3000); pour retarder de 3 secondes (3 000 millisecondes), entre les mises à jour de l'écran LCD.

Ensuite, dans le 'loop() `vous devrez tester pour un bouton poussoir, mais pour l'instant il suffit d'afficher l'écran LCD.

S'il vous plaît faites ces choses et mettez à jour votre question en conséquence, et je ferai un suivi avec plus de suggestions/questions.

Questions connexes