Étape 3: échelle de diviseur de tension
Dans l’image ci-dessous, j’ai connecté deux blocs de commutateurs. Le bloc plus haut comporte deux interrupteurs, et le bloc plus bas a cinq commutateurs. Vous pouvez connecter votre bascule distinct, momentanée, tactile, interrupteurs etc. de la même manière. La chose importante à noter est la résistance de votre commutateur connecté à.
Dans mon exemple, j’ai presque doublé la résistance de la résistance suivante pour créer un espace de tension qui est facile à mesurer et à pas confondre l’interrupteur avant ou après. Si vous n’avez pas remarqué avant, revoir et me rends compte que nous sommes de retour à notre vieil ami le diviseur de tension résistif. La première résistance, le 10 k ohms, est reliée au 5V et la 2ème résistance--la résistance qui va déterminer Vout pour goupille de SWITCH_ADC , est reliée à chaque interrupteur et par conséquent, chaque commutateur est associée à une tension de Vout particulière qui peut être lu de la goupille de ADC connectée à SWITCH_ADC.
Ensuite, déterminez le Vout attendu de chaque commutateur comme suit :
Vout = Vin * (R2 / (R1 + R2))
pour passer un :
Vout = 5V * (500 / (10000 + 500)) = 5 * 0,048 = mV 0.24V ou 240
pour commuter deux :
Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0,18 = 0.9V ou ~ 900mV
et ainsi de suite...
N’hésitez pas à substituer à vos propres valeurs R2 si vous avez seulement certaines résistances à portée de main... L’important ici est de garder un écart assez important dans la tension entre les commutateurs afin que la marge d’erreur sur l’ADC ne vous mettre dans la tension attendue d’un commutateur voisin. J’ai trouvé la meilleure chose à faire est de construire l’échelle diviseur mis un multimètre/voltmètre sur l’axe de l’ADC et appuyez sur chaque broche et voir ce que vous obtenez des valeurs. Ils devraient être assez spots jusqu'à ce que vous calculez.
Une fois vous avez toutes les valeurs de tension attendue de chaque commutateur à l’aide d’une résistance particulière, alors vous pouvez avoir votre MCU lire la goupille de l’ADC et de comparer qui, à vos valeurs connues pour déterminer qui switche a été enfoncée. Par exemple, que vous avez enregistré une routine d’interruption du service qui sera appelée chaque fois qu’un changement détecté sur l’axe de l’ADC. À l’intérieur de l’ISR, vous pourriez lire l’ADC et comparer cette valeur à votre table de commutateur. Si vous utilisez une valeur de 8-bit ADC, votre tension sera convertie en un nombre entre 0 et 255 qui correspond à une tension entre 0V et 5V. Cela suppose que vous avez votre ADC configuré de cette manière.