
Après le manipulateur électronique je vous propose ici le décodeur CW basé également sur l’Arduino uno.
Le sketch étant vérifié puis téléversé, le processeur AT328-P prendra place dans le shield décrit ci-dessous.
Le schéma :
Le montage est alimenté en 5 V par l’intermédiaire d’un régulateur 78L05, le 12 V étant prélevé dans le manipulateur électronique décrit précédemment.
En haut du schéma on rencontre un connecteur à deux broches par lequel on raccordera le bouton poussoir reset (au cas où la machine perdrait les pédales).
En bas un autre connecteur 16 broches permettra de raccorder un afficheur LCD 4 lignes, 20 caractères.
Le signal audio issu du transceiver passe par un inverseur en face avant qui transite par le connecteur ENT.
Un inverseur permet de sélectionner soit le signal venant du transceiver soit celui issu du manipulateur électronique (voir en fin d’article).
Deux diodes au germanium permettent d’écrêter la BF au cas où.
Suit le LM567, décodeur de tonalité dont la sortie en 8 alimente la broche n° 15 du microcontrôleur.
Le potentiomètre R4 (4,7 kΩ) permet de se caler sur la tonalité du signal entrant (la plage de réglage est d’environ 600 à 800 Hz). La LED (LED1) permet de visualiser le verrouillage du PLL.
(R12 = 22 Ω, mais voir à la fin de l’article le paragraphe consacré au rétroéclairage).
Sur la broche 16 du microcontrôleur, à travers R9, on peut raccorder un buzzer, la valeur de R9 pourra être augmentée suivant la tolérance de vos oreilles.
Avec le potentiomètre R8, on règle la luminosité de l’afficheur.
Le connecteur 4 broches nommé I2C a été prévu pour y raccorder un afficheur LCD I2C plutôt qu’un afficheur classique comme prévu en première étude.
Il semblerait que ces afficheurs I2C soient plus faciles à se procurer, de plus leur QSJ est moins élevé.
Ceci fera l’objet d’un article complémentaire.
Le circuit imprimé :
Réalisé avec EAGLE, il a été étudié de telle façon que le connecteur 16 broches tombe exactement en face de celui de l’afficheur LCD.
Ainsi un couple de connecteurs 16 pins mâle/femelle permettra d’éviter des fils de câblage si on utilise un afficheur classique.
Nota : En rouge, on remarque un strap
Le sketch avec l’afficheur en mode parallèle a été élaboré par WB7FHC, il sera disponible sur le site du RCN-EG avec l’intitulé : « décodeur morse 4×20.ino ».
Les composants :
| Référence | Valeur/Type |
|---|---|
| C1, C10 | 100 µF |
| C2 | 1,5 µF |
| C3, C6, C8 | 100 nF |
| C4, C5 | 22 pF |
| C7 | 0,47 µF |
| C9, C11 | 100 nF |
| D1, D2 | Germanium |
| Inverseur | – |
| Jack | 3,5 mm |
| IC1 | AT328-P |
| IC2 | LM567N |
| IC3 | 78L05 |
| LCD | Afficheur 4 x 20 |
| LED | Diode |
| QZ | Quartz 16 MHz |
| T1 | BC547 |
| Pins | 2 broches |
| Pin | 4 broches |
| Pin | 16 broches |
| R1 | 18 kΩ 1/4 W |
| R2, R3 | 820 Ω 1/4 W |
| R4 | Potentiomètre 4,7 kΩ |
| R5 | 33 kΩ 1/4 W |
| R6 | 3,3 kΩ 1/4 W |
| R7 | 10 kΩ 1/4 W |
| R8 | Potentiomètre 10 kΩ |
| R9 | 100 Ω 1/4 W |
| R10, R11, R13 | 4,7 kΩ 1/4 W |
| R12 | Voir texte |
Le retroéclairage du LCD :
L’afficheur que j’ai utilisé est un DEM20485SYH. Il est câblé (d’origine) anodes en 16 et cathodes en 15 (suivant les fabricants des LCD 4×20 c’est parfois anodes en 15 et cathodes en16).
Il est possible d’adapter le câblage si on possède la notice et que l’on tente l’aventure d’intervertir des résistances cms petit modèle (603).
Sinon, le circuit imprimé est prévu pour les deux cas grâce à J1 et J2 ainsi que de l’emplacement de R12 et de deux pastilles (1 et 2) sur le circuit imprimé, l’une (2) sur le +5 V, l’autre (1) sur la borne 16 du connecteur.
Si les anodes sont en 16 et les cathodes en 15, R12 est raccordée entre le +5 V et la borne 16 et J1 est raccordé à J2 comme sur le schéma ci-dessus.
Dans l’autre cas, si les anodes sont en 15 et les cathodes en 16, J2 sera raccordé au + 5 V et J1 sera raccordé à la borne 16 avec R12 (grâce aux pastilles 1 et 2 prévues sur le circuit imprimé).
Il reste à voir la valeur de la résistance R12.
Avec R12 = 22 Ω, la consommation de l’ensemble du montage est de 70 mA, dont environ 40 pour le seul rétroéclairage. L’afficheur que j’ai utilisé comportant 4 leds, on a 10 mA pour chacune d’elles, c’est juste suffisant.
Si on veut augmenter l’intensité lumineuse, le régulateur 78L05 (limité à 100 mA) devra être remplacé par un 7805. Le circuit imprimé est prévu pour.
L’association décodeur-manipulateur :
L’alimentation 9-12 V est prélevée dans le manipulateur comme vu au début de cet article.
Sur le schéma ci-dessus, il y a T1 dont le collecteur est raccordé à la pin 15 du microcontrôleur (avec 8 du LM567). Sur sa base R13 sera, par l’intermédiaire du connecteur à deux broche « MANIP », reliée à R9 du manipulateur électronique décrit dans le BL 125.
Ainsi on pourra contrôler sa manipulation que ce soit du clavier, des mémoires de la pioche ou du manip double contact.
Pour terminer, on pourra bien sûr se passer des shields que j’ai réalisés à condition d’utiliser des cartes ARDUINO UNO, pour le manip et/ou pour le décodeur et des fils de liaison.
Pour ce faire, il faudra repérer (à l’ohmmètre par exemple) la correspondance entre les bornes de la carte ARDUINO et celles du microcontrôleur AT328 telles qu’elles sont câblées sur le(s) shield(s).
Mise en place d’un afficheur LCD_I2C
Dans le descriptif du décodeur morse paru auparavent, le remplacement de l’afficheur LCD d’origine (en mode parallèle) était prévu pour un autre afficheur à bus I2C.
Il n’y a rien à changer au shield, mis à part bien sûr l’afficheur LCD.
Par contre, il a fallu modifier le sketch qui se nomme alors : « décodeur_morse_4x20_I2C ».
Ligne 48 : Il faut utiliser la bibliothèque « Wire ». Cette bibliothèque existe d’origine dans l’IDE Arduino mais elle est située là où on ne s’y attend pas et où on ne s’attends pas à la trouver !
En résumé il faudra la ranger dans : Mes documents/Arduino/libraries/ avec celle de la ligne 50, c’est-à-dire Liquidcrystal_I2C (même procédure commune aux déclarations/emplacement des librairies).
Ligne 48 : #include
Ligne 49 : #include
Ligne 50 : #include comme son nom l’indique, bibliothèque spécifique à l’afficheur I2C.
Ensuite, les lignes 51 à 61 permettent d’affecter les pins du LCD avec le module I2C.
Ligne 52 : #define I2C_ADDR 0x27
Suivant l’origine de l’afficheur en votre possession, vous serez peut-être amené à changer cette ligne. 0x27 est une adresse en hexadécimal, c’est celle de mon afficheur mais ce ne sera pas forcément celle que vous devrez utiliser pour le vôtre, cela dépend du fabricant et (ou) de sa provenance.
Si cette adresse n’est pas la bonne, rien ne s’affichera, mis à part des petits carrés, mais rien de grave.
Pour résoudre le problème, il faudra utiliser un sketch intitulé « I2C_Scanner » et activer le « moniteur série » (la loupe en haut à droite sur la grosse barre bleu foncé de l’IDE).
Il faudra aussi que la bibliothèque « Wire.h » soit présente là ou elle doit l’être (voir ci-dessus).
Câblage du montage nécessaire :
Nota : Le potentiomètre bleu sert à régler le contraste de l’affichage.
On peut aussi s’en sortir avec un multimètre :
Sous le potentiomètre bleu on voit trois rangées de plots : A0, A1 et A2.
- En alimentant le module I2C (GND = 0 V et VCC = +5 V) on pourra, au voltmètre, à l’aide du tableau ci-dessous (0 = 0 V, 1 = 5 V), trouver l’adresse hexadécimale nécessaire.
- Sans alimenter, et avec l’ohmmètre, 0 = continuité avec la borne GND et 1 = continuité avec la borne Vcc.
| A0 | A1 | A2 | Adresse Hexa |
|---|---|---|---|
| 1 | 1 | 1 | 0x27 |
| 0 | 1 | 1 | 0x26 |
| 1 | 0 | 1 | 0x25 |
| 0 | 0 | 1 | 0x24 |
| 1 | 1 | 0 | 0x23 |
| 0 | 1 | 0 | 0x22 |
| 1 | 0 | 0 | 0x21 |
| 0 | 0 | 0 | 0x20 |
Enfin, les lignes 128 et 129 sont là pour le rétroéclairage.
La documentation plus les bibliothèques Wire et Liquidcrystal_I2C
ainsi que les sketchs Décodeur_morse_4x20_I2C et I2C_Scanner sont disponible ici …








