mardi 18 juillet 2017

Afficheur 8 chiffres, 8 LEDs, 8 boutons TM1638 et Arduino

Vous pouvez facilement trouver sur eBay des modules constitués de 8 afficheurs 7 segments, 8 LEDs et 8 boutons, dont la pièce maîtresse est un circuit intégré TM1638 (mon modèle porte la mention "LED AND KEY").

Même s'il est peu probable que vous ayez besoin de la totalité des composants qu'il contient, un tel module peut grandement faciliter la mise au point d'un prototype, d'autant plus qu'il n'accapare que 3 entrées/sorties de votre microcontrôleur.

Ce court tutoriel vous indiquera comment brancher un tel module à votre carte Arduino, et comment utiliser les différents éléments qui le composent.

Connexions

Le module comporte 5 connecteurs, qui seront branchés à l'Arduino de la façon suivante:

VCC du module TM1638 :  5V de l'Arduino
GND du module TM1638:  GND de l'Arduino
STB* (strobe) du module TM1638:  pin 4 de l'Arduino
CLK* (clock) du module TM1638:  pin 2 de l'Arduino
DIO* (digital input output) du moduleTM1638:  pin 3 de l'Arduino

*: Les connecteurs STB, CLK et DIO peuvent être branchés à d'autres pins de l'Arduino si désiré:  il s'agira de modifier les sketches proposés ci-dessous pour en tenir compte.



Installation de la bibliothèque

Nous allons utiliser la bibliothèque conçue par Ricardo Batista spécialement pour ce type de module. Il y a évidemment une page github d'où on peut télécharger la bibliothèque, afin de l'installer dans l'IDE Arduino.

Pendant que vous y êtes, le wiki de cette même page github dresse la liste de toutes les fonctions (ou devrais-je dire "méthode"?) de cette bibliothèque.

Initialisation de la bibliothèque

Dans chaque sketch qui utilise cette bibliothèque, on créé un objet de type "TM1638" en précisant, dans l'ordre, le numéro de la pin reliée à DIO, CLK et STB.

Puisque nous avons branché DIO à 3, CLK à 2 et STB à 4, je peux donc utiliser la syntaxe suivante:

TM1638 afficheur(3, 2, 4);

...où "afficheur" est le nom que j'ai choisi pour désigner cet objet.

Afficher des nombres

La bibliothèque TM1638 met à notre disposition plusieurs fonctions permettant d'afficher des nombres grâces aux 8 afficheurs à 7 segments:

setDisplayToDecNumber:  pour afficher un nombre décimal positif
setDisplayToSignedDecNumber: pour afficher un nombre décimal positif ou négatif
setDisplayToBinNumber:  pour afficher un nombre binaire
setDisplayToHexNumber:  pour afficher un nombre hexadécimal
setDisplayToString:  pour afficher des lettres plutôt que des nombres
clearDisplay:  pour effacer ce qui était précédemment affiché

Il est également possible de réglez un des 8 chiffres en particulier (plutôt que l'ensemble du nombre à 8 chiffres) en utilisant setDisplayDigit et clearDisplayDigit.

Penchons-nous sur la fonction "setDisplayToDecNumber", puisque c'est celle qui me semble la plus utile.  Elle comporte 3 arguments:
  1.  un ombre de type "long" qui est le nombre à afficher
  2.  un byte indiquant le ou les points décimaux qui doivent être  allumés
  3.  un booléen indiquant si les zéros qui précèdent le nombre doivent être affichée (True) ou non (False).
Par exemple:

"afficheur.setDisplayToDecNumber(12345, 0, true);"     affichera "00012345"
"afficheur.setDisplayToDecNumber(12345, 0, false);"     affichera "12345"
"afficheur.setDisplayToDecNumber(12345, 0b0001000 , false);"     affichera "12.345"
"afficheur.setDisplayToDecNumber(12345, 0b11111111 , true);"     affichera "0.0.0.1.2.3.4.5."

C'est dommage que la bibliothèque n'offre pas une fonction qui permettrait d'afficher un nombre décimal (float) sans qu'on soit forcé de placer nous-mêmes le point décimal à l'endroit approprié.

L'exemple ci-dessous est un simple compteur dont la valeur augmente d'une unité à chaque seconde.

Allumer des LEDs

La fonction "setLED" comporte deux arguments:

  1. La couleur de la LED:  TM1638_COLOR_RED, TM1638_COLOR_GREEN ou TM1638_COLOR_NONE (LED éteinte).  Sur certains module, les LEDs peuvent s'allumer en rouge ou en vert.  Mon module ne comporte que des LEDs rouges.
  2. Le numéro de la LED qu'on désire allumer ou éteindre, de 0 à 7 (La LED 0 est celle qui est située à gauche du module).

L'exemple ci-dessous allume successivement chaque LED, de gauche à droite.

Lire l'état des boutons

La fonction "getButtons" retourne un octet qui décrit l'état de chaque bouton.  Le bit est à 1 si le bouton correspondant est enfoncé, et à 0 s'il ne l'est pas.

Par exemple, si vous appuyez sur le deuxième bouton à partir de la gauche (S2), getButtons retourne la valeur binaire "01000000".  Grâce à la fonction bitRead (qui est une fonction régulière Arduino et non une fonction spécifique à la bibliothèque), il est facile de vérifier l'état de chaque bouton.

L'exemple ci-dessous indique dans le moniteur série le numéro du bouton enfoncé.


Yves Pelletier   (TwitterFacebook)

lundi 3 juillet 2017

Livre: Raspberry Pi 3 ou Pi Zero par François Mocq

Raspberry Pi 3 ou Pi Zero
Exploitez tout le potentiel de votre nano-ordinateur
par François Mocq
ENI Editions
2016
850 pages

J'ignore si vous réalisez à quel point la rédaction d'un livre général sur le Rasbperry Pi est héroïque. Premièrement, il faut avoir des connaissances encyclopédiques concernant le Raspberry Pi, Linux, les GPIOs,  Python, Scratch et tous les logiciels fournis par défaut avec Raspbian.  Il faut s'assurer que le livre sera aussi utile à ceux qui veulent construire un robot qu'à ceux qui veulent mettre sur pied un serveur web.  Il faut être capable d'expliquer ça clairement, en partant du principe que, très souvent. la personne qui débute avec le Rasbperry Pi n'a jamais utilisé Linux auparavant.   Finalement, puisque les choses bougent vraiment très rapidement dans le monde du Rasbperry Pi, il faut se résigner à ce qu'une bonne partie de ce qu'on a écrit doive être mise à jour dans les mois qui suivront!

Quiconque visite régulièrement Framboise 314 a pu constater à quel point François Mocq communique habilement ses vastes connaissances en matière de Raspberry Pi.  Et pour ce qui est de se tenir à jour, pas d'inquiétude: ce livre, publié fin 2016, fait suite à celui sur le Rasbperry Pi 2 (publié en 2015) et celui sur le Rasbperry Pi tout court (publié en 2014).

Voici un petit survol des nombreux sujets traités dans ce volumineux bouquin de 850 (!!!) pages:

Chapitre 1:  Présentation de l'historique du Raspberry Pi.

Chapitre 2:  Une description très précise et détaillée du côté "hardware" du Raspberry Pi 3 et du Raspberry Pi Zero (les version précédentes ne sont pas couvertes ici).

Chapitre 3:  Raspbian est le système d'exploitation dominant, mais plusieurs autres OS peuvent être utilisés sur le Raspberry Pi.  Ce chapitre nous les présente brièvement.

Chapitre 4:  Marche à suivre très détaillée pour préparer notre carte micro SD.

Chapitre 5:  Le premier démarrage de Raspbian (raspi-config, etc.).

Chapitre 6:  L'utilisation de Raspbian Jessie en mode graphique, incluant une impressionnante visite guidée des applications pré-installées.  Évidemment, on ne peut pas inclure dans un seul livre le guide d'utilisation complet de chacune de ces applications, mais c'est intéressant de savoir à quoi sert chacune d'entre elles.

Chapitre 7:  Utilisation de la ligne de commande; le strict minimum à connaître pour naviguer dans les fichiers sur Linux, et parfois un peu plus (initiation aux scripts shell!).

Chapitre 8:  Se connecter à distance au Raspberry Pi (SSH et VNC).

Chapitre 9: Gestion du réseau (avec beaucoup d'information théorique bien vulgarisée sur le fonctionnement d'un réseau, qu'il comporte un Raspberry Pi ou non).

Chapitre 10:  Utilisation d'une mémoire de masse externe (clé USB ou disque dur)

Chapitre 11:  Démarrage à partir d'un disque externe

Chapitre 12:  "Que faire avec un Raspberry Pi?" :  bureautique, centre multimédia, serveur web et caméra de surveillance.  Évidemment, il existe de nombreuses autres possibilités qui ne sont pas abordées ici, mais c'est une sélection intéressante.

Chapitre 13:  La programmation en Scratch, incluant la création d'un jeu complet.

Chapitre 14:   La programmation en Python

Chapitre 15:  Utilisation des entrées/sorties GPIO en ligne de commande, avec Python et avec Scratch.

Chapitre 16:  Exploration de quelques périphériques pour le Rasbperry Pi (caméra, cartes HAT, HifiBerry DAC+, ADC Pi Plus, IO Pi Plus, RTC Pi Plus, PiFace Digital 2, moteur pas à pas, moteur cc)

Chapitre 17:  Dépannage du Raspberry Pi.  Que faire si votre Raspberry Pi refuse de démarrer, si vous avez des problèmes avec la qualité de l'image ou du son ou encore ... si le clavier est QWERTY?!?!? Mais ce n'est pas un problème, ça!  Au Québec, c'est une configuration AZERTY qui serait fichtrement problématique.  Si je me mettqit q écrire sur un tel clqvier, il y qurait tout plein de mquvqises lettres dans mes textes!

Voilà!  Ça nous fait beaucoup, beaucoup de sujets différents dans un même livre, mais puisque l'auteur dispose de 850 pages, chaque thème est traité avec une profondeur appréciable.  Il s'agit donc d'un excellent livre de référence, très probablement le meilleur de sa catégorie.

Yves Pelletier   (TwitterFacebook)

lundi 26 juin 2017

Quiz: testez vos connaissances en électronique 1

Un petit quiz pour mettre à l'épreuve vos connaissances en électronique...

Question 1

Quelle est la valeur de cette résistance?

22 Ω
 220 Ω
2,2 kΩ
 22 kΩ
 220 kΩ

Question 2

Quel est le potentiel au point B?

0 V
4,8 V
6,0
7,2 V
12 V

Question 3



En courant alternatif, l'impédance d'une bobine d'induction...

...est toujours négligeable
...diminue à mesure qu'on augmente la fréquence
...augmente à mesure qu'on augmente la fréquence
...est indépendante de la fréquence
...est égale à la racine carrée du courant

Question 4

Quelle est la fonction de ce circuit intégré?


Il comporte 4 portes NON-ET
Il comporte 4 amplificateurs opérationnels
Il comporte 6 convertisseurs de niveau logique
C'est un double pont en H permettant de piloter deux moteurs cc
C'est un registre à décalage

Question 5

Quelle est le nom de la broche du centre (#2) ?

Base
Émetteur
Collecteur
Drain
Source

Question 6

En quelle année le circuit intégré NE555 a-t-il été mis au point?

1960
1970
1980
1990
2000

Question 7

Quelle est la capacité de ce condensateur?


68 pF
68 nF
68 µF
683 F
68 kF

Question 8

Que vaut, en notation décimale, le nombre binaire 10010111?

17
23
84
131
151

Question 9

Que peut-on dire de ce composant?


Quand la température augmente, sa résistance augmente
Quand la température augmente, sa résistance diminue
Quand la lumière devient plus intense, sa résistance augmente
Quand la lumière devient plus intense, sa résistance diminue
Quand la pression atmosphérique augmente, sa résistance augmente

Question 10

Quelle est la tension à la sortie de ce montage?

0 V
2,5 V
5 V
10 V
15 V

Après avoir répondu à chacune des 10 questions, cliquez sur le bouton "Valider" ci-dessous.

Related Posts Plugin for WordPress, Blogger...