Gestion PWM

Bonjour à tous,
Sur une Mega, j'ai ce câblage,
[ARDO]-------->[Inter]--------->[CVOARD]
et ce bout de programme.

pinMode (ARDRO, OUTPUT);
pinMode (CVOARD, INPUT_PULLUP);
analogWrite (ARDRO,255);
Serial.println (analogRead (CVOARD));

Le problème, est que j'ai un doute sur les valeurs que je récupère en lecture .
Quelque soit la valeur généré par ARDO (entre 0 et 255), et quelque soit l'état de l'inter (ouvert ou fermé), les valeurs lues oscillent entre 350 et 450 (ne sont pas stables)
Donc, quelles valeurs suis-je sensé récupérer sur CVOARD ?
Cordialement
JP

Bonjour
J'espère que le programme ne se limite pas à ces 4 lignes.

En dehors du programme lui-même, tu raccordes une sortie MLI (PWM) qui donc sort des impulsions (0 V/5 V) avec un rapport cyclique variable ( 0/100%) et pas une tension ! à une entrée analogique !
A+

Pour compléter, si tu veux une tension "fixe", il faut lisser le PWM avec un filtre RC :

Bonjour à tous,

Schema N°1
[Gnd]----->[contact]----->[CVOARD]
[programme]----->(commande du relai (Marche/Arrêt) et lecture de l'état du contact)
[Gnd]----->[ARDO]----->[relai]

Schema N°2
[Gnd]----->[ARDO]-----[contact]----->[relai]
[programme]----->(commande du relai (Marche, l’Arrêt est fait par le contact) et lecture de l'état du contact)

Je vous explique ce que je voudrais faire...
Le but , c'est d'alimenter un relais (durant 2 mn) suivant l’état du contact et de récupérer également l'état du contact pour traiter d'autres fonctions.
Donc, dans un premier temps (schéma N°1),j'alimente mon relais à partir de ARDO, je le commande à partir de l’état de CVOARD, et la, je récupère bien l'état de CVOARD.
Cette configuration fonctionne correctement, si ce n'est qu'à un moment, l'arduino s'est planté et malgré que le contact (fin de course) se soit ouvert, le relais ne s'est pas coupé, le moteur à continué de tourner, s'est trouvé en butée, et hop destruction d'engrenages.
Donc, je modifie mon câblage (schema N°2) et maintenant, le relais est coupé "électriquement" par le contact.
Donc, le programme fonctionne bien, et le relais est bien coupé par le fin de course.
Mais, maintenant je ne peux plus lire l'état du contact (hormis pendant les 2 mn ou ARDO commande le relai).
Je cherche donc un moyen de lire l'état du contact lorsqu'il n'est pas commandé par ARDO.
J'ai donc fais un essai avec PWM en me disant que si je génère un valeur qui ne "colle" pas le relais, je pourrais peut être récupérer sur CVOARD une valeur différente suivant l'état du contact, mais ce n'est pas concluant.
J'avais pensé également générer une fréquence (tone), mais comment tester ce qui arrive sur CVOARD.
Voila, voila, vous avez compris que je cherche une combine pour vérifier l'état de mon contact quand il n'y a rien sur son entrée (pas de Gnd, pas de 5V) donc entrée "en l'air").
Cordialement
JP

Bonjour
Plusieur solutions :

  • mettre le (les) contact(s) de fin de course entre le contact du relais et le moteur; le relais peut rester actionné, le moteur s'arrête; on peut lire l'état du relais ou l'état du fin de course si celui-ci a un contact qui se ferme lorsqu'il est actionné.
  • mettre un contact repos sur le relais, lorsqu'il n'est pas actionné, ce contact se ferme et on lit l'état du relais.
  • utiliser un interface en // sur les sorties du relais (optocoupleur ?).
    Cela dépend beaucoup du type de moteur (5v continu, 220v , 380v,).
    A+

Bonjour à tous,
J'avais envisagé toute ces solutions "physique".
Malheureusement ce n'est pas possible car je ne peux plus modifier mes circuits imprimés (enfichés sur l'arduino).
Si j'avais anticipé ce problème de plantage de l'arduino, j’aurais crée mes CI en conséquence, mais maintenant c'est trop tard.
Il faut que j' essai de trouver une solution "logiciel".
Cordialement
JP