Module Arduino

Installation

Pour installer ce module dans votre environnement de développement Arduino, allez dans le menu Croquis ‣ Importer une bibliothèque ‣ Ajouter la bibliothèque .ZIP…. Vous pourrez sélectionner le paquet xphs1903.zip contenant le module, et il sera installé. Retournez dans le menu Croquis ‣ Importer une bibliothèque ‣ xphs1903 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 Fichier ‣ Exemples ‣ xphs1903 ‣ annonceur. 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 de pf_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_broches et ajoutez des valeurs aux listes en conséquence.

M_mesures

Nombre de mesures, dépend de N_broches et de la mémoire disponible

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 = 2
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.