Bonsoir, Bonsoir !
En cette douce soirée, je vous propose un petit projet qui m'est passé par la tête après avoir calculé la valeur d'une résistance. Avec un peu d'habitude, il est simple de calculer la valeur d'une résistance. Mais quand on doit en calculer plusieurs centaines, la tâche devient vite pénible.
C'est pourquoi je me suis dit, pourquoi ne pas laisser mon ordinateur se charger du calcul.. ou plutôt de la mesure de la résistance.
Effectivement, je me sert de mon ordinateur et d'une carte Arduino Uno pour mesurer la résistance. À l'aide d'une platine à essai, de 3 fils et de 2 résistances de 1k Ohm uniquement le montage est finit.
Le principe est simple, on place la résistance à calculer dans un pont diviseur de tension. On mesure la tension à ses bornes à l'aide d'une entrée analogique (A0 pour le cas présent). Ensuite, à l'aide d'une petite équation, on convertit le nombre obtenu en volt puis on calcul la résistance avec la loi d'Ohm. Et pour finir, on l'envoi à l'ordinateur via un câble USB et un gestionnaire série RS232.
Schéma et calcul necessaire à ce projet :
En calculant le courant (qui est le même dans chaques résistances car elles sont en série et A0 est considéré comme une haute impédance) et en mesurant la tension R2, on obtient facilement la valeur de la résistance.
Celle ci est ensuite envoyée par le port série (USB) à l'ordinateur.
Afin d'éviter une mesure continue qui serait inutile, j'ai fait en sorte que lorsque l'ordinateur envoi la lettre 'R' à la Uno, celle-ci mesure la tension sur A0, converti et fait le calcul pour obtenir R2 et renvoie la valeur.
J'ai ensuite fait une application très simple sous Qt qui permet de lancer une acquisition et d'afficher le résultat.
Voici la bouille de l'application :

J'utilise la librairie non officielle qExtSerialPort (car il n'en existe pas d'officielle...) pour la communication série. Celle ci n'est pas encore au point car il y a quelques différences entre son utilisation sous Windows et sous Linux que je n'ai pas totalement comprise.
Je compte aussi améliorer le programme afin qu'il donne la valeur exacte (1502Ω) et aussi la valeur normalisée de la série E12 (1500).
Ce projet reste très simple. Toute la complexité reste dans la communication série au niveau de l'ordinateur.
Et je vois déjà venir les commentaires du genre "Sinon les ohmmètres ça existe hein
! ". Je répond "oui", mais mon but est d'utiliser cette application dans ma futur banque de composants. Ceci permettrait, à l'ajout d'une nouvelle résistance, de la mesurer et d'ajouter ça valeur automatiquement.
Voici le code de l'Arduino Uno :
void setup() {
Serial.begin(9600);
}
void loop() {
if(Serial.read()=='R')
{
// tension Ur en mv
long U = analogRead(0);
U *= 5000;
U /= 1023;
// valeur de la résistance R
long R = (U*500)/(5000-U);
// envoi de la valeur de R sur le port serie
Serial.print(R);
}
}
Le calcul est divisé en plusieurs parties sinon il y a des problèmes de moyennage. Il faudrait typer le calcul... Perso j'avais la flemme de rechercher comment faire
.
En espérant que cet article vous a plu, bonne soirée !
PS : demain, peut être un gros tuto sur l'asservissement de position. Utile pour réaliser la direstion d'un robot par exemple.