J’ai rajouté un capteur de température LM35CZ.
Code source sur Github.
Broches de l’Arduino Uno
Broches de l’ATmega 328P
Broches de l’ATtiny 45/85 et 44/84
Broches de l’ATmega 644P
Broches de l’ATmega 1284P
Clavier PS/2 et Arduino (sans bibliothèque dédiée)
Le montage :
Port PS/2
Broche 1 (data) => Broche 4 de l’Arduino
Broche 2 (non connecté)
Broche 3 => GND de l’Arduino
Broche 4 => 5V de l’Arduino
Broche 5 (clock) => Broche 3 de l’Arduino
Broche 6 (non connecté)
Le code Arduino :
/////////////////////////////////////////////////////////////////// const int DATA_PIN = 4; const int CLOCK_PIN = 3; /////////////////////////////////////////////////////////////////// void setup() { pinMode(DATA_PIN, INPUT); // C'est le clavier qui génère l'horloge de synchronisation pinMode(CLOCK_PIN, INPUT); Serial.begin(9600); } /////////////////////////////////////////////////////////////////// void loop() { Serial.println(dataRead(),HEX); } /////////////////////////////////////////////////////////////////// int dataRead() { // La trame est de 11 bits /* Si la pression est maintenue, le code est envoyé environ toutes les 100 ms (make code). Quand la touche est relachée, le clavier envoie le code F0 suivi du code de la touche relachée (break code), sauf pour quelques touches particulières (voir le fichier PDF correspondant ci-dessous). */ byte data = 0; while (digitalRead(DATA_PIN) && digitalRead(CLOCK_PIN)); // 1 bit de start : La ligne de transmission des données est // passée au niveau bas et un signal d'horloge est engendré : while (digitalRead(CLOCK_PIN)); while (!digitalRead(CLOCK_PIN)); // 8 bits de données (bit de poids faible (LSB) en premier) for (int d=0; d<=7; d++) { // Les données sont valables sur le front descendant // du signal d'horloge while (digitalRead(CLOCK_PIN)); data = data | digitalRead(DATA_PIN) << d; while (!digitalRead(CLOCK_PIN)); } // 1 bit de parité while (digitalRead(CLOCK_PIN)); while (!digitalRead(CLOCK_PIN)); // 1 bit de stop while (digitalRead(CLOCK_PIN)); while (!digitalRead(CLOCK_PIN)); return data; } ///////////////////////////////////////////////////////////////////
Les codes obtenus avec le programme Arduino ci-dessus :
Clavier PS/2 (fichier PDF)
Hack d’un clavier avec port PS/2
L’objectif :
Le but est de réaliser une matrice de clavier relativement grande qui utilise le moins d’entrées / sorties possible sur une carte Arduino par exemple. Le port PS/2 d’un clavier de PC n’utilise que 4 broches sur les 6 de la prise correspondante (+5V, GND, CLK, DATA). Deux de ces lignes (CLK et DATA) sont suffisantes pour faire communiquer un clavier de 105 touches avec un PC. Je vais donc m’atteler à en comprendre le fonctionnement afin de pouvoir réutiliser l’encodeur du clavier.
Les pièces maîtresses :
L’analyse :
Alimentation pour Commodore 64
Afin de remplacer l’alimentation d’origine du Commodore 64 qui avec l’âge risque de détruire l’ordinateur, Electroware en a conçu une nouvelle, disponible sur ce site. Suite à une polémique sur la tension délivrée par cette alimentation, j’ai démonté le Commodore et pris la tension au niveau du processeur. J’obtiens les 5 V attendus. Au niveau du SID 6581, j’obtiens 11,85 V au lieu de 12 V. Pour la fabrication d’un testeur d’alimentation spécifique au Commodore 64, voir cette vidéo.
Banques d’images
Les sites suivants contiennent des images gratuites et libres de droit.
Dans tous les cas, bien vérifier le type de licence.
Pixabay
Unsplash
StockVault
AllTheFreeStock
Free Images
StockSnap
Foodiesfeed
Magdeleine
Freejpg
The Stocks
Source : Publika