Module Arduino¶
Installation¶
Pour installer ce module dans votre environnement de développement Arduino,
allez dans le menu .
Vous pourrez sélectionner le paquet xphs1903.zip contenant le module, et il sera installé.
Retournez dans le menu pour
l’inclure dans un carnet Arduino.
Utilisation¶
Le module xphs1903 fournit la fonction set_PF() qui permet de régler la fréquence
d’acquisition du Arduino. Pour un exemple de son utilisation, allez voir . Ce programme fonctionne de paire avec demo.py qui utilise le module Python.
Implémentation¶
-
XPHS1903¶
Module pour le cours PHS1903, basé sur une compilation de M. Gammon. Adapté pour l’Arduino Nano Every (ABX00028) et le processeur ATMega4809. Les particularités du processeur proviennent de la
fiche de données techniques. Par Émile Jetzer, à l’hiver 2026.
Horloge du CAN¶
Le CAN du ATMega4809 a besoin d’une fréquence d’horloge entre 50kHz et 1.5MHz pour une résolution maximale.
Préfacteur¶
Le préfacteur du CAN est une puissance de deux qui
divise la fréquence de l’horloge du processeur.
pf_pow est la puissance associée au préfacteur
\(2^{pf_pow}\).
Le préfacteur (et tous les réglages du Arduino) est
réglé à partir de valeurs binaire dans un registre
de mémoire vive. Les registres précis dépendent du
processeur précis, et ne peuvent pas être assumés
pour d’autres plate-formes. Sur le Arduino Nano Every,
avec un processeur ATMega4809, le CAN est géré par
le registre accessible via le nom :c:var:ADC0, et le
préfacteur est réglé dans les 3 premiers bits du
sous-registre ADC0.CTRLC.
-
int set_PF(void)¶
La fonction
set_PF()règle le préfacteur selon la valeur depf_pow. La fonction ne touche qu’aux trois bits concernant le pré-facteur, et laisse les autres bits intacts.
Démonstrations¶
Annonceur¶
Programme qui fait l’acquisition de signaux de tension électrique reçus par deux photodiodes (visible et infrarouge) et envoie le signal converti sur le port série, afin qu’il soit traité par un code Python sur un ordinateur.
Définitions préliminaires¶
L’instruction de pré-compilation #define permet de définir des
valeurs nommées, comme des variables, mais sans utiliser de bloc mémoire.
-
DEBIT¶
Paramètres de la communication série. Un débit plus lent interfère avec les mesures et un débit plus rapide fait chauffer le micro-contrôleur
µs Le temps d’attente en lecture, compter 20µs/octet à 115200
-
N_broches¶
Si vous voulez mesurer les valeurs de plus de diodes, Augmentez la valeur de
N_brocheset ajoutez des valeurs aux listes en conséquence.
Liste pour les broches de lecture
Liste pour les lectures analogiques
-
void setup(void)¶
Initialisation du port série à 115200 bits par seconde et un timeout de :c:macro:DELAI
-
int j¶
Réglage du pré-facteur
Test de fréquences d’acquisition¶
Test de précision des préfacteurs du CAN
Basé sur https://www.gammon.com.au/adc
Adapté pour l’Arduino Nano Every (ABX00028)
et le processeur ATMega4809
Les particularités du processeur proviennent de
la fiche de données techniques.
Par Émile Jetzer
Le CAN du ATMega4809 a besoin d’une fréquence d’horloge entre 50kHz et 1.5MHz pour une résolution maximale.
Connexions¶
Ce module assume les connexions suivantes:
A0(4) -- rail+ -- 5V(12)
A1(5) -- 3V3(2)
rail- -- R2 -- A2(6) -- R1 -- 5V(12)
A3(7) -- rail- -- GND(15)
R1 = R2 = 2kΩ
-
void show_adc0(void)¶
Affiche l’état actuel des registres contrôlant le CAN. Le format est le même que celui utilisé par la documentation du processeur.
-
void loop(void)¶
À chaque itération, régler le pré-facteur et prendre une série de mesures sur chacune des 4 broches configurées. Le but est d’évaluer le pré-facteur minimum pouvant être utilisé en obtenant une précision et exactitude de mesure satisfaisante. Trop vite, on ne remplit pas les 10 bits du CAN, et trop lent, on perd du temps et on introduit potentiellement des artefacts d’alias.
Ce programme est destiné à être utilisé comme un démonstrateur ou comme un instrument de mesure, mais jamais comme un produit. Utilisez le pour trouver la configuration adéquate pour votre application, puis démarrez un nouveau projet dans lequel vous pourrez importer le module
xphs1903.h.