Arduino Forum

International => Français => Topic started by: pezioz on Dec 07, 2012, 05:47 pm

Title: Problème récupération téléinfo
Post by: pezioz on Dec 07, 2012, 05:47 pm
Bonjour,

Je suis un petit bricoleur dans l'âme, et depuis quelques temps j'étais tenté par découvrir l'Arduino. Et je me suis donc dis autant faire un module qui me serait utile... ce module est la récupération de mes données de consommations électriques via Arduino.

Voila qui pose les bases :)

Nous en arrivons maintenant au coeur du problème: la trame récupérée est illisible.

Voila le code :
Code: [Select]
#include <SoftwareSerial.h>

SoftwareSerial cptSerial(2,3);

void setup() {
cptSerial.begin(1200);
  Serial.begin(1200);

  Serial.println("Go!!!!");
}
void loop()
{
  Serial.write((byte) cptSerial.read() & 0x7F);
}


Alors j'ai essayé avec et sans optocoupleur (avec une résistance de 330ohm entre la sortie tic et l'optocoupleur) et j'ai même essayé sur un autre ordinateur (le mien étant sous Linux avec Arduino 1.0.1 et l'autre sous windows avec Arduino 1.0.2). Une autre chose bizarre est qu'avec les 2 ordinateurs, je n'ai pas le même résultats (les caractères affiché ne sont pas les mêmes).

J'avoue que la je ne vois pas d'où ça vient.... donc si vous avez des idées ce serait avec grand plaisir que je les écouterai (enfin lirai) :)

Pezioz
Title: Re: Problème récupération téléinfo
Post by: barbudor on Dec 07, 2012, 09:00 pm
Bonjour

Un peu plus de détails sur le schéma que tu utilises serait le bien venu.
As tu un moyen de vérifier à l'oscilloscope ?
As tu bien mis aussi le terminal série d'Arduino à 1200 baud puisque c'est ce que tu règles dans ton sketch.
Title: Re: Problème récupération téléinfo
Post by: skywodd on Dec 07, 2012, 09:13 pm
Bonjour,

Est tu sûr de bien avoir configuré ton terminal série à 1200 bauds (8bits, 1 bit de stop, pas de parité) ?

Autre chose :
Code: [Select]
Serial.write((byte) cptSerial.read() & 0x7F);
Avant de lire un octet il faut être sûr qu'il y a quelque chose à lire ;)

Code: [Select]
while(cptSerial.available() < 1); // Bloque le programme en attendant un octet
Serial.write((byte) cptSerial.read() & 0x7F);
Title: Re: Problème récupération téléinfo
Post by: pezioz on Dec 10, 2012, 10:06 am
Bonjour,

@barbudor: Alors non je n'ai pas les moyens de voir mon signal sur un oscilloscope. :( Et en ce qui concerne le terminal série, oui je l'ai bien réglé en 1200 bauds.

@skywodd: J'ai essayé avec cptSerial.available() < 1, mais ça me donne le même résultat.

Le schema de mon installation est attaché à mon post.

Donc comme vous pouvez le voir, par rapport à ce que j'avais dit, j'ai rajouter une résistance de tirage entre l'optocoupleur et a carte arduino.

C'est à devenir dingue, je n'arrive pas à récupérer ne trame cohérente.

Je vous remercie de votre aide.... j'ai peur de devenir chauve à force de m'arracher les cheveu ;)
Title: Re: Problème récupération téléinfo
Post by: al1fch on Dec 10, 2012, 10:33 am
Bonjour
-sur le schéma la sortie de l'optocoupleur est inversée, il faut mettre l'émetteur du transistor à la masse (simple erreur de schéma ou aussi erreur de câblage ?)
-les leds d'optocoupleurs supportent mal les tensions inverses, mieux vaux mettre une diode en parallèle et en inverse.
-quel est le modele d'optocoupleur utilisé ?

Je découvre le signal 'téléinfo' et je ne comprend pas ou et comment serait effectuée dans ton cas la démodulation du signal.
A moins qu'il existe plusieurs variantes de 'téléinfo' et que le signal ne soit pas toujours du type décrit içi :
http://www.planete-domotique.com/blog/2010/03/30/la-teleinformation-edf/ (http://www.planete-domotique.com/blog/2010/03/30/la-teleinformation-edf/)
Sur ces schémas  le signal téléinfo est alternatif et modulé (présence/absence de 50kHz). Un optocoupleur rapide est utilisé suivi d'une mise en forme et d'une démodulation par monostable. Il est peut etre possible de faire plus simple, juste avec un optocopleur 'lent,' mais ça demande sans doute un certain tâtonnement pour trouver la bonne résistance de pull-up....
Title: Re: Problème récupération téléinfo
Post by: fdufnews on Dec 10, 2012, 10:51 am
L'information de téléinfo module une porteuse à 50kHz. Ton montage fonctionne correctement si l'optocoupleur est lent, sinon l'arduino reçoit des impulsions supplémentaires et il perd les pédales.
Un montage plus élaboré là : http://www.planete-domotique.com/blog/2010/03/30/la-teleinformation-edf/ (http://www.planete-domotique.com/blog/2010/03/30/la-teleinformation-edf/)

Accessoirement, il faut aussi que la sortie de l'information téléinfo soit activée sur ton compteur. Sinon tu ne récupères que l'identifiant du compteur si mes souvenirs sont bons.
Title: Re: Problème récupération téléinfo
Post by: bluemax2001 on Dec 10, 2012, 01:36 pm
regarde là : http://arduino.cc/forum/index.php/topic,108382.0.html
mes deux montages en espérant avec était clair.
Title: Re: Problème récupération téléinfo
Post by: pezioz on Dec 10, 2012, 01:50 pm
Rebonjour,

@fdufnews: Oui ma sortie téléinfo est activée sur mon compteur. L'optocoupleur utilisé est ls PC817 (datasheet : http://www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDwQFjAB&url=http%3A%2F%2Fwww.datasheetcatalog.org%2Fdatasheet%2FSharp%2FmXruvuu.pdf&ei=Z9fFULfXCK6P4gTMp4GgBQ&usg=AFQjCNGsD85IT74dLn8jahRAXGyqR7IqTg (http://www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDwQFjAB&url=http%3A%2F%2Fwww.datasheetcatalog.org%2Fdatasheet%2FSharp%2FmXruvuu.pdf&ei=Z9fFULfXCK6P4gTMp4GgBQ&usg=AFQjCNGsD85IT74dLn8jahRAXGyqR7IqTg))

@al1fch: Pour le sens de branchement de l'optocoupleur je pourrais te le dire ce soir. Le modèle d'optocoupleur est celui que j'ai cité juste au dessus. Et pour le diode inverse je savais pas. En attendant que j'en commande un je peux continuer sans?

Merci beaucoup de votre aide ... ca fais du bien de se sentir moins seul :)

Je vous tiens au jus ce soir!

Title: Re: Problème récupération téléinfo
Post by: al1fch on Dec 10, 2012, 03:48 pm
Quote
@al1fch: Pour le sens de branchement de l'optocoupleur je pourrais te le dire ce soir. Le modèle d'optocoupleur est celui que j'ai cité juste au dessus. Et pour le diode inverse je savais pas. En attendant que j'en commande un je peux continuer sans?

Si l'amplitude du signal teleinfo ne dépasse pas 5V (?) l'optocoupleur choisi peut tenir 'un cetain temps' puisqu'il supporte 6V en inverse......
Tu n'as pas une petite diode, voire une petite led à mettre en parallèle avec l'entrée de l'optocoupleur ?
Title: Re: Problème récupération téléinfo
Post by: pezioz on Dec 11, 2012, 09:38 am
Bonjour à tous,

Alors je reviens vers vous pour vous epliquer ce que j'ai fais hier soir.

Comme me l'a suggéré skywodd j'ai un peu modifié mon code pour prendre en compte les octets uniquement lorsque ceux ci sont disponible (c'est vrai ca sonne mieux avec available ;) ):

Code: [Select]
while(cptSerial.available() < 1); // Bloque le programme en attendant un octet
Serial.write((byte) cptSerial.read() & 0x7F);


Et j'ai modifié mon schema elec en rajoutant une diode inverse en entrée de l'optocoupleur comme l'a suggéré al1fch. J'ai aussi bien verifié le branchement de l'optocoupleur en sortie.

Alors avec tout ça que se passe-t-il? => Rien :( ... je ne récupère aucun octets.
Ensuite j'ai essayé de modifier le UCSROC mais le problème est que je ne sais pas trop ce que je fais.

De plus je suis sur que ma teleinfo fonctionne, car avant j'avais un capteur commercial et il me récupérait bien ma teleinfo. Donc c'est forcement un problème soft ou hard. Pour le soft je me dis quand même que le programme est pas bien compliqué, et que ce même code fonctionne chez d'autres personnes (vu sur internet). Et le hard j'ai fais toutes les modifs que vous m'avez preconisées.

Aidez moi svp, là je sèche vraiment!

En ésperant qu'une idée de génie me traversera l'esprit aujourd'hui (laissez moi un peu révé ;) ).

Bonne journée à vous en tout cas et encore merci de l'aide que vous m'apportez :)

Pezioz
Title: Re: Problème récupération téléinfo
Post by: bluemax2001 on Dec 11, 2012, 12:05 pm
Si tu as vu mon lien, au dessus, je n'ai pas réussi à avoir le signal depuis un UNO et l'optocoupleur + R par contre il fonctionne très bien avec mon 2560. Je ne sais pas pourquoi ...

Title: Re: Problème récupération téléinfo
Post by: al1fch on Dec 11, 2012, 01:05 pm
L'émetteur de l'opto coupleur est donc bien à la masse sur le montage réel ?

Aucun octet récupéré ? pas d'oscilloscope disponible ?

Tenter dans un premier temps d'augmenter par palier la résistance de tirage entre Vcc et le collecteur de l'optocoupleur :
10k -> 22k -> 47k ->100K  Si ça ne donne rien réduire  cette résistance  10k -> 4,7k -> 2,2k -> 1k

Un montage ultra simplifié comme celui là  (un opto + deux résistances) est très tributaire des caractéristiques individuelles du composant utilisé. Les opto-coupleurs ont en général de fortes dispersions dur certains de leurs parametres (ratio courant sortie/courant entrée, bande passante...). On compte içi sur l'optocoupleur et sa lenteur relative pour démoduler grossièrement le signal.... c'est une utilisation un peu marginale de ce composant et il n'est pas surprenant que ça demande un peu d'adaptation
Title: Re: Problème récupération téléinfo
Post by: barbudor on Dec 11, 2012, 01:28 pm
Tu peux une petite mise a jour de ton schéma ?
Title: Re: Problème récupération téléinfo
Post by: Artouste on Dec 11, 2012, 01:56 pm

...
Tenter dans un premier temps d'augmenter par palier la résistance de tirage entre Vcc et le collecteur de l'optocoupleur :
10k -> 22k -> 47k ->100K  Si ça ne donne rien réduire  cette résistance  10k -> 4,7k -> 2,2k -> 1k


Bonjour al1fch
Bonne suggestion , et si dispo pour test plus simple sur "paillasse" utiliser un potentiomètre (100K ou 220K* ) câblé en résistance variable
et voir si "ça fini par tomber en marche" et que donc "ça cause dans le poste", si c'est le cas ensuite cerner les limites basses/hautes de R et "taper" sur une valeur fixe de R
"standard" au plus proche de la moyenne.
Perso si dispo je prendrais un 100 ou 220K en courbe log  8)
Title: Re: Problème récupération téléinfo
Post by: al1fch on Dec 11, 2012, 02:04 pm
Bonjour Artouste
potentiometre OK mais pas sans résistance de  'butée' 1K en série  :smiley-mr-green:
Title: Re: Problème récupération téléinfo
Post by: pezioz on Dec 11, 2012, 02:18 pm
Rebonjour à tous,

Je vous joins avec ce message le schema éléctrique mis à jour.

Pour essayer avec différentes valeurs de résistance je ferais ça ce soir.

En tout cas merci beaucoup de votre aide à tous!!

Pezioz
Title: Re: Problème récupération téléinfo
Post by: Artouste on Dec 11, 2012, 02:23 pm

Bonjour Artouste
potentiometre OK mais pas sans résistance de  'butée' 1K en série  :smiley-mr-green:

:smiley-mr-green:
bien evidemment  8)
Title: Re: Problème récupération téléinfo
Post by: pezioz on Dec 11, 2012, 02:33 pm
Juste une petite question, qu'est ce que vous appelé une résistance de butée? C'est une résistance mise en série ou parallèle du potentiomètre?

Toujours un grand merci à vous tous!
Title: Re: Problème récupération téléinfo
Post by: Artouste on Dec 11, 2012, 02:38 pm

Juste une petite question, qu'est ce que vous appelé une résistance de butée? C'est une résistance mise en série ou parallèle du potentiomètre?

Toujours un grand merci à vous tous!

c'est ce que l'on apelle une resistance talon
cela conditionne la valeur residuelle
elle est évidemment à mettre en serie du potentiomètre cablé en résistance variable
Title: Re: Problème récupération téléinfo
Post by: barbudor on Dec 11, 2012, 08:16 pm
Il me semble qu'il manque toujours le filtrage de la porteuse téléinfo.
SoftwareSerial ne va rien n'y comprendre.
Title: Re: Problème récupération téléinfo
Post by: al1fch on Dec 11, 2012, 08:26 pm
Bonsoir Barbudor
En fait l'idée dans ce genre de schéma minimal qui semble fonctionner chez certains c'est que l'opto soit suffisement lent pour ne pas 'passer' le 50kHz. Il integre les 'impulsions' (50k monoalternance) et sort la valeur moyenne....  il faut donc que cette valeur moyenne passe en dessous le seuil Vcc/2 quand le 50kHz est présent... La tension de sortie de l'opto remontant )à +5V quand le 50k disparait....
Donc dépendence assez forte avec les caractéristiques individuelles de l'opto et la résistance de collecteur.
Si j'avais accès à mon compteur EDF j'opterai personnellement sur le schéma 'normal' = opto rapide+trigger+monostable !
Title: Re: Problème récupération téléinfo
Post by: barbudor on Dec 11, 2012, 08:33 pm
Bonsoir Al1ch

Quels genre d'opto coupleurs sont assez lents pour çà ?
Le bon vieux TIL111 est à 10µs tout juste.
Y'a plus lent ?
Title: Re: Problème récupération téléinfo
Post by: al1fch on Dec 11, 2012, 08:44 pm
Je ne connais pas les caractéristiques des optos d'aujourd'hui !!
Je peux t'assurer qu'à l'époque des TIL111 leurs copains à sortie Darlington étaient d'une lenteur assurée !
En regardant la doc du composant choisi par Pezioz (PCS817) je vois qu'avec une résistance de 10k en sortie la bande passante est inférieure à 5kHz. On lui suggère d'augmenter cette résistance, le 50kHz n'a plus aucune chance !!
Toujours à 10k les temps de montée/descente sont d'environ 100µs. Donc c'est bien un 'lent' !!
D'ailleurs en voyant les valeurs du CTR (ratio courant sortie/courant entrée) supérieur à 1 je présume qu'il y dedans du darlington même si le schéma ne le montre pas. Ou alors la technologie a beaucoup évolué.
Title: Re: Problème récupération téléinfo
Post by: Artouste on Dec 11, 2012, 09:03 pm

Je ne connais pas les caractéristiques des optos d'aujourd'hui !!
Je peux t'assurer qu'à l'époque des TIL111 leurs copains à sortie Darlington étaient d'une lenteur assurée !
En regardant la doc du composant choisi par Pezioz (PCS817) je vois qu'avec une résistance de 10k en sortie la bande passante est inférieure à 5kHz. On lui suggère d'augmenter cette résistance, le 50kHz n'a plus aucune chance !!
Toujours à 10k les temps de montée/descente sont d'environ 100µs. Donc c'est bien un 'lent' !!
D'ailleurs en voyant les valeurs du CTR (ratio courant sortie/courant entrée) supérieur à 1 je présume qu'il y dedans du darlington même si le schéma ne le montre pas. Ou alors la technologie a beaucoup évolué.


si ça se trouve , une bonne vieille LDR avec ses "defauts" en regard d'une led prise sur la téléinfo ferait l'affaire (à l'interfaçage prêt)