Création d'une carte d'interface 21 sorties / 16 entrées
Le but est d'obtenir une carte créant une communication entre l'ordinateur et le monde réel (du virtuel au physique). Exemple quand vous tapez sur votre clavier, vous transformez des données physiques caractérisées par l'action de vos doigts sur les touches en des données virtuelles traitées par l'ordinateur. Un carte de domotique doit permettre de recevoir des informations en provenance de n'importe quels types de capteurs (sonore, proximité, humidité, luminosité,...) afin que l'ordinateur puisse analyser ce qui se passe dans le monde extérieur et éventuellement envoyer une réponse qui peut soit être une action de l'ordinateur (exécuter un programme, un son...) soit d'un système électronique à part (contrôle de moteur, fermeture d'un circuit électrique...).
Des cartes pareilles existent sur le marché, mais leur coût est bien souvent trop important pour le portefeuille du bricoleur... Le but est donc d'en construire une nous même... La carte qui va être proposée a été développée par mes soins et testée 100% fonctionnelle. Son coût varie entre 7€ et 10€ suivant le magasin où vous achetez vos composants (plaque à graver comprise)
La première partie dans le développement est de choisir le port de l'ordinateur par lequel il est possible de communiquer. 3 choix s'offrent alors à nous. Le port série, l'usb et le port parallèle. Le port série comme son nom l'indique envoie et reçoit des données envoyées en série, l'usb nécessite une puce pour traiter les données mais bénéficie d'une vitesse très importante. Le port parallèle permet d'envoyer des données en parallèle, ce qui signifie que vous pouvez envoyer un octet (8 bit) à la fois sur les 8 broches data du port parallèle. Comme le port // est aussi facile à programmer et qu'il est présent sur tous les ordinateurs (à l'époque de l'article), le choix s'imposa.
La suite du développement consista à trouver un composant pouvant conserver une valeur qui lui est envoyée. Pour cela, j'ai trouvé le 74hc574 (voir datasheet). Ce composant permet de basculer 8 bit sur 8 broches "mémoires". Ainsi, il devient possible de dupliquer les 8 sorties data via plusieurs 74hc574... J'ai disposé 3 circuits qui donnent un total de 24 sorties. Chaque circuit met en mémoire les données data lorsqu'il reçoit une impulsion sur ça broche "clock". Donc chaque composant est connecté aux broches Data et à une autre broche qui lui est personnel et qui active la mise en mémoire.
Le schéma ci-dessous qui est le schéma interne du 74hc574 répété à chaque entrée de celui-ci, révèle une bascule D commandée par l'entrée CLK avec le niveau choisi sur la broche D.
La dernière étape, consiste à trouver un composant pouvant envoyer 16 entrées en série... Explication: le port parallèle ne possède que peu d'entrée, du moins, un nombre inférieur à 16, donc il faut envoyer chaque entrée une à une. Au début j'ai pensé à utiliser un 16f84, mais ça augmenterait considérablement le prix de construction et la complication du système. J'ai donc trouvé le 74hc151 qui permet d'afficher l'entrée désirée en lui envoyant le code de celle-ci... (voir datasheet). Pour envoyer le code, je me suis donc servi de 3 broches sorties (donc 24-3 = 21 sorties restantes). Le schéma ci-dessous montre la table de fonction du composant, suivant les entrées CBA, la valeur présente sur Y est D0, D1, ... D7