Тёмный

[Arduino] Keypad / clavier 16 boutons avec Arduino. (1/2) 

Comprendre l'électronique
Подписаться 5 тыс.
Просмотров 34 тыс.
50% 1

Dans cette première vidéo sur le clavier 16 boutons avec Arduino, on voit comment il fonctionne et comment le connecter à un Arduino uno.
On va également faire un programme permettant de connaitre les boutons pressés.

Опубликовано:

 

13 авг 2019

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 34   
3 года назад
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 etat_colonne_0 = HIGH; int etat_colonne_1 = HIGH; int etat_colonne_2 = HIGH; int etat_colonne_3 = HIGH; // On met la ligne 0 à 0V et les autres au 5V digitalWrite(ligne_0, LOW); digitalWrite(ligne_1, HIGH); digitalWrite(ligne_2, HIGH); digitalWrite(ligne_3, HIGH); // On recupère l'état des colonnes etat_colonne_0 = digitalRead(colonne_0); etat_colonne_1 = digitalRead(colonne_1); etat_colonne_2 = digitalRead(colonne_2); etat_colonne_3 = digitalRead(colonne_3); // Si on a la colonne 0 à LOW, c'est que le bouton 1 est pressé if(etat_colonne_0 == LOW) { envoie_bouton_presse_sur_port_serie('1'); } // Si on a la colonne 1 à LOW, c'est que le bouton 2 est pressé if(etat_colonne_1 == LOW) { envoie_bouton_presse_sur_port_serie('2'); } // Si on a la colonne 2 à LOW, c'est que le bouton 3 est pressé if(etat_colonne_2 == LOW) { envoie_bouton_presse_sur_port_serie('3'); } // Si on a la colonne 3 à LOW, c'est que le bouton A est pressé if(etat_colonne_3 == LOW) { envoie_bouton_presse_sur_port_serie('A'); } // On met la ligne 1 à 0V et les autres au 5V digitalWrite(ligne_0, HIGH); digitalWrite(ligne_1, LOW); digitalWrite(ligne_2, HIGH); digitalWrite(ligne_3, HIGH); // On recupère l'état des colonnes etat_colonne_0 = digitalRead(colonne_0); etat_colonne_1 = digitalRead(colonne_1); etat_colonne_2 = digitalRead(colonne_2); etat_colonne_3 = digitalRead(colonne_3); // Si on a la colonne 0 à LOW, c'est que le bouton 4 est pressé if(etat_colonne_0 == LOW) { envoie_bouton_presse_sur_port_serie('4'); } // Si on a la colonne 1 à LOW, c'est que le bouton 5 est pressé if(etat_colonne_1 == LOW) { envoie_bouton_presse_sur_port_serie('5'); } // Si on a la colonne 2 à LOW, c'est que le bouton 6 est pressé if(etat_colonne_2 == LOW) { envoie_bouton_presse_sur_port_serie('6'); } // Si on a la colonne 3 à LOW, c'est que le bouton B est pressé if(etat_colonne_3 == LOW) { envoie_bouton_presse_sur_port_serie('B'); } // On met la ligne 2 à 0V et les autres au 5V digitalWrite(ligne_0, HIGH); digitalWrite(ligne_1, HIGH); digitalWrite(ligne_2, LOW); digitalWrite(ligne_3, HIGH); // On recupère l'état des colonnes etat_colonne_0 = digitalRead(colonne_0); etat_colonne_1 = digitalRead(colonne_1); etat_colonne_2 = digitalRead(colonne_2); etat_colonne_3 = digitalRead(colonne_3); // Si on a la colonne 0 à LOW, c'est que le bouton 7 est pressé if(etat_colonne_0 == LOW) { envoie_bouton_presse_sur_port_serie('7'); } // Si on a la colonne 1 à LOW, c'est que le bouton 8 est pressé if(etat_colonne_1 == LOW) { envoie_bouton_presse_sur_port_serie('8'); } // Si on a la colonne 2 à LOW, c'est que le bouton 9 est pressé if(etat_colonne_2 == LOW) { envoie_bouton_presse_sur_port_serie('9'); } // Si on a la colonne 3 à LOW, c'est que le bouton C est pressé if(etat_colonne_3 == LOW) { envoie_bouton_presse_sur_port_serie('C'); } // On met la ligne 3 à 0V et les autres au 5V digitalWrite(ligne_0, HIGH); digitalWrite(ligne_1, HIGH); digitalWrite(ligne_2, HIGH); digitalWrite(ligne_3, LOW); // On recupère l'état des colonnes etat_colonne_0 = digitalRead(colonne_0); etat_colonne_1 = digitalRead(colonne_1); etat_colonne_2 = digitalRead(colonne_2); etat_colonne_3 = digitalRead(colonne_3); // Si on a la colonne 0 à LOW, c'est que le bouton * est pressé if(etat_colonne_0 == LOW) { envoie_bouton_presse_sur_port_serie('*'); } // Si on a la colonne 1 à LOW, c'est que le bouton 0 est pressé if(etat_colonne_1 == LOW) { envoie_bouton_presse_sur_port_serie('0'); } // Si on a la colonne 2 à LOW, c'est que le bouton # est pressé if(etat_colonne_2 == LOW) { envoie_bouton_presse_sur_port_serie('#'); } // Si on a la colonne 3 à LOW, c'est que le bouton D est pressé if(etat_colonne_3 == LOW) { envoie_bouton_presse_sur_port_serie('D'); } } void envoie_bouton_presse_sur_port_serie(char bouton_caractere) { Serial.print("Le bouton "); Serial.print(bouton_caractere); Serial.println(" est pressé"); Serial.println(""); }
@akamel393
@akamel393 2 года назад
Interessant
@Edgardal2008
@Edgardal2008 2 года назад
je suggère un code de ce style pour t'éviter des lignes : int lignes[4] = {22, 23, 24, 25}; int colonnes[4] = {26, 27, 28, 29}; char keypad[4][4] { '1', '2', '3', 'A', '4', '5', '6', 'B', '7', '8', '9', 'C', '*', '0', '#', 'D', }; int tempsact; int tempsdep; void setup() { // put your setup code here, to run once: for (int i = 0; i
@benoitroche820
@benoitroche820 Год назад
@@Edgardal2008 , bonjour j'ai un pb, avec 3 colonnes et 4 lignes , votre codage nickel sauf pour la ligne 1 'S', 'key_left_ctrl_A', 'key_left_shift_A', ne fonctionne pas alors que 'L', 'key_left_ctrl_T', 'key_left_shift_T', 'key_left_alt_R', 'key_left_ctrl_B', 'key_left_shift_B', 'key_left_shift_L', 'key_left_ctrl_E', 'key_left_shift_E', nickel merci d'avance pour votre retour
@nicolasg7391
@nicolasg7391 4 года назад
Excellente vidéo, c'est très clair, aucune digression, c'est rapide. Merci beaucoup !
@pascal94120ful
@pascal94120ful Год назад
Un très très grand merci. Depuis le temps que je cherchais. Tout est clair et ça fonctionne du premier coup
@kouassihervekoffi3827
@kouassihervekoffi3827 3 года назад
merci pour l'explication simple et claire .
@nicolethugnet3636
@nicolethugnet3636 5 лет назад
je trouve les explications très claire
@gaelsortino8901
@gaelsortino8901 4 года назад
Merci pour ces explications SIMPLES, CLAIRES, COMPLETES ET PRECISES !!! :-) :-) :-)
@user-bx5zi9mn1g
@user-bx5zi9mn1g 7 месяцев назад
Merciii beaucoup ! c'est trés bien expliqué .. Au revoir et à bientôt ..
@allouette401
@allouette401 4 года назад
Enfin ! vous avez répondu de belle façon à mon interrogation. J'ai passé des heures et des heures pour trouver une explication claire et surtout complète. Je vais donc pouvoir m'attaquer à mon projet de boîte de boutons pour gaming avec beaucoup plus d'assurance. La boîte que j'envisage aura 67 boutons, 12 LED 3 mm, un potentiomètre rotatif, un potentiomètre à glissière, un joysticks 4 axes et un thumb joysticks et une mini-switch pour changer la fonctionnalité du thumb joysticks. Seuls les boutons et LED seront dans une configuration matrix 8 lignes x 10 colonnes. Tous les autres composants seront sur des GPIO distincts. Je vais utiliser le micro-processeur TeesyMD 2.0. La dimension du panneau sera de 320 x 250 mm.
@halissothakadiri3347
@halissothakadiri3347 3 года назад
Moi je veux le code pour effacer le dernier chiffre avec ce même programme
@christmorg3599
@christmorg3599 2 года назад
bonjour, je suis entrain de demarrer le meme genre de projet, et n ayant aucune base , je recherche une aide pour adapter cette base au projet
@allouette401
@allouette401 2 года назад
@@christmorg3599 Je ne peux pas poursuivre mon projet. Suite à un problème oculaire, j'ai dû subir une chirurgie et la conséquence a été de me faire perdre ma capacité de voir en trois dimension. Je ne peux plus souder et voir les tous petits connecteurs sauf si j'utiliser une très bonne loupe mais très peu pratique. Si vous voulez réaliser ce projet, faites une recherche comme " Buttons box" or How to build a button box. Dans les vidéos que j'ai trouvé, ils expliquent bien le montage et donnent aussi le code sous-jacent. Il rest à modifier ce code pour l'adapter à votre projet. C'est dommange parce que tout était prêt pour la réalisation. Mon schéma de la disposition des boutons, le plan de perçage des trous et tous le matériel requis, fils, boutons, joysticks, potentiomètres etc. Je vous souhaite bonne chance dans la réalisation de votre projet.
@mohamedelouafi3536
@mohamedelouafi3536 4 года назад
good job
@maxirito36
@maxirito36 4 года назад
Bonjour Comment faire un branchement clavier et ecran LCD sur l'arduino? J'ai regardé vos deux vidéos et les branchement se chavocherais ou alors on peut les brancher ailleurs?
@benoitroche820
@benoitroche820 Год назад
Bonjour, super vidéo merci très clair, pour dire que c'est une touche raccourci clavier, par exemple " CTRL + L" ou "SHIFT +A" quelle est le code svp
@technophile01
@technophile01 3 года назад
Salut. J ai vu des vidéos où l on branche directement le keypad (sans résistances) à l'arduino..est ce correct ? merci
@magico77447
@magico77447 2 года назад
oui c’est possible en programmant larduino pour envoyer le courant moins fort sa demande une programmation supplémentaire mais à ne pas faire sans
@daviddenamur
@daviddenamur 4 года назад
bonjour, tres bonne vidéo. par contre juste une petite remarque on ne doit pas forcement avoir 2 fils par bouton ils peut tres bien avoir un fils commun. donc un fils en plus du nombre de boutons mais il est vrai qu'en matrice ça n'a pas son pareil
3 года назад
Un commentaire et un pouce bleu ?
@christmorg3599
@christmorg3599 2 года назад
bonjour, merci pour votre tuto, j essai d'adapter ce code à un control panel 56 boutons, y a t il possibilité de limiter le temps de pression d un bouton, car j ai des poussoirs momentanés, mais aussi des poussoirs bloquants
@Edgardal2008
@Edgardal2008 2 года назад
@@christmorg3599 oui : hors void : int tempsactuel; int tempsdepart; void setup : tempsdepart=millis(); au début de la void loop : tempsactuel=millis(); dans la boucle de test : if (digitalRead(nomdubouton)==LOW) { if (tempsactuel-tempsdepart=tempsvouluenmillisecondes) { actionsvoulues; tempsdep=tempsact; } } avec ça tout fonctionne.
@fredericdulieu3016
@fredericdulieu3016 4 года назад
c génial mais pourais tu mettre le code Arduino dans la description
@gabidut76
@gabidut76 4 года назад
bonjour, je me demande pourquoi sa me met sa : 'colonne_0' was not declared in this scope
@tompinet6447
@tompinet6447 4 года назад
J'ai le même probléme
@Edgardal2008
@Edgardal2008 2 года назад
utilise int
@cesargasnier7026
@cesargasnier7026 2 года назад
Bonjour, quelle est la valeur des resistances s'il vous plait
@Edgardal2008
@Edgardal2008 2 года назад
100 ohm ça marche
@franklintoya6932
@franklintoya6932 3 года назад
C'est possible d'avoir directement le programme
3 года назад
Je viens de le mettre dans le commentaire épinglé.
@rooks2369
@rooks2369 3 года назад
faut il une librairie?
@Edgardal2008
@Edgardal2008 2 года назад
non
Далее
🎙ПЕСНИ ВЖИВУЮ от КВАШЕНОЙ🌇
3:16:26
Using Keypads with Arduino - Build an Electronic Lock
28:17
Using a ServoMotor | ARDUINO #17
5:47
Просмотров 34 тыс.
Oublie Arduino et utilise ça !👀
9:21
Просмотров 104 тыс.
Using LCD Displays with Arduino
46:23
Просмотров 1,7 млн
Comprendre le fonctionnement d'une matrice à LEDS.
8:33
Comment utiliser un ÉCRAN TACTILE avec un ARDUINO
5:10