Le but de mon projet est d'afficher la valeur du courant d'un capteur qui renvoie du 4-20mA
Voici le code:
#include <LiquidCrystal.h>//ajout de la librairie qui contient les fonctions concernant l'écran LCD
//broches numérique utilisées "LiquidCrystal(rs, enable, d4, d5, d6, d7)"
LiquidCrystal lcd(5,6,13,7,12,8); //liaison 4 bits de données
//Déclaration:
const int led=0;
float tension=0.000;
float courant=0.000;
void setup()
{
pinMode(led,OUTPUT); // Pin 0(led=0) en mode "sortie"
lcd.begin(8,2); //utilisation d'un écran 8 colonnes et 2 lignes
digitalWrite(led,LOW); //la pin 0(led=0) est à l'état bas(0 Volt), la LED est allumée
}
void loop()
{
lcd.setCursor(4,0); // (0,0)=première ligne || (0,1)=deuxième ligne
tension=(analogRead(A0)*4.94)/1023.00; //convertion de la valeur numérique en tension , "Règle de trois" ou "produit en croix"
courant=(tension/250)*1000; //Loi d'Ohm U=R*I , ici R=250 Ohm
lcd.print(courant,2); //on affiche la valeur du courant et on limite à 3 chiffres après la virgule
lcd.setCursor(1,1); //place le curseur aux coordonnées (1,1)
lcd.write("mA"); //affiche "mA"
delay(500); //on attend 0,5 secondes
lcd.clear(); //Efface toutes les données affichées sur l'écran LCD
}
mais le problème c'est que j'ai une tension de 25V sur la pin A0 de l'ATmega alors que je devrais avoir 5v maximun aux bornes de la résistance 1%
25V ça ressemble d’après ton schémas à la tension d'alimentation de ton régulateur de tension. Vérifies que tu as bien router ta carte.
Au niveau de RES 1% tu essaies de faire un pont diviseur ?
Si je dis pas de bétise, ton courant (du capteur) arrive entre R1 et la résistance de 10K. Donc le courant va se divisé. Il va créer une tension aux bornes de la résistance de 10K et aux bornes de R1 1%, cela va donner sur A0 l'addition des tensions.
Que viens faire la résistance de 10K. Pourquoi tu ne mets tout simplement pas R1 1% en série avec la sortie de ton capteur ?
Il y a un pb sur ton montage ou alors je suis pas réveillé (ce qui est fort possible)
Merci pour ta réponse mais le problème est que le montage fonction au labo avec une alim 25V et un calibrateur 4-20mA mais quand je branche ma carte sur l'automate qui genère le 4-20mA et la tension monte à 25,4v et le courant est de 94mA ce qui n'est normale il devrait y avoir en 4 et 20 mA
Et le courant ne passe pas par A0 car il y a une grosse impédence d'entrée en fait je mesure juste la tension c'est pour cette raison que j'ai mis une resistance de 250ohm >>>20mA x 250ohm = 5V
Bonjour,
Comme on est sur une liaison boucle de courant 4-20 mA, ta tension aux bornes de RES1% va varier de 1 V à 5V (U=RI).
La résistance de 10k sert de protection du port d'entrée du ATMega.
Rq: la boucle 4-20 mA permet également de tester les rupture de boucle -> SI 0v aux bornes de RES1% alors la boucle de courant est ouverte.
@+
[edit] Si tu as mesuré 90 mA c'est que tu as injecté 25 V sur l'entrée de la boucle de courant. Normal que l'entrée de l'ATMega n'aime pas =(
C'est juste une tension pour transporter le courant mais c'est ce dernier qui est imposer .
-Au départ je n'est pas relié la pin 8 à la masse et le résultat est que j'avais 3,6V (ce qui est la bonne tension) aux bornes de R1% mais en entrée de Ao j'avais 25V
-Puis quand j'ai relié la pin 8 à la masse du circuit la tension aux bornes de R1% était de 25V et en entrée de Ao j'avais 5,6v
Essaye de faire un pont diviseur : place une résistance de 1K entre ton entrée 4-20 mA et ta 250 ohms, et supprime ta résistance de 10k.
Tu peux faire l'essai en ne raccordant pas l'entrée annalogique et voir au voltmétre si ta tension varie bien en fonction de l'état du capteur