Bonjour messieurs, mesdames !
Je viens consulter votre grand savoir pour un projet que je mène : j'ai pour projet de détecter la présence d'une pièce sur un échiquier que je construit spécialement.
Le principe, résumé simplement, est le suivant :
Je place 64 résistances en lignes de 8 (+1) comme ceci :
|-[a]--[b]--[c]--[d]--[e]--[f]--[g]--[h]----[X]-|
|-[a]--[b]--[c]--[d]--[e]--[f]--[g]--[h]----[X]-|
|-[a]--[b]--[c]--[d]--[e]--[f]--[g]--[h]----[X]-|
|-[a]--[b]--[c]--[d]--[e]--[f]--[g]--[h]----[X]-|
|-[a]--[b]--[c]--[d]--[e]--[f]--[g]--[h]----[X]-|
|-[a]--[b]--[c]--[d]--[e]--[f]--[g]--[h]----[X]-|
|-[a]--[b]--[c]--[d]--[e]--[f]--[g]--[h]----[X]-|
|-[a]--[b]--[c]--[d]--[e]--[f]--[g]--[h]----[X]-|
| Masse
5V
Chaque ligne est relié à la borne 5V de l'Arduino, et l'extrémité aussi. De plus, il y a des transistors qui bloquent/autorisent le passage du courant dans chaque ligne de résistances.
Ainsi, l'Arduino va mesurer la tension aux bornes de la résistance "X" en fin de ligne LIGNE PAR LIGNE. Et par simple application de la formule du pont diviseur, on connaît la résistance équivalente des résistances A à H.
Ensuite, chaque pièce possède deux petits bouts de fer qui court-circuitent la résistance placée en dessous. Par exemple, s'il y a une pièce dans la première ligne au-dessus de R(e), R(e) peut être remplacée par un fil de résistance 0, donc la résistance Req change, le pont diviseur aussi, et donc la tension aux bornes de R(X). On peut donc ainsi savoir quelle(s) résistance(s) a/ont été circuitée(s).
Au niveau code Arduino, tout va bien, le souci c'est le dimensionnement des résistances. Si je calcule bien, il y a ~8! (~40320) possibilités de pièces placées ou non, et je ne sais pas quelles résistances choisir... Il faut que quand j'en court-circuite une seul, le changement de tension soit détectable, comme quand je les court-circuite toutes ! Et je ne sais pas comment m'y prendre pour calculer les valeurs de ces résistances.
Je ne demande pas les valeurs, juste si vous avez des idées sur la façon dont je dois m'y prendre pour les calculer
Merci à tous !