Bonjour à tous, il y a quelques mois je me suis lancé dans ce projet. J'ai effectué quelques modifications pour coller au mieux à l'afficheur que l'on voit dans le film. (afficheurs AlphaNum, affichage spécifique des chiffres 6 et 9, création de PCBs notamment)
N'hésitez pas à jeter un oeil à ma page Facebook (Facebook) pour avoir plus d'infos.
Le montage de base fonctionne bien.
Cependant, je voudrais ajouter un clavier pour choisir la date de Destination, comme dans le film.
Malheureusement, je bloque.
Pour info, le montage fonctionne avec un Pro-Mini 5V/16MHz et j'ai un UNO pour les tests.
J'utilise la librairie OneWireKeypad, je dois utiliser le moins de broches possible car au final je veux ajouter un WaveShield pour les effets sonores et celui-ci demandes un nombre important de broches.
Bref, là n'est pas le problème pour l'heure.
Le montage du clavier est fonctionnel après test des 2 sketchs-exemple fournis avec la librairie.
Mon problème est le suivant:
-Ajouter une sous-fonction dans le LOOP qui se charge de lire le clavier et de stocker les infos de touches dans un tableau. (Appelons-la saisieDate())
-Utiliser les valeurs de ce tableau dans une autre sous-fonction qui est déjà dans le LOOP. En l'occurence, displayDate().
Je vous mets mon code de base en Pièce Jointe.
Pour l'ajout du clavier, je compte procéder comme suit:
-Paramètres propres à la librairie OnewireKeypad:
#include <OnewireKeypad.h>
char TOUCHES[]={
'1','2','3',
'4','5','6',
'7','8','9',
'*','0','#'
};
OnewireKeypad <Print, 12> Clavier(Serial, TOUCHES, 4, 3, A0, 4700, 1000);
Dans le void SETUP:
Serial.begin(115200);
Clavier.addEventKey(saisieDate, '*'); //accès à la sous-fonction saisieDate via la touche '*'
Dans le LOOP:
Clavier.ListenforEventKey(); //contrôle si la touche '*' est pressée
-Paramètres à modifier dans le programme de base:
Passer de:
// Configuration Fonction DateTime pour les objets dest et last
DateTime dest(55, 11, 5, 22, 4, 100+19), // Nov 5, 1955 10:04 PM Objet dest (futur)
last(85, 10, 26, 1, 24, 100+19); // Oct 26, 1985 1:24 AM Objet last (passé)
à:
// Configuration DateTime dest et last
byte d_annee = 55;
byte d_mois = 11;
byte d_jour = 5;
byte d_heure = 22;
byte d_minute = 4;
byte d_siecle = 19;
byte l_annee = 85;
byte l_mois = 10;
byte l_jour = 26;
byte l_heure = 1;
byte l_minute = 24;
byte l_siecle = 19;
DateTime dest(d_annee, d_mois, d_jour, d_heure, d_minute, 100+ d_siecle), // Nov 5, 1955 10:04 PM
last(l_annee, l_mois, l_jour, l_heure, l_minute, 100+ l_siecle); // Oct 26, 1985 1:24 AM
C'est à partir de là que je sèche...
Comment récupérer les données de touches via la sous-fonction saisieDate et les affecter aux variables d_annee, d_mois, d_jour, etc... pour les ré-utiliser dans la sous-fonction displayDate?
Utiliser la fonction Clavier.Getkey() est une évidence mais pour le reste...
Pour le moment, les variables l_annee, l_mois, etc... ne changeront pas. C'est juste en prévision pour une future évolution du projet.
Merci d'avance pour votre aide.
Time_Circuit_BTTF.ino (6.81 KB)