Bonjour,
Je débute en arduino, et j'aimerais augmenter le nombre de boutons poussoirs sur l'arduino en utilisant le même nombre d'entrées/sorties sur la carte, en utilisant les transistors NPN.
J'ai fait un petit montage test avec 2x4 boutons où chaque rangée de 4 boutons est pilotée par un transistor. J'arrive sans problème a recupere l'état des boutons, même en appuyant simultanément, sauf dans le cas où j'appuie sur deux boutons reliés à la même sortie de l'arduino, et que j'appui sur un autre bouton.
Si j'appuie sur 1 et 5, et aussi sur 3 par exemple, l'arduino m'affichera sur le Serial Monitor que les boutons 1, 5 et 3 sont appuyés, mais aussi le 7 relié à la même sortie que le 3, sans que j'appuie dessus. J'ai fait plusieurs tests dans le code, dans le montage, des recherches sur le web, en essayant de comprendre qu'est ce qui n'allait pas, sans trouver.
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 | char donne[8]; void setup() { Serial.begin(9600); for (int i=4; i<7; i++) pinMode(i, INPUT_PULLUP); for (int i=0; i<8; i++) donne[i]='0'; pinMode(3, OUTPUT); pinMode(2, OUTPUT); digitalWrite(3, LOW); digitalWrite(2,HIGH); } void loop() { for (int i=0; i<8; i++) donne[i]='0'; if (digitalRead(4)==false) donne[0]='1'; if (digitalRead(5)==false) donne[1]='1'; if (digitalRead(6)==false) donne[2]='1'; if (digitalRead(7)==false) donne[3]='1'; digitalWrite(2,LOW); digitalWrite(3, HIGH); if (digitalRead(4)==false) donne[4]='1'; if (digitalRead(5)==false) donne[5]='1'; if (digitalRead(6)==false) donne[6]='1'; if (digitalRead(7)==false) donne[7]='1'; digitalWrite(3, LOW); digitalWrite(2,HIGH); Serial.println(donne); } |
Voila le code arduino aussi.
J'espère avoir été clair, et désolé pour les éventuelles erreurs de code/montage/d'orthographes.
Je vous remercie pour l'aide que vous pourriez m'apporter!