[Arduino] Keypad / clavier 16 boutons avec Arduino. (2/2) - Protéger un message par un code secret.

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 พ.ย. 2024
  • Seconde vidéo sur le clavier 16 boutons avec Arduino.
    On va dans un premier temps créer les fonctions permettant de récupérer le bouton qui a été appuyé. Ensuite, on fera un programme permettant d'afficher un message secret si le code est correct.
    Le message d'erreur :
    Vous n'avez pas dit le mot magique ( • Vous n'avez pas dit le... )
    Le message secret :
    ,
    , ;:._.-`''.
    ;.;'.;` _ `.
    ',;` ( \ ,`-.
    `:.`, (_/ ;\ `-.
    ';: / `. `-._
    `;.;' `-,/ . `-.
    ';;' _ `^` `.
    ';; ,'-' `--._ ;
    ': `;; ,; `. ':`,,.__,,_ /
    `;`:;`;:` ,; '. ;, ';';':';;`
    .,; ' '-._ `':.;
    .:; ` '._ `';;,
    ;:` ` :'`' ',__.)
    `;:;:.,...;'`'
    ';. '`'::'`'' .'`'
    ,' `';;:,..::;`'`'
    , .;` `'::''`
    ,`;`.
    • Jurassic Park helicopt...

ความคิดเห็น • 28

  •  4 ปีที่แล้ว +12

    Le code :
    #define ligne_0 2
    #define ligne_1 3
    #define ligne_2 4
    #define ligne_3 5
    #define colonne_0 8
    #define colonne_1 9
    #define colonne_2 10
    #define colonne_3 11
    void setup() {
    // put your setup code here, to run once:
    // Initialise le port série
    Serial.begin(9600);
    // On configure les lignes en sorties
    pinMode(ligne_0, OUTPUT);
    pinMode(ligne_1, OUTPUT);
    pinMode(ligne_2, OUTPUT);
    pinMode(ligne_3, OUTPUT);
    // On configure les colonnes en entrées avec pull-up
    pinMode(colonne_0, INPUT_PULLUP);
    pinMode(colonne_1, INPUT_PULLUP);
    pinMode(colonne_2, INPUT_PULLUP);
    pinMode(colonne_3, INPUT_PULLUP);
    }
    void loop() {
    // put your main code here, to run repeatedly:
    int taille_du_code_secret = 4;
    char code_secret[taille_du_code_secret] = {'D', 'A', '0', '4'};
    char code_tape[taille_du_code_secret] = {0};
    for(int nbr_caracteres_tapes = 0 ; nbr_caracteres_tapes < taille_du_code_secret ; nbr_caracteres_tapes++ ) {
    code_tape[nbr_caracteres_tapes] = bouton_appuye_et_relache();
    Serial.print("*");
    }
    boolean code_juste = true;
    for(int index=0; index < taille_du_code_secret; index++) {
    // Si on a pas le même caractère à l'index
    if(code_secret[index] != code_tape[index]) {
    code_juste = false;
    break;
    }
    }
    // Si le code est juste
    if(code_juste == true) {
    Serial.print("
    ");
    Serial.println("Le message secret est :");
    Serial.print("
    ");
    affiche_image_secrete();
    Serial.print("
    ");
    }
    // sinon
    else {
    Serial.print("
    ");
    Serial.println("Vous n'avez pas dit le mot magique (th-cam.com/video/BAHtStfZZWg/w-d-xo.html)");
    Serial.print("
    ");
    }

    }
    char bouton_appuye_et_relache() {
    char bouton = NULL;
    // On attend l'appui sur un bouton
    do {
    bouton = bouton_presse();
    } while(bouton == NULL);
    delay(100);
    // On attend que l'utilisateur relache le bouton
    while(bouton_presse() != NULL);
    delay(100);
    // On retourne le bouton qui a été pressé
    return bouton;
    }
    char bouton_presse() {
    const char boutons[4][4] = {'1','2','3','A',
    '4','5','6','B',
    '7','8','9','C',
    '*','0','#','D'};
    for(int ligne=0;ligne

    • @majortranzit5587
      @majortranzit5587 3 ปีที่แล้ว

      stp

    • @bmaxou47
      @bmaxou47 2 ปีที่แล้ว

      fonctionne a moitié , 7,8,9,C et *,0,#,D ne fonctionne pas... peut tu m'aider?

  • @bobdoritique7347
    @bobdoritique7347 10 หลายเดือนก่อน

    Merci pour cette vidéo. Très instructif!

  • @fahdalmaghribi
    @fahdalmaghribi 3 ปีที่แล้ว

    simple et efficace ! Rarement vu une video aussi clair ! Merci

  • @faizamecheddal6086
    @faizamecheddal6086 4 ปีที่แล้ว +1

    C super bien expliqué , plus clair que ça tu meurs hhhh merci bcp, on attend tjrs d'avantage de vidéo sur arduino

  • @espritcomplexe
    @espritcomplexe 10 หลายเดือนก่อน

    ouuaaaais trooop bieeeen !!!!!! geniaaaaal

  • @moussarahma5880
    @moussarahma5880 5 ปีที่แล้ว

    tres bonne explication ! continu tjr avec d'autre tuto. comme un clavier avec un esp32

  • @mauricebernard7250
    @mauricebernard7250 ปีที่แล้ว

    Comment puis-je récupérer le code pour utiliser le clavier 16 touches. Merci d’avance.

  • @Codauxy
    @Codauxy 2 ปีที่แล้ว

    Merci sa aide

  • @matthieuminaud6275
    @matthieuminaud6275 2 ปีที่แล้ว

    C'EST SUPER

  • @lauregayet2389
    @lauregayet2389 4 ปีที่แล้ว +1

    Très bonnes vidéos! je débute en codage et ça aide énormément! Est-ce possible de nous donner le code final?

    •  4 ปีที่แล้ว +1

      Je viens de le mettre dans le commentaire épinglé.

  • @jimsevellec8546
    @jimsevellec8546 4 ปีที่แล้ว

    Bonjour et merci pour ces explications plutôt clair pour un débutant comme moi.
    J'aurais cependant une question, je souhaiterais que lorsque le code est tapé il s'affiche à l'écran. Car vous proposez des "*" mais je voudrais que les personnes puissent voir ce qu'ils tapent.
    Pourriez-vous m'aider?
    Merci

    • @nicolasdemeeus5488
      @nicolasdemeeus5488 3 ปีที่แล้ว +1

      Bonjour, je réponds un peu tard à votre message mais peut-être que ma réponse vous aidera tout de même.
      Il suffit de remplacer "Serial.print("*");" par "Serial.print(code_tape[nbr_caracteres_tapes]);" dans la boucle for.
      Bien à vous, Nicolas

  • @matthieuminaud6275
    @matthieuminaud6275 2 ปีที่แล้ว

    BRAVO

  • @franklintoya6932
    @franklintoya6932 4 ปีที่แล้ว

    peut tu m aider stp," lorsque je change mon mot de passe je voudrais recevoir un message suivant qui me demande de le confirmer " comment doit je faire

  • @solarock9699
    @solarock9699 4 ปีที่แล้ว

    Pour une raison que j'ignore, je n'ai pas de retour à la ligne dans la fenêtre "moniteur série". j'ai donc ajouté un retour chariot "
    " à cette ligne et tout va bien!
    Serial.print(" est pressé
    ");
    je précise que j'ai bien sélectionné "les deux, NL et CR" au bas de ma fenêtre série.
    Merci pour cette vidéo super qui est trop peu vue! (256 en ce moment)

    • @jeromeviale4111
      @jeromeviale4111 4 ปีที่แล้ว

      il faut ecrire la commande "println" pour passer a la ligne

    • @solarock9699
      @solarock9699 4 ปีที่แล้ว

      ​@@jeromeviale4111 Merci Jérôme!

  •  3 ปีที่แล้ว +2

    Un commentaire et un pouce bleu ?

    • @kevintalahfo2877
      @kevintalahfo2877 3 ปีที่แล้ว

      Comment afficher ça sur un écran LCD ?

    • @drz_exzot645
      @drz_exzot645 3 ปีที่แล้ว

      ​@@kevintalahfo2877 Si ça t'intéresse je peux t'envoyer mon code que j'ai modifié avec deux led (verte et rouge ) et un écran LCD avec un module I2C

    • @drz_exzot645
      @drz_exzot645 3 ปีที่แล้ว

      Super vidéo, très bien expliqué et clair, écrire le code et le commenté en même temps c'est vraiment un super moyen d'apprendre et de comprendre rapidement ! Félicitation ! J'ai pu modifié ton code pour y intégrer un écran LCD et bientôt un module Wifi pour un contrôle de lumière. En revanche j'ai un léger soucis sur ma variable "char code_secret[taille_du_code_secret] = {'D','A','0','4'}; " tout fonctionnait normalement mais lorsque j'ai voulu changer le code secret une erreur "variable-sized object 'code_secret' may not be initialized " s'affiche et je n'arrive pas à la résoudre puisque même avec des Crt + Z pour revenir au même code ça ne fonctionne pas. Si tu as le temps, merci de ton aide ;-)

    • @drz_exzot645
      @drz_exzot645 3 ปีที่แล้ว

      Finalement problème résolu, sur une carte Arduino Uno, le code fonctionne très bien mais sur des ESP ou NodeMCU, le compilateur veut une constante pour son tableau, il faut alors rajouter un "const" au "int taille_du_code_secret = 4;"

  • @franklintoya6932
    @franklintoya6932 4 ปีที่แล้ว

    Peut on avoir le programme en entier

    •  4 ปีที่แล้ว

      Je viens de le mettre dans le commentaire épinglé.

  • @sellamisamir2341
    @sellamisamir2341 2 ปีที่แล้ว

    svp code texte