Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Protection entrées analogique Arduino

683 views
Skip to first unread message

Tonton Th

unread,
Apr 14, 2015, 3:32:38 AM4/14/15
to
Bonjour.

Je traite des données analogiques qui évoluent entre 1 et 10 volts
avec un Arduino. No Problemo : un pont diviseur 2 x 5k fait la
chose très bien.

Hélas, j'ai certains équipements qui envoient parfois des glichs
du genre 12v ou -2v, et j'ai bien peur que ça ne grille l'AVR.

Quelles méthodes de protection puis-je utiliser pour bloquer ces
impulsions malsaines sans perdre la linéarité dans la plage de
données ?


tTh.

--
THSF --- http://weblog.mixart-myrys.org/?post/2015/04/Pr%C3%A9visions-THSF-2015

Albert ARIBAUD

unread,
Apr 14, 2015, 3:42:03 AM4/14/15
to
Bonjour Tonton,

Le Tue, 14 Apr 2015 07:33:19 +0000 (UTC), Tonton Th
<t...@nowhere.invalid> a écrit :

> Bonjour.
>
> Je traite des données analogiques qui évoluent entre 1 et 10 volts
> avec un Arduino. No Problemo : un pont diviseur 2 x 5k fait la
> chose très bien.
>
> Hélas, j'ai certains équipements qui envoient parfois des glichs
> du genre 12v ou -2v, et j'ai bien peur que ça ne grille l'AVR.
>
> Quelles méthodes de protection puis-je utiliser pour bloquer ces
> impulsions malsaines sans perdre la linéarité dans la plage de
> données ?

Je ne suis pas spécialiste, et tu n'as pas précisé la plage de données
que tu veux préserver, mais pour la limitation "haute", peut-être qu'une
diode Zener de 4.7v en parallèle avec la résistance de 5k placée entre
le 0V et l'entrée analogique) conviendrait ?

Pour ce qui est des tensions inverses, en revanche, je n'ai pas d'idée
immédiate qui ne laisse pas passer du négatif résiduel. Pas
spécialiste. :)

> tTh.
>


Amicalement,
--
Albert.

JKB

unread,
Apr 14, 2015, 4:42:15 AM4/14/15
to
Le Tue, 14 Apr 2015 09:41:32 +0200,
Albert ARIBAUD <albert....@free.fr> écrivait :
Idem, mais avec une diode.

JKB

--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr
=> http://loubardes.de-charybde-en-scylla.fr

Albert ARIBAUD

unread,
Apr 14, 2015, 5:26:03 AM4/14/15
to
Bonjour JKB,

Le Tue, 14 Apr 2015 08:42:15 +0000 (UTC), JKB <j...@koenigsberg.invalid>
a écrit :

> Le Tue, 14 Apr 2015 09:41:32 +0200,
> Albert ARIBAUD <albert....@free.fr> écrivait :
> > Bonjour Tonton,
> >
> > Le Tue, 14 Apr 2015 07:33:19 +0000 (UTC), Tonton Th
> ><t...@nowhere.invalid> a écrit :
> >
> >> Bonjour.
> >>
> >> Je traite des données analogiques qui évoluent entre 1 et 10 volts
> >> avec un Arduino. No Problemo : un pont diviseur 2 x 5k fait la
> >> chose très bien.
> >>
> >> Hélas, j'ai certains équipements qui envoient parfois des glichs
> >> du genre 12v ou -2v, et j'ai bien peur que ça ne grille l'AVR.
> >>
> >> Quelles méthodes de protection puis-je utiliser pour bloquer ces
> >> impulsions malsaines sans perdre la linéarité dans la plage de
> >> données ?
> >
> > Je ne suis pas spécialiste, et tu n'as pas précisé la plage de données
> > que tu veux préserver, mais pour la limitation "haute", peut-être qu'une
> > diode Zener de 4.7v en parallèle avec la résistance de 5k placée entre
> > le 0V et l'entrée analogique) conviendrait ?
> >
> > Pour ce qui est des tensions inverses, en revanche, je n'ai pas d'idée
> > immédiate qui ne laisse pas passer du négatif résiduel. Pas
> > spécialiste. :)
>
> Idem, mais avec une diode.

Entre le point milieu du pont diviseur et l'entrée analogique, passant
dans le sens "entrant", je suppose, afin d'empêcher l'entraînement de
l'entrée sous le zéro volts ?

Si je ne me trompe pas, ça va induire un offset dans la tension
mesurée, non ?

> JKB

Amicalement,
--
Albert.

JKB

unread,
Apr 14, 2015, 5:48:34 AM4/14/15
to
Le Tue, 14 Apr 2015 11:23:39 +0200,
Entre la masse et l'entrée du CAN. Au pire, tu auras la tention de
déchet de la diode en négatif, pas vraiment de quoi cramer le CAN.
Sinon, il est toujours possible d'utiliser une diode au géranium :-P

> Si je ne me trompe pas, ça va induire un offset dans la tension
> mesurée, non ?

Non, aucune raison.

> Amicalement,

Cordialement,

JKB

unread,
Apr 14, 2015, 5:52:39 AM4/14/15
to
Le Tue, 14 Apr 2015 11:23:39 +0200,
À la limite, ceci devrait faire l'affaire :

--RRRR------RRRRR---GND
|
|
| Zener
+-----|<|---GND
|
ARDUINO


Lorsque la tention en tête de l'arduino dépasse Vz, elle est limitée
par la Zener en inverse. Lorsqu'elle devient négative, elle est
limitée par la Zener dans le sens direct.

La tention à l'entrée du CAN sera donc comprise entre -Vd (-0,7V à
la louche) et +Vz. Tu peux mettre une diode au germanium ou une
Schottky en parallèle à la Zener.

Tonton Th

unread,
Apr 14, 2015, 6:16:23 AM4/14/15
to
On 2015-04-14, Albert ARIBAUD <albert....@free.fr> wrote:
> Bonjour Tonton,
>
>> Je traite des données analogiques qui évoluent entre 1 et 10 volts
>> avec un Arduino. No Problemo : un pont diviseur 2 x 5k fait la
>> chose très bien.
>>
>> Hélas, j'ai certains équipements qui envoient parfois des glichs
>> du genre 12v ou -2v, et j'ai bien peur que ça ne grille l'AVR.
>>
>> Quelles méthodes de protection puis-je utiliser pour bloquer ces
>> impulsions malsaines sans perdre la linéarité dans la plage de
>> données ?
>
> Je ne suis pas spécialiste, et tu n'as pas précisé la plage de données

De 1 à 10 volts, et entre 0 et 1, c'est "je sais pas"

> que tu veux préserver, mais pour la limitation "haute", peut-être qu'une
> diode Zener de 4.7v en parallèle avec la résistance de 5k placée entre
> le 0V et l'entrée analogique) conviendrait ?

4.7 * 2 -> 9.4 je risque de perdre un peu en haut, non ?
Ceci dit, en changeant le pont diviseur, ça peut aller.

> Pour ce qui est des tensions inverses, en revanche, je n'ai pas d'idée
> immédiate qui ne laisse pas passer du négatif résiduel. Pas
> spécialiste. :)

Moi non plus, mes années électroniques sont très loin ;)

--
THSF == http://weblog.mixart-myrys.org/?post/2015/04/Pr%C3%A9visions-THSF-2015

JKB

unread,
Apr 14, 2015, 6:19:51 AM4/14/15
to
Le Tue, 14 Apr 2015 10:17:04 +0000 (UTC),
Tonton Th <t...@nowhere.invalid> écrivait :
Est-ce que tu as jeter un coup d'oeil à ma proposition ?

Tonton Th

unread,
Apr 14, 2015, 6:27:46 AM4/14/15
to
On 2015-04-14, JKB <j...@koenigsberg.invalid> wrote:

>>> >> Je traite des données analogiques qui évoluent entre 1 et 10 volts
>>> >> avec un Arduino. No Problemo : un pont diviseur 2 x 5k fait la
>>> >> chose très bien.
>>> >>
>>> >> Hélas, j'ai certains équipements qui envoient parfois des glichs
>>> >> du genre 12v ou -2v, et j'ai bien peur que ça ne grille l'AVR.
>
> À la limite, ceci devrait faire l'affaire :
>
> --RRRR------RRRRR---GND
> |
> |
> | Zener
> +-----|<|---GND
> |
> ARDUINO
>
>
> Lorsque la tention en tête de l'arduino dépasse Vz, elle est limitée
> par la Zener en inverse. Lorsqu'elle devient négative, elle est
> limitée par la Zener dans le sens direct.

À première vue, oui, ça me semble faire l'affaire, et quelques
tests à l'oscillo pouront confirmer la chose. Bon sang, où ai-je
pu ranger ce tektro ?-)

En tout cas, merci de ton attension.

jules

unread,
Apr 14, 2015, 6:33:56 AM4/14/15
to

> Je traite des données analogiques qui évoluent entre 1 et 10 volts
> avec un Arduino. No Problemo : un pont diviseur 2 x 5k fait la
> chose très bien.
>
> Hélas, j'ai certains équipements qui envoient parfois des glichs
> du genre 12v ou -2v, et j'ai bien peur que ça ne grille l'AVR.

>
> Quelles méthodes de protection puis-je utiliser pour bloquer ces
> impulsions malsaines sans perdre la linéarité dans la plage de
> données ?

En premier chercher dans la doc les informations sur les protections des
entrées. Tu n'es pas le premier qui pense faire entrer de l'analogique
dans une circuit logique.

Ce qui compte c'est l'énergie dans le glitch, pas trop sa tension, les
circuits sont naturellement protégés par des diodes.

Figure 14-1. I/O Pin Equivalent Schematic
dans
Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf
à l'adresse
http://www.atmel.com%2Fimages%2FAtmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf&ei=RuosVeS3GoGPsAGnpoGIAw&usg=AFQjCNHuoxAvN-EBktnxqF4-_otWYsj7yg&sig2=LkruD-PmxUi5nlKdCFnIBA

> Voltage on any Pin except RESET
> with respect to Ground . . . . . . . . . .-0.5V to VCC+0.5V

> 14. I/O-Ports
> 14.1 Overview
> All AVR ports have true Read-Modify-Write functionality when used as general digital I/O ports. This means that
> the direction of one port pin can be changed without unintentionally changing the direction of any other pin with
> the SBI and CBI instructions. The same applies when changing drive value (if configured as output) or
> enabling/disabling of pull-up resistors (if configured as input). Each output buffer has symmetrical drive
> characteristics with both high sink and source capability. The pin driver is strong enough to drive LED displays
> directly. All port pins have individually selectable pull-up resistors with a supply-voltage invariant resistance. All
> I/O pins have protection diodes to both VCC and Ground as indicated in Figure 14-1. Refer to ”Electrical
> Characteristics – (TA = -40°C to 85°C)” on page 299 for a complete list of parameters.


0 new messages