Je suis debutant en Arduino et je me pose une question à laquelle je ne trouve pas de reponse (pas evident de chercher quand on est meme pas sur du terme utilisé...)
Apres un petit projet de regulation de niveau d'eau avec une carte Uno, je me lance de la creation d'une alarme pour remplacer la vielle alarme electronique qui a 30 ans sur la base d'une Mega.
Pour revenir a ma question, lors de mon premier projet lorsque je declarais des entrées numerique ( avec des capteurs de niveau type "poire") lorsque le contact etait fermé donc le 5V sur l'entrée cela fonctionnait tres bien. En revanche lorsque le contact du capteur etait ouvert alors là c'etait de l'aletoire... j'ai resolu le probleme en resolvant le probleme comme sur l'image suivante....
le probleme c'est que pour mon prochain projet si j'utilise la meme methode cela va me prendre une place monstre au vu du nombre d'entrées digitale qu'il va y avoir !
Pouvez m'indiquer une autre methode ?
Hache76:
le probleme c'est que pour mon prochain projet si j'utilise la meme methode cela va me prendre une place monstre au vu du nombre d'entrées digitale qu'il va y avoir !
Pouvez m'indiquer une autre methode ?
Bonsoir
oui peut etre ! mais ça represente combien de points d'entrées ?
As tu entendu parler des pull-up internes ? Elles peuvent t'éviter de câbler des résistances.
Cet horrible terme désigne des résistances internes au microcontroleur qui peuvent être connectées par programmation entre l'entrée et le Vcc. --> pinMode(x, INPUT_PULLUP);
La valeur de ces résistances est 50kohms +/-20kohms
Il te suffira de déplacer les contacts entre la masse et l'entrée, et de corriger la logique puisque mantenant un contact ouvert fera un 1_logique et un contact fermé un 0_logique.
68tjs:
As tu entendu parler des pull-up internes ? Elles peuvent t'éviter de câbler des résistances.
Cet horrible terme désigne des résistances internes au microcontroleur qui peuvent être connectées par programmation entre l'entrée et le Vcc. --> pinMode(x, INPUT_PULLUP);
La valeur de ces résistances est 50kohms +/-20kohms
Il te suffira de déplacer les contacts entre la masse et l'entrée, et de corriger la logique puisque mantenant un contact ouvert fera un 1_logique et un contact fermé un 0_logique.
Effectivement je me doutais que mes recherches restées dans reponses a cause d'un vocabulaire incorrect... Je te remercie des informations, ca semble correspondre a ce que je recherche !
Un simple montage des contacts en parallèle peut aussi économiser des entrées, ça revient à faire une fonction OU câblée.
Si int1 OU int2 OU int3 = 1... alors faire sonner l'alarme.
Christian_R:
Un simple montage des contacts en parallèle peut aussi économiser des entrées, ça revient à faire une fonction OU câblée.
Si int1 OU int2 OU int3 = 1... alors faire sonner l'alarme.
effectivement le basculement du relais de la sirene d'alarme sera comme ca, mais je prefere garder toutes les boucles distinctes sur l'arduino pour les futurs evolution cela permettra de savoir exactement quel point d'entré est ouvert. Merci de ton conseil.
Bonour,
Tu peux facilement augmenter le nombre de contact par entrée, en utilisant les entrées analogiques.
Les contacts d'alarme étant NF, hors alarme, il suffit d'en mettre 4 ou 5 en parallèle, chaque contact court-circuitant une résistance de valeur différentes (500 ohms, 1k,2k,3k,5k). Un coté du montage au GND et l'autre sur l'entrée analogique. Lors de l'ouverture d'un contact, cette résistance formera un diviseur de tension avec une autre résistance (10k) au +5v d'un coté et à l'entrée analogique de l'autre. Il ne reste plus qu'à récupérer cette valeur pour avoir la ou les zones concernés en cas d'ouverture de plus de un contact et éventuellement ajuster la valeur des résistances pour avoir un écart suffisant, en fonction des combinaisons possibles. Sur un Uno tu dispose de 6 entrées ana soit, en prenant 5 contacts en // 30 zones identifiables