Nouvelles:

Bienvenue au Forum de discussion Électro-Bidouilleur! Inscrivez-vous pour participer aux discussions!: 
https://forum.bidouilleur.ca/index.php?action=signup Les demandes d'inscription sont révisées quotidiennement.

Menu principal

Le projet arduino d'un gros noob.

Démarré par Zofran, Décembre 09, 2023, 11:58:24 AM

« précédent - suivant »

Zofran

Hello,

Je suis en train de faire joujou avec un arduino.
Mon projet fonctionne bien quand je le simule avec tinkercad, mais le doute m'habite.

J'ai le sentiment qu'il y a un gros court-circuit que je ne vois pas ... C'est réalisable ce montage ou ça va complètement griller ?  ;D



papyblue

Bonjour,
Je ne vois pas bien à quoi peut servir ce montage  mais en tout cas cela ne peut pas détruire la carte.

Zofran

#2
Oui, sans contexte difficile d'imaginer à quoi peut servir ce montage.

Imaginons que j'ai une 100ènes de faisceaux contenant 25 câbles à fabriquer avec à chaque extrémité un connecteur.
Sans un appareil, je dois câbler le "connecteur mère", puis pour câbler le connecteur secondaire je dois "sonner" chaque câbles afin de les connecter sur la bonne pin du connecteur secondaire.

Avec mon projet arduino, je vais pouvoir connecter le "connecteur mère" sur l'arduino (chaque sorties de mon schéma correspond à une pin du connecteur).
Coté connecteur secondaire, en touchant un câble grâce au fil noir (GND), ça va me dire sur quelle pin je dois connecter mon câble dans le connecteur secondaire. Je ne sais pas si je suis assez clair ...  ;D

Pour l'exemple du câblage plus haut (je ne prend pas en compte la chute de tension des diodes dans le calcul des résistances et je n'ai fait que trois sortie pour tester) :
Il s'agit de deux ponts diviseur de tension avec une petite formule qui convertit en résistance :

Cas 1 (câblage de mon premier poste, fil GND sur la sortie C) :
Pont diviseur de tension A1 : 300 ohms
Pont diviseur de tension A2 : 100 ohms
==> Alors l'arduino me dit que c'est la sortie C

Cas 2 (câblage de mon premier poste mais j'ai les câbles en sortie A et B qui se touchent).
Les diodes en sortie A et B empêche le shunt
Pont diviseur de tension A1 : 300 ohms
Pont diviseur de tension A2 : 100 ohms
==> Alors l'arduino me dit que c'est la sortie C

Cas 3 (câblage de mon premier poste mais je touche sans faire exprès la sortie B et C avec mon fil noir (GND))
Pont diviseur de tension A1 : 200 ohms
Pont diviseur de tension A2 : 100 ohms
==> Normalement ça devrait être 300 Ohms en A1 pour que l'arduino m'indique la sortie C mais ce n'est pas le cas.
Alors l'arduino me dit que j'ai plusieurs sorties qui touchent le GND. (donc je dois bien faire attention de ne toucher qu'un câbles avec le fil GND).

philchamp51

#3
Bonjour.
Pourquoi veux-tu fonctionner avec des ponts diviseurs de tension ? Cela complique les choses. Si tu as besoin de beaucoup de connexions, tu devrais prendre un Arduino Mega 2560 qui possède 54 entrées/sorties et un afficheur LCD 1602. Avec un programme simple, cela qui t'indiquera sur quelle pin tu es de l'autre côté du câble.

papyblue

Bonjour,
On peut imaginer une solution où il y aurait d'un côté un Arduino avec des UARTs soft (autant que nécessaire) émettant un message avec le numéro du fil et de l'autre côté un autre arduino visualisant le n° du fil reçu. Le retour de masse se faisant soit avec un fil dédié soit par la terre.Tout autre protocole peut être imaginé vu que d'un côté on ne fait que émettre et de l'autre que recevoir.

Zofran

#5
Citation de: philchamp51 le Décembre 10, 2023, 01:24:19 AM
Bonjour.
Pourquoi veux-tu fonctionner avec des ponts diviseurs de tension ? Cela complique les choses. Si tu as besoin de beaucoup de connexions, tu devrais prendre un Arduino Mega 2560 qui possède 54 entrées/sorties et un afficheur LCD 1602. Avec un programme simple, cela qui t'indiquera sur quelle pin tu es de l'autre côté du câble.
Ayant déjà un arduino uno et aussi quelques atmega328 je n'ai pas du-tout envisagé d'utiliser un Mega 2560. C'est pour ça qu'avec le manque d'entrée, j'avais envisagé l'utilisation du pont diviseur.
Il est vrai qu'avec le nombre d'entrée suffisant du Mega 2560, ce serait plus simple.

Admettons que je veuille quand même poursuivre avec mon arduino uno, j'ai découvert hier, via une vidéo youtube, le registre à décalage 74HC165, est ce que ça pourrait faire le job pour ajouter des entrées supplémentaires ?

Si ça peut faire le job, ça va me permettre de m'amuser à coder deux méthodes différentes... C'est le but du projet, mettre les doigts dans l'arduino et apprendre à coder.

philchamp51

Dans ce cas, il y a des petits modules d'extension de ports IO en I2C.
16 ports par module et avec 3 adresses I2C possibles, tu peux en mettre 3, soit 48 ports supplémentaires pour quelques euros sur AliExpress et à toi le codage qui sera assez simple.

philchamp51

Sinon avec le 74HC165 ça peut fonctionner, il y a des exemples sur le net

https://hl4rny.tistory.com/532

philchamp51

@zofran

Quelle solution as-tu adopté au final ?

Zofran

#9
J'attends de recevoir des composants pour faire mes premiers essais.

J'ai acheté des 74HC165 et des mini-plaquettes PCF8575, j'ai envie de tester ces deux approches.

J'ai aussi vu (mais pas acheté) les MCP23017, qui semblent avoir le même fonctionnement que les PCF8575, disponible au format DIP, plus facile à souder pour mon montage final.

kamill

#10
Bonjour,

Le MCP23017 est un circuit plus moderne (un peu plus cher aussi), c'est un vrai circuit bidirectionnnel.
Le PCF8575 est un circuit "quasi bidirectionnel" comme indiqué dans la datasheet. C'est à dire que pour l'utiliser en entrée il faut un programme particulier. Simple d'utilisation en sortie, un peu moins simple d'utilisation en entrée. Sur arduino, il y a des librairies qui gèrent ça.

philchamp51

Citation de: Zofran le Décembre 24, 2023, 11:20:04 AM
J'attends de recevoir des composants pour faire mes premiers essais.

J'ai acheté des 74HC165 et des mini-plaquettes PCF8575, j'ai envie de tester ces deux approches.

J'ai aussi vu (mais pas acheté) les MCP23017, qui semblent avoir le même fonctionnement que les PCF8575, disponible au format DIP, plus facile à souder pour mon montage final.

Bonjour.

Où en es-tu de tes essais ? Je suis curieux de connaître tes résultats.

Zofran

Hello,

Le projet en tant que tel n'a pas beaucoup avancé.

Par contre j'ai appris à faire plein de trucs de débutant qui me seront utile pour le projet.

J'ai réussi à programmer un ATMEGA328 et l'utiliser en "standalone" (sans bootloader et en utilisant l'horloge interne).
J'arrive à afficher ce que je veux sur un écran LCD 16*2.
Je commence à bien comprendre l'usage des fonctions(paramètres) afin d'éviter des répétitions et de faciliter la lecture du code dans arduino IDE.
A partir d'un datasheet, je sais maintenant convertir une adresse I2C binaire en hexadécimal.

Je pense partir sur ce qui me semble le plus simple pour mon projet, le MCP23017 (avec la librairie adafruit), j'ai reçu l'échantillon la semaine dernière. Pour l'instant je l'ai juste branché et fais mumuse avec le choix de l'adresses I2C, j'ai aussi réussi la lecture de l'action d'un bouton poussoir sur une entrée.

philchamp51

Hello.

Et bien, nous sommes beaucoup à avoir commencé comme toi.
Me concernant, j'ai fait des petits essais, des petits programmes avant d'en faire qui ont plusieurs centaines et centaines de lignes maintenant.
Au fur et à mesure, tu vas te prendre au jeu et complexifier tes programmes.
C'est fabuleux ce qu'on peut faire avec des micro contrôleurs. Arduino, puis ESP8266 pour te familiariser avec des objets connectés, puis l'ESP32.
Il y en a plein d'autres. Les PIC, les Pico, etc.
Bonne continuation
Phil.

philchamp51

Mais tiens au courant quand même de ta réalisation et la présenter une fois terminée.