CKi Af 4
CKi Af 4
http://www.didel.com/ [email protected]
www.didel.com/kidules/CKiAf4.pdf
Exercice 1 Pour allumer les deux segments, on peut le faire "à la Arduino"
Pour lire la valeur associée au chiffre 3, qui est dans la case 3, on écrit digit [3]; et pour afficher
ce 3 sur le port Kidule on écrit WriteKi (digit [3]) ; Joli n'est-ce pas!
Le programme qui compte de 3 en 3 avec ces instructions s'appelle ComptePar3.ino.
Cela permet de voir comment on calcule avec l'index en restant dans les valeurs qui nous
intéressent Naturellement, il faut maintenant compléter la table pour avoir les chiffres hexa, et
remarquer que l'index pour le F est 15 (programme ComptePar3Hex.ino).
Approche Arduino
Expliquée dans le mooc "Microcontrôleurs", l'approche Arduino est élégante, mais lente et utilise
beaucoup de mémoire, ce qui n'est en général pas gênant.
A cause du câblage de 4
résistances, le premier digit est
allumé si on ne fait rien. Tirez
un fil entre la première pin et du
0V sur une pin maquée -.
Le digit s'éteint. Tirez un fil vers
le 5V marqué + et le digit choisi
s'allume. Les segments de ces
digits sont reliés. Pour afficher
un nombre, il faut allumer un
digit après l'autre. L'information
doit venir de sorties supplé-
mentaires d'Arduino, par
exemple les pins 4,5,6,7, déjà
initialisées en sorties dans les
setup précédents.
// Af4val1234.ino
void setup ()
{
DDRD |= 0b11111100 ; //
DDRC |= 0b00111111; // segments a..f
PORTD |= 0b00010000;
PORTC |= 0b00000000; // seg éteints
}
byte digit[10]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67};
Cette solution n'est pas très élégante, mais on peut voire pire avec des pages de "digitalWrite" !
C-facile Kidule Af4
Affiche un nombre BCD ou hexa
On veut maintenant afficher une variable qui contient un
nombre binaire de 16 bits, affiché en hexadécimal. Si c'est
du BCD, chaque groupe de 4 bits est inférieur ou égal à 9.
Pour afficher le premier digit, il fait extraire les 4 premiers
bits du nombre. On décale de 12 positions à droite, ce qui
injecte des zéros dans les 12 premiers bits et génère le
nombre de 0 à F pour la fonction CopyDigit
Pour afficher le digit suivant, on doit décaler de 8, etc.
Modifiez le programme précédent pour afficher une variable
initialisée par exemple à 1234.
Poussoir
Le poussoir sur le kidule Af4Dig est actif à zéro. Il a des rebonds de contact.
Relisez www.didel.com/diduino/Composants02.pdf pour en savoir plus.
jdn131019/140130