IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Comment faire pour introduire dans la m�moire RTC DC1307 une date/heure obtenue "manuellement"?


Sujet :

Arduino

  1. #1
    Membre confirm�
    Homme Profil pro
    retrait�
    Inscrit en
    D�cembre 2019
    Messages
    123
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : retrait�

    Informations forums :
    Inscription : D�cembre 2019
    Messages : 123
    Par d�faut Comment faire pour introduire dans la m�moire RTC DC1307 une date/heure obtenue "manuellement"?
    Bonsoir � tous

    M�me si j'ai acquis une premi�re exp�rience, surtout avec l'aide du pr�sent forum, je reste encore tr�s fragile et des questions probablement �l�mentaires me troublent encore.

    �a commence ici:

    https://www.developpez.net/forums/d2.../#post11697133

    o� mon syst�me fonctionne, et, l'hiver pointant le bout de son nez, je suis amen� � commencer les programmations. L'�quipement tourne depuis plusieurs mois, et comme attendu, l'horloge se d�cale et avait hier plus d'un quart d'heure d'avance avec une RTC DS1307.

    Apr�s recherches pour savoir comment je mettais � l'heure, j'ai retrouv� ce sketch, qui ne fait que �a (la remise � l'heure), avec une date/heure �crite en hard dans le listing.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    /*  ------------------------------------------------------------------
      // MettreALheure.ino devrait finir avec toutes les fonctions  17 juin 2021
      // provient de la version 02 globale
      // je veux ajouter de quoi mettre à l'heure et la date
      // pour exploiter le DS1307 en horloge et en RAM
    // Pour mise à l'heure, changer (actualiser) ligne 52 et lancer
      // Test_01_1307.ino 2 mai 2021 Lecture date/heure sur SD1307
      --------------------------------------------------------------------- */
    #include<Wire.h>
    #include <RTClib.h>  // les guillemets pour placer la .lib dans le dossier .ino
     
    // variables globales
    int Annee ;
    int Mois ;
    int Jour ;
    int Heure ;
    int Minute ;
    int Seconde ;
     
    char octetLu ;
     
    RTC_DS1307 RTC ;
    // void printDateTime ( DateTime dateTime ) ;  // affichage incertain et faux
     
    void setup ()
    {
      // put your setup code here, to run once:
      Serial.begin ( 115200 ) ;
      Wire.begin () ;
      RTC.begin () ;
    }
     
    void loop ()
    {
      // put your main code here, to run repeatedly:
      if ( Serial.available () > 0 )
      {
        int instruct = Serial.read () ;
        switch (instruct)
        {
          case'D':
            {
              DateTime now = RTC.now () ;
              printDateTime(now);
              break;
            }
          case'S':
            {
             // RTC.set ( RTC_MONTH , 6 ) ;  // juin  // refuse le .set
             // RTC.set ( RTC_HOUR , 9 ) ;  // 9 heures
     
             RTC.adjust ( DateTime ( 2021 , 10, 17 , 10 , 46 , 0 ) ) ; //  chaîne de mise à l'heure
     
              // affiche le résultat
              DateTime now = RTC.now () ;
              printDateTime(now);
     
              break;
            }
        }
      }
      delay ( 5000 ) ;
    }
    Voulant rendre le sketch un peu plus pratique, et envisager d'introduire la fonction dans mon programme principal, j'ai essay� de compl�ter ce sketch par les fonctions d'affichage de mon programme principal pour les ajouter, et l�, rien � faire. J'ai des s�ries d'erreurs incompr�hensibles.

    Pour garantir que mes fonctions d'affichage seront bien reconnues, je me suis lanc� dans l'op�ration inverse: partir du programme principal et n'y porter que les quelques fonctions, pour l'instant soumises � r�ponse � une frappe de clavier (le S), mais l� non plus la compilation se passe mal, et je ne parviens pas � aboutir.

    Dans ce nouveau monde, les fonctions/variables utilisant les termes RTC set DateTime now ... sont refus�s comme non utilisables. Leur suppression totale finit par d�clarer le programme incompatible UNO. :-(

    Or moi, ce que je voudrais, c'est partant de la date/heure pr�sente, cr�er des termes annee, jour, mois, heure, minute ajust�s en m�moire, et, sur validation par un poussoir, envoyer la s�quence avec ces termes � un �quivalent de la fonction RTC.adjust.

    Avez-vous une id�e de ce que je fais mal?


    �dit: comme j'ai modifi� mon programme principal jusqu'� supprimer tous d�fauts, mais sans relever les messages d'erreurs.

    J'ai refait un premier jus et voici les erreurs:



    C:\Users\Guy\Desktop\Mem_Arduino\Outils_de_gestion\Pour_MiseALheure\MettreALheure\MiseALheureInterne_V3\MiseALheureInterne_V3.ino: In function 'void loop()':
    MiseALheureInterne_V3:221:26: error: 'RTC' was not declared in this scope
    DateTime now = RTC.now () ;
    ^~~
    MiseALheureInterne_V3:222:11: error: 'printDateTime' was not declared in this scope
    printDateTime(now);
    ^~~~~~~~~~~~~
    C:\Users\Guy\Desktop\Mem_Arduino\Outils_de_gestion\Pour_MiseALheure\MettreALheure\MiseALheureInterne_V3\MiseALheureInterne_V3.ino:222:11: note: suggested alternative: 'DateTime'
    printDateTime(now);
    ^~~~~~~~~~~~~
    DateTime
    MiseALheureInterne_V3:230:10: error: 'RTC' was not declared in this scope
    RTC.adjust ( DateTime ( 2021 , 10, 17 , 10 , 46 , 0 ) ) ; // cha�ne de mise � l'heure
    ^~~
    MiseALheureInterne_V3:234:11: error: 'printDateTime' was not declared in this scope
    printDateTime(now);
    ^~~~~~~~~~~~~
    C:\Users\Guy\Desktop\Mem_Arduino\Outils_de_gestion\Pour_MiseALheure\MettreALheure\MiseALheureInterne_V3\MiseALheureInterne_V3.ino:234:11: note: suggested alternative: 'DateTime'
    printDateTime(now);
    ^~~~~~~~~~~~~
    DateTime
    exit status 1
    'RTC' was not declared in this scope

  2. #2
    Membre �prouv�
    Homme Profil pro
    Retrait� de l'�lectronique analogique
    Inscrit en
    Avril 2021
    Messages
    50
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 78
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : Retrait� de l'�lectronique analogique

    Informations forums :
    Inscription : Avril 2021
    Messages : 50
    Par d�faut
    Bonjour,

    Il faut faire deux programmes :
    Un qui ne sert qu'� la mise � l'heure et qui n'est � ex�cuter qu'une seule fois.
    L'autre dans lequel tu suprimes la ligne qui met � l'heure et o� tu ne fais qu'exploiter l'heure de la RTC.

    En effet dans le premier programme l'heure qui est grav�e dans le fichier compil� est celle qui �tait valable au moment de la compilation et du tranfert dans le microcontroleur.
    Si tu continues avec ce premier programme la RTC sera intempestivement remise � l'heure de cette compilation � chaque d�marage du programme.

    Si tu as des d�rives (cas fr�quent avec la DS1307 -> une DS3231 est pr�f�rable) il faudra recompiler le premier programme avant de le verser dans le microcontroleur pour obtenir une heure juste.

  3. #3
    Membre confirm�
    Homme Profil pro
    retrait�
    Inscrit en
    D�cembre 2019
    Messages
    123
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : retrait�

    Informations forums :
    Inscription : D�cembre 2019
    Messages : 123
    Par d�faut
    Merci pour cette premi�re r�ponse.

    C'est ce que je fais encore.

    Pourtant, je ne comprends pas pourquoi dans un certain environnement, les instructions d'�criture passent (bien) et dans l'autre, ne passent pas et d�clenchent des erreurs.

    Bien entendu, mon projet n'est pas d'envoyer � chaque boucle, une s�quence de remise � l'heure.

    Cette s�quence sera pr�par�e (les arguments � lui passer) en m�moire et ne sera envoy�e qu'une fois, sur une action manuelle.

    Ensuite, le programme reprendra son cours habituel actuel.

    Je reste

  4. #4
    Membre confirm�
    Homme Profil pro
    retrait�
    Inscrit en
    D�cembre 2019
    Messages
    123
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : retrait�

    Informations forums :
    Inscription : D�cembre 2019
    Messages : 123
    Par d�faut Hourrah! C'est gagn� ...
    Bonjour � tous

    Quelques jours de silence pour remettre l'ouvrage sur le m�tier, et repartir de z�ro.

    D'abord pour d�busquer le "pi�ge" cach� (je dirais tapis ) qui emp�chait la compilation.

    Dans la d�claration de l'horloge

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    RTC_DS1307 rtc ;  // horloge RAM DS1307
    il a �t� choisi le symbole rtc minuscule alors qu'� l'usage dans une des fonctions, il �tait en majuscules.

    Bien entendu, le compilateur n'a pas laiss� passer.

    Ensuite, j'ai pu d�velopper une version simplifi�e d'un affichage r�duit pr�sentant l'heure de l'horloge telle qu'utilis�e dans mon application finale, ainsi qu'une ligne de pr�paration de l'ensemble des variables � fournir � la fonction

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
     rtc.adjust ( DateTime ( newYear , newMonth, newDay , newHour , newMinut , newSecond ) ) ; //  chaîne de mise à l'heure
    qui j'esp�re, modifiera mon affichage existant, puis continuera � se d�rouler.

    C'est cela qui fonctionne � la perfection.

    Le clavier est aussi celui de l'application, cinq touches qui sont + et - pour modifier les valeurs, gauche droite pour changer de valeur � modifier, et la touche de validation.

    Voil� le sketche ino:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    Qui semble bloquer
     
    Le croquis utilise 7844 octets (24%) de l'espace de stockage de programmes. Le maximum est de 32256 octets.
    Les variables globales utilisent 542 octets (26%) de mémoire dynamique, ce qui laisse 1506 octets pour les variables locales. Le maximum est de 2048 octets.
     
    Aurait-il une taille excédentaire ou est-ce un message qui "déborde"?
    J'ai le secret espoir de l'ajouter dans mon application, ce sera peut-�tre l'objet d'une future question.

    L�, c'est compliqu� parce que il me faudrait un "statut" nouveau que je ne peux obtenir qu'au moyen d'une entr�e suppl�mentaire, dont je ne dispose pas. Toutes les bornes d'ent�e/sortie sont utilis�es, et ce serait ballot de devoir passer � mega au lieu de nano pour ce seul motif.

    Peut-�tre qu'en cherchant bien ou plus simplement en n'utilisant plus le signal nuit de EDF qui m'arrive bien, mais que les trois d�cennies d'usage n'ont, au final, pas prouv� leur v�ritable int�r�t.

    Avant de "couper ce cordon", je pr�f�re chercher une solution autre.

    Merci encore pour vos aides qui m'ont fait passer en une ann�e, de l'�tat z�ro en mati�re d'arduino � une application vraiment utile.

  5. #5
    Membre confirm�
    Homme Profil pro
    retrait�
    Inscrit en
    D�cembre 2019
    Messages
    123
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : retrait�

    Informations forums :
    Inscription : D�cembre 2019
    Messages : 123
    Par d�faut
    Mon sketch ne passe pas

    Forbidden

    You don't have permission to access this resource.
    Apache/2.4.38 (Debian) Server at www.developpez.net Port 443
    Est-ce la taille du fichier ino qui coince?

  6. #6
    Membre confirm�
    Homme Profil pro
    retrait�
    Inscrit en
    D�cembre 2019
    Messages
    123
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : retrait�

    Informations forums :
    Inscription : D�cembre 2019
    Messages : 123
    Par d�faut
    Bonjour � tous

    Citation Envoy� par gienas Voir le message
    Mon sketch ne passe pas ...
    J'ai fait une tentative de le pr�senter en txt et en pi�ce jointe.

    Je suppose qu'il suffit de l'enregister, puis de modifier son extension en .ino

    Ensuite, le d�placer dans un dossier portant le non de MAH_de_zero_06_Forum pour qu'il puisse s'ouvrir au moyen de Arduino IDE.

    Ayant d�tect� une "particularit�" dans le fonctionnement de ma fonction clavier, je ne d�sesp�re pas de rajouter cette fonction de mise � l'heure dans mon programme principal, sans avoir besoin de l'ordinateur, ni de changer temporairement le programme.

    A suivre donc.
    Fichiers attach�s Fichiers attach�s

  7. #7
    Expert confirm�

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 897
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activit� : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 897
    Par d�faut
    Le clavier est aussi celui de l'application, cinq touches qui sont + et - pour modifier les valeurs, gauche droite pour changer de valeur � modifier, et la touche de validation.
    vous pouvez nous en dire plus sur ce "clavier"?
    dans le code vous avez
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      pinMode ( 9 , OUTPUT ) ; // les 4 sorties pour les relais
      pinMode ( 2 , OUTPUT ) ;
      pinMode ( 3 , OUTPUT ) ;
      pinMode ( 4 , OUTPUT ) ;
      pinMode ( 5 , INPUT ) ;
      pinMode ( 6 , INPUT ) ;
      pinMode ( 7 , INPUT ) ; // les 3 entrees clavier
      pinMode ( A0 , INPUT ) ; // les entrees bouton b0 2 seuls utilisés
      pinMode ( A1 , INPUT ) ;
    quel est le c�blage?

  8. #8
    Membre confirm�
    Homme Profil pro
    retrait�
    Inscrit en
    D�cembre 2019
    Messages
    123
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : retrait�

    Informations forums :
    Inscription : D�cembre 2019
    Messages : 123
    Par d�faut
    Citation Envoy� par Jay M Voir le message
    vous pouvez nous en dire plus sur ce "clavier"? ... quel est le c�blage?
    Je vois que le cogitateur qui sommeille en toi remonte sur le pont.

    Mon clavier est compos� en tout et pour tout de cinq touches, en r�alit� cinq interrupteurs.

    Ils ont tous un c�t� au +5V.

    Comme ils doivent g�n�rer trois bits ils sont "isol�s" par des diodes vers la r�sistance de pull down plac�e sur chacune des trois entr�es.

    Comme trois bits permettent de compter jusqu'� 7, alors que cinq valeurs sont utiles (chaque touche a une fonction unique), je m'aper�ois, en affichant l'�tat du clavier (la variable KB), que deux valeurs "extra" inutilis�es sont pr�sentes et ne servent � rien, puisque les seules valeurs "d�cod�es" utilis�es vont de 1 � 5, le 0 �tant le signe de pas de clavier.

    Les touches gauche et droite (5 et 2) donnent un 7 sur KB, qui est ignor�. Gauche + validation donnent 5 +1 = 6, mais il est "dangereux" d'utiliser la touche de validation qui sera utilis�e elle seule dans ma boucle de mise � l'heure pour valider (enregistrer l'heure pr�par�e) mais surtout sortir de cette boucle particuli�re et revenir au programme normal, dans lequel aucune des touches n'est utilis�e.

    Associ� au clavier, il y a un bouton inverseur � quatre positions qui sont

    1- fonctionnement normal: le programme agit sur les sortie relais et l'afficheur montre le contexte;

    2- programmation manuelle pour mettre en chauffe n'importe quel relais pour une dur�e r�glable. L�, le clavier sert � programmer et valider;

    3- programmation proprement dite qui, permet une � une, d'ajouter une s�quence hebdomadaire horodat�e, sur chaque sortie relais;

    4- v�rification de la programmation. �� marche en pratique mais c'est tr�s fastidieux.

    Comme en mode 1 le clavier ne sert � rien, je vais lancer une proc�dure parall�le, avec un affichage totalement autre, celui de ma mise � l'heure, dont je ne sortirai que par la touche 1 (validation) qui ram�nera � la boucle traditionnelle.

    En d�crivant, je d�couvre que je peux utiliser n'importe quelle touche clavier pour le faire, except� la 1 qui elle doit fonctionner exclusivement dans ma boucle de mise � l'heure, faute de quoi j'inscrirais dans la RTC une date/heure erronn�e, puisque uniquement celle du setup.

  9. #9
    Expert confirm�

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 897
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activit� : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 897
    Par d�faut
    Salut

    je n'ai pas compris , un sch�ma et une photo du truc seraient bien plus parlant. (5 interrupteurs, 3 pull down, ...)

    En pensant tout haut, si vous avez besoin de 5 fonctions '+' , '-', '→', '←' et 'validation' et que vous avez 5 boutons, pourquoi ne pas donner � chacun sa fonction?

  10. #10
    Membre confirm�
    Homme Profil pro
    retrait�
    Inscrit en
    D�cembre 2019
    Messages
    123
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : retrait�

    Informations forums :
    Inscription : D�cembre 2019
    Messages : 123
    Par d�faut
    Bonjour � tous

    Citation Envoy� par Jay M Voir le message
    ... je n'ai pas compris , un sch�ma et une photo du truc seraient bien plus parlant ...
    Tu as raison, je suis pareil. Je lies mieux les sch�mas. Comme il n'existait pas (encore), je viens de griffonner �a:

    Nom : ClavieBoutonArduino.png
Affichages : 1394
Taille : 473,7 Ko

    Citation Envoy� par Jay M Voir le message
    ... vous avez 5 boutons, pourquoi ne pas donner � chacun sa fonction?
    �conomie �conomie!

    Cinq boutons, cela fait cinq bits. Une fois cod� (BCD), trois suffisent.

    M�me "punition pour le bouton (des fonctions). J'ai quatre fonctions, donc quatre positions, qui tiennent sur deux bits.


    Question hors sujet, mais qui est celle de l'instant pr�sent.

    Je pensais �tre plus riche en composants hard, et disposer de trois cartes UNO. L'une est sur l'application et une sur la maquette totalement �quip�e mais sur plaque breadboard, que je pr�f�re ne pas d�shabiller de suite pour pouvoir maniper s'il s'av�re qu'il faille remettre le tapis sur le m�tier.

    Je n'ai que deux carte MEGA et un afficheur, que je voudrais pr�parer pour une future application non encore d�finie.

    Par paresse, je voulais r�utiliser tout le sketch, pour ne pas avoir � red�velopper des routines d�j� cod�es.

    Je t�l�verse mon sketch dans le MEGA, o� je n'ai que deux fils � brancher sur l'afficheur (le I2C)

    L'op�ration ne "fonctionne pas": l'afficheur reste �teint alors que si je l'essaye sur la maquette, il fonctionne bien.

    Y a-t-il quelque chose � annoncer/programmer pour que mes routines UNO fonctionnent sur MEGA?

    Je d�clare bien dans les croquis et les outils, que j'ai affaire � MEGA, cela semble se t�l�charger, mais sans affichage.

    J'utilise bien les bornes SDA/SCL de MEGA au lieu des A4/A5 de UNO.

  11. #11
    Expert confirm�

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 897
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activit� : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 897
    Par d�faut
    je ne vois pas trop l'�conomie...

    Vous avez plein de broches sur votre Arduino Uno ou MEGA, je suppose qu'elles ne sont pas toutes utilis�es et en plus �a vous fait utiliser des diodes et des r�sistances... Perso je serais plus parti sur des interrupteurs reli�s � GND d'un c�t� et aux broches en INPUT_PULLUP de l'autre. Pas de r�sistances, pas de diode, lecture directe dans le code sans faire des exercices sur les conditions conjointes...
    Nom : inputpullup.png
Affichages : 1356
Taille : 27,4 Ko

    a priori si vous n'avez pas invers� les deux broches I2C et que vous n'utilisez pas les ports pour lire les pins �a devrait aller... (postez le code si vous voulez qu'on jette un oeil)

  12. #12
    Membre confirm�
    Homme Profil pro
    retrait�
    Inscrit en
    D�cembre 2019
    Messages
    123
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : retrait�

    Informations forums :
    Inscription : D�cembre 2019
    Messages : 123
    Par d�faut
    Bonsoir � tous

    Citation Envoy� par Jay M Voir le message
    je ne vois pas trop l'�conomie...

    Vous avez plein de broches sur votre Arduino Uno ou MEGA, je suppose qu'elles ne sont pas toutes utilis�es ...
    Quand je parle d'�conomie, c'est d'�conomies de bornes E/S. Sur ma maquette, elles sont toutes utilis�es, et c'est ce qui m'a amen� � devoir chercher les �conomies pour en n�cessiter un peu moins.

    Je n'exclus cependant pas de faire l'essai, ult�rieurement, en faisant une croix sur certaines sorties de tests, qui me permettent de visualiser certaines actions au moyen d'allumage de LED, non utiles dans la version d�finitive.

    Puisque j'ai abouti � la question de la discussion, je la consid�re r�solue.

  13. #13
    Expert confirm�

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 897
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activit� : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 897
    Par d�faut
    Citation Envoy� par gienas Voir le message
    Quand je parle d'�conomie, c'est d'�conomies de bornes E/S.
    Ah OK - effectivement alors c'est une bonne raison d'agr�ger les entr�es

  14. #14
    Mod�rateur

    Homme Profil pro
    Ing�nieur �lectricien
    Inscrit en
    Septembre 2008
    Messages
    1 282
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Ing�nieur �lectricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 282
    Par d�faut
    Pour 9 interrupteurs, il faut faire un vrai clavier matriciel 3x3 utilisable avec 6 I/O.
    Sans diode, il y a discrimination d'appuis multiple dans une bonne partie des cas. Avec un petit traitement additionnel il est possible de savoir quand il y a rat� de lecture (trop de switch press�s).
    Avec diode en s�rie sur les interrupteurs, c'est possible d'avoir une discrimination totale des switch press�s en simultan�s.

    Et pas besoin de r�sistance externe, les pull-up interne de l'Arduino sont bien suffisantes.

    Delias

  15. #15
    Membre confirm�
    Homme Profil pro
    retrait�
    Inscrit en
    D�cembre 2019
    Messages
    123
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : retrait�

    Informations forums :
    Inscription : D�cembre 2019
    Messages : 123
    Par d�faut
    Bonjour � tous

    Citation Envoy� par Delias Voir le message
    Pour 9 interrupteurs, il faut faire un vrai clavier matriciel 3x3 utilisable avec 6 I/O.
    Sans diode, il y a discrimination d'appuis multiple dans une bonne partie des cas ...
    La r�alit�, c'est qu'il n'y a pas 9 interrupteurs (formant clavier), mais deux entit�s distinctes:

    1- le "clavier" proprement dit comportant cinq touches, chacune ayant une fonction. Depuis la derni�re modification apport�e, une des combinaisons de deux touches est utilis�e (et d�tect�e) pour entrer dans la boucle de remise � l'heure;

    2- quatre entr�es logiques provenant d'un inverseur rotatif � quatre positions, qui informe l'automatisme sur la fonction s�lectionn�e. Pour chacune de ces fonctions (donc position), le clavier cinq touches est actif et utilis�, mais, bien entendu, les actions command�es agissent sur des variables diff�rentes.

    Le clavier fait + ou - (mont�e ou descente), gauche et droite (visible sur l'afficheur) et validation.

    L'inverseur rotatif choisit la marche normale (position de repos ou par d�faut), le r�glage manuel, la programmation des s�quences, le contr�le des s�quences enregistr�es.

    Il est donc impossible de confier l'ensemble de ces entr�es � un clavier unique.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 07/10/2011, 10h21
  2. Comment faire pour supprimer dans une cha�ne de caractere
    Par Thierry69CH dans le forum VBA Access
    R�ponses: 2
    Dernier message: 08/07/2010, 20h23
  3. [MySQL] Php, je ne comprends pas comment faire pour introduire des donn�es dans une table
    Par Liondd dans le forum PHP & Base de donn�es
    R�ponses: 23
    Dernier message: 14/12/2006, 12h53
  4. [VBA-E]Comment faire pour écrire dans une page excel existante ?
    Par pauletta22 dans le forum Macros et VBA Excel
    R�ponses: 3
    Dernier message: 24/05/2006, 13h54
  5. Comment faire pour aligner dans un formulaire?
    Par Ludo75 dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 5
    Dernier message: 06/03/2006, 09h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo