Étape 1: 8 bit DACs et vs séries parallèle
Le TLC7528 est un type numérique au convertisseur d’analogue (DAC). Il prend des données numériques (nombres compris entre 0 et 255) et une tension comprise entre 0 et quelle que soit la tension, vous fournissez la puce avec. La tension de sortie de la DAC peut être calculée selon l’équation suivante :
tension de 8 bit DAC de sortie = (tension d’alimentation) * (données d’entrée numériques) / 255
Dans ce Instructable, je vais être alimenté le DAC à partir de l’Arduino intégré alimentation 5V, donc l’équation ci-dessus peut être simplifiée à :
sortie tension de 8 bit DAC = 5V * (données d’entrée numériques) / 255
Cette équation, nous pouvons voir que la TLC7528 serait sortie 5V si elle reçoit une valeur de 255, 0V, si elle reçoit une valeur de 0, 2, 5V si elle reçoit une valeur de 127 et ainsi de suite. Vous mai se demander d'où vient le 255, il s’agit d’un résultat de la TLC7528 étant un 8 bit DAC. 8 bit signifie que les nombres binaires, que nous pouvons envoyer à la DAC doivent avoir pas plus de 8 chiffres en eux. En binaire, les nombres qui sont représentés avec 8 chiffres (ou moins) gamme de valeur comprise entre 0 et 255 (plutôt que le système de numération décimal où et 8 chiffres vont de 0 à 99999999). Donc, il y a 256 valeurs possibles (0-255) qui peuvent recevoir le 8 bit DAC. Ceci peut être effectué rapidement de l’équation suivante :
2 ^ 8 = 256 valeurs possibles
Si nous utilisions un 10 bit DAC, il pouvait recevoir 2 ^ 10 = 1024 valeurs différentes, allant de 0-1023. Cela signifie qu'un 10 bit DAC a une résolution supérieure à un 8 bit DAC. Malgré cela, j’ai trouvé que 8 bit DAC est généralement beaucoup plus utile que 10 bit DACs données étant plus faciles à stocker et sortie de l’Arduino en forme de 8 bit que sous forme de 10 bits. Par exemple, type de données byte en langage Arduino est pour stocker des nombres de 8 bits. Si vous voulez enregistrer un numéro de 10 bits, vous devez utiliser un type de données int , mais les types de données int peuvent stocker jusqu'à 16 bits numéros, alors vous serait gaspiller 6 bits de mémoire. En outre, les broches de l’Arduino sont groupés ensemble dans des groupes de 8 ou moins. Sur l’ONU, le groupe seulement plein de 8 broches numériques 0-7, ce groupe est appelé PORTD. Lorsque vous écrivez du code de l’Arduino, vous pouvez facilement produire 8 bits de données en définissant les États de broches numériques 0-7 tout à la fois. Dans le code, cela est fait en envoyant un nombre 8 bits à PORTD. Par exemple :
PORTD = 255 ;
définit les broches numériques 0-7 élevé, il est équivalent à ce qui suit :
digitalWrite(0,HIGH) ;
digitalWrite(1,HIGH) ;
digitalWrite(2,HIGH) ;
digitalWrite(3,HIGH) ;
digitalWrite(4,HIGH) ;
digitalWrite(5,HIGH) ;
digitalWrite(6,HIGH) ;
digitalWrite(7,HIGH) ;
mais à l’aide de la commande PORTD définit toutes les quilles en même temps et est beaucoup plus rapide. La commande suivante fixerait broches numériques 0-7 LOW :
PORTD = 0 ;
vous pouvez également utiliser la commande PORTD de certaines broches hautes et d’autres faibles. Par exemple :
PORTD = 137 ;
137 en binaire est 10001001, donc envoi 137 voix PORTD fixera broche 7 haute (parce que le premier chiffre du nombre binaire est un « 1 »), broches 6-4 faible (car les 3 prochains chiffres sont « 0 »), broche 3 hauts, pins faible 2 et 1, et la broche haute 0. Vous pouvez en savoir plus sur comment cela fonctionne sur le site d’Arduino. Vous pouvez même envoyer des nombres binaires à PORTD, par exemple :
PORTD = B10001001 ;
équivaut à PORTD = 137 ;
Enfin, je vais parler de comment nous obtenons ces données dans le TLC7528. Le TLC7528 est appelé un DAC parallèle. Cela signifie que toutes les données que nous envoyons le DAC sont envoyées en parallèle. 8 bit DACs parallèles ont huit connexions de données entre l’Arduino et DAC qui envoient tous les 8 bits de données en même temps. C’est le contraire du parallèle, série, dans des configurations de série, vous utilisez moins de connexions données (généralement trois), mais envoyez qu’un seul bit à la fois. Ainsi, afin de transmettre un nombre 8 bits via une connexion série, il faut envoyer huit paquets de 1 bit, un après l’autre, tandis que dans les configurations parallèles, vous pouvez envoyer tous les 8 bits en même temps. Cela signifie que les connexions série requièrent des transfert de données plus rapide que les connexions parallèles. Si vous n’êtes pas inquiet sur l’utilisation de 8 broches numériques de l’Arduino, un parallèle 8 bits DAC est une bonne option, car elle nécessite moins de vitesse horloge et est plus simple de code.