Merci a toi et https://easyeda.com/Envoyé par mag1Joli, ce dessin en #118, j'avais pas vu.
Euh, les polarisés c'est lesquels ?Envoyé par mag1Règle générale, chaque µC doit être découplé par un 100nF céramique au plus près des broches alimentation.
Plus un chimique, règle empirique: 1µF mini par mA véhiculé. Disons 100µA pour le 5v et 470µA pour le 12v. Sur chaque carte, une de chaque côté.
Les morceaux de rubans ?Envoyé par mag1Avec les uln et les morceaux de rubans, il n'y a plus aucune résistance, le µC peut être programmer hors site, serin doit alors être au 0v directement.
Si tu as un PC avec port série (on sait jamais..), la programmation se fait par 3 fils, sinon: cordon USB-série.
C'est fait depuis hier soir, je suis ton tuto.Envoyé par mag1Pour voir un peu le fonctionnement du programme, il y a le simulateur de PE6 (à charger depuis par ex le forum picaxe français, onglet "free software").
Faut cliquer au début sur les broches C.6 et C.3 pour simuler les pullup. Le but n° 10 (C.1 adverse relié à C.5 bloque le jeu par C.5=1, il faut le RAZ pour débloquer)
C.7 et C.4 sont aussi des sorties, non ?
ce qui fait (si j'ai bien compris) =>Autre petite question, Il n'y a qu'un Dong pour les 2 équipes !! je peux brancher C.2 du 2ieme µC sur le dong ? Faut-il dans ce cas, ajouter des diodes ?Code:dirsC= %1001111
Je réponds dans l'ordre:
Le céramique : https://www.gotronic.fr/art-condensa...00-nf-3222.htm
Le chimique: https://www.gotronic.fr/art-condensa...f-25v-3375.htm
La polarité est écrite dessus ...faut pas le mettre à l'envers...
Les morceaux de rubans:
On voit partout des rubans de leds , au mètre, faits de groupement de trois leds avec leur résistance de limitation. Les tronçons de 3 leds sont en parallèle mais peuvent être découpés aux ciseaux, chaque morceau a des pastilles soudables, on coupe au milieu. Conso standard, 20mA par tronçon
La désignation des sorties par DIRS est une bonne habitude. Mais les commandes "high", "low", ou "toggle" désigne les broches en sorties, automatiquement.
Les sorties uln, sont des collecteurs ouverts, on peut les considérer comme de simples interrupteurs (relié au 0v pour les type N) on peut donc, comme des inters, les placer en parallèles, sorties reliées, si un des deux conduit, ça sonne. (rem: il y a une ddp de 1v env. aux bornes de l'uln en conduction)
Alors, finalement, uln, mosfets, lampes, rubans, leds, picaxes ???
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
doc ruban:
https://www.led-flexible.com/blog/co...ed-flexible-n4
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Ok pour les Ruban, je ne pensais pas que tu parlais de cela.
Sinon, j'ai ajouté le Dong pour L'equipe 2 en inversant la position des résistances, j'ai bon ? (j'imagine le pire ) avant de le faire sur tous les autres.
Pour le choix, je me rends compte que l'option µC est largement plus simple et vu mon niveau en électronique cela me parait la meilleurs solution. Mais je regrette l'option sans µC.
Pour les LED ou ampoule, pour conserver l'esprit, je conserve les ampoules, les ampoules 12 Vcc - 100 mA me paraissent un bon compromis ?
Peut-être, faire 2 cartes, une pour la partie µC, l'autre pour les ampoules, le jours ou je bascule sur des leds, la modif sera minime. enfin, vu le coût des composants, peut-être pas besoin.
Pour la programmation, j'ai un boitier Ethernet <-> RS232, ça devrait faire l'affaire.
Sinon, pour ma recup d'alim de PC, ça peut convenir ?
En attendant la validation du modo, pas sûr que le convertisseur Ethernet -rs232 fonctionne. PE6 veut un port COM, si le driver peut émuler un port COM virtuel, faut voir.
Il y a aussi un problème de polarité du signal (voir la page de electromag1).
On trouve des convertisseurs "prolific" en europe, (moins loin que l'asie)
http://www.ebay.fr/itm/USB-vers-RS23...0AAOSw4YdYy~BY
Avec deux inverseurs, montés sur breadboard ou véroboard, ça suffit.
Le cordon AXE027 est un investissement vite amorti si on bricole un peu...
Tu peux aussi essayer la version sans µC, pour voir.
A mon avis, (j'insiste), l'uln supporterait les 12V 100mA. Et si ça marche pas, tu as perdu 70cts.
Pour l'alim, l'alim PC doit convenir (il faut parfois un débit mini sur 5v pour les faire démarrer). Faut vérifier les tensions. Je mettrais bien un polyswitch sur le 12v:
https://www.gotronic.fr/art-polyswitch-rxef050-5820.htm
Pour les ampoules, deux ensemble, ça fait 200mA, donc des Nmos et les résistances, c'est pas pareil... Mais c'est comme tu veux...
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Pour les NMOS, les BS170 suffisent ?
60V 500mA ça suffit non ? ils ont petits
image devrait être validé ?
Je vois (mais l’icône "Image" est plus pratique)
Les 10k sont à placer du côté µC, comme R31
Supprime les R de programmation 10k et 22k (elles étaient inversées, sans gravité) pour programmer ailleurs. serin à 0v.
Le gong ok
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Option µC retenu, Composants commandés...
A suivre....
Bonjour,
Voici ma solution, tu en fais ce que tu veux
Pour chaque côté:
1picaxe 20M2
2 uln 2003 (pas des 2004,voir doc) https://www.gotronic.fr/art-uln2003a-65.htm
un lot de lampes 12v 100mA
un support DIL 20 https://www.gotronic.fr/art-support-...up20l-4599.htm
deux supports DIL 14
un polyswitch ou fusible
des connecteurs à 35 cts les 12 :https://www.gotronic.fr/art-connecteur-l012-15364.htm
les femelles avec fils (pour pas avoir à souder) : https://www.gotronic.fr/art-connecteur-p012-57.htm
Prévoir aussi les connecteurs pour les liaisons inter plaques et les alim 12 et 5 v
Du fil souple pour pour les liaisons, un peu de rigide pour les plaques (1m max)
Une plaque bakélite blocs de 3 pastilles de 10 x20, (à couper en deux), c'est vrai, c'est plus fragile, mais si on décape bien le cuivre, on soude sans problème (c'est mon avis)
En fait, il n'y aura quasiment rien à faire en câblage
Tu te bricoles un programmateur sur ta planche à trous ou tu l'achètes..
Tu programmes, tu branches, et ça fonctionne...
Bonnes parties . A 50 cts la partie, c'est vite remboursé ...
MM
PS On s'est croisés , je sais pas ce que tu as commandé ..
Dernière modification par mag1 ; 11/05/2017 à 11h00.
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
je n'ai pas pris les uln. BS170 pour les buts, et des irf630 pour les groupes d'ampoules.
par contre, j'ai zappé les supports DIL 20.(j'irai a la boutique qui va bien)
Pour l'interconnecter les 2 cartes équipe, je prends du db9.(récup)
Merci pour l’idée d'utiliser la planche a trou pour programmer le 20M2.
Je n'ai donc plus besoin de la partie programmation sur chaque carte d’équipe ?
Question pour la basic.
Comment tu fais une boucle qui tourne n fois ? ou n est une variable.
Exemple :
Code:For integer i = 0 to n .... .... ... .. NEXT
Encore merci a tous les 2.
Ok, pour te simplifier la vie, avec la capacité d'entrée du BS170 et même celle de l'IRF (800pF), on peut se passer de la sécurité des R 390 (la doc picaxe ne la mentionne pas pour l'utilisation d'un IRL530).
Tu penses que ton cordon Ethernet va fonctionner ?
Il y a dans PE6 une procédure de vérification de fonctionnement du cordon, contrôle aller-retour, et polarité du signal.
On peut programmer hors site, sur une platine à part, ou sur site avec les R 10k et 22k câblées. Le cordon d'origine picaxe a un jack, je préfère utiliser trois petits picots (voir la page et la vidéo du cordon éco sur le site);
Le for next, bon, ok, tu n'as pas eu le temps de lire la doc....
En basic picaxe, il n'y a que des entiers. b1,b2,b3 sont des variables "byte", idem avec w1,w2,w3 (word: deux octets)
b1 est une variable, mais b2 et b3 peuvent aussi être des constantes
Avec PE6, il y a une bulle qui apparait pour donner la syntaxe de la commande (curseur sur la commande)Code:for b1=b2 to b3 ;; next
Il y a des petits connecteurs pour circuits imprimés très pratiques (voir au dessus). Mais tu aimes les complications...
A+
MM
Dernière modification par mag1 ; 11/05/2017 à 15h07.
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Mais abréger la vie du µC !
Non ! Avec un NMOS en TO220, on a un courant crête de plus de 100mA sans résistance! Elle est indispensableavec la capacité d'entrée du BS170 et même celle de l'IRF (800pF), on peut se passer de la sécurité des R 390Picaxe, ce n'est pas le fabricant ! Et il peut raconter n'importe quoi sur le plan Hard.la doc picaxe ne la mentionne pas pour l'utilisation d'un IRL530
Le pro qui nous surveille dans l'ombre a parlé. On remet les 390, tu les as achetées, autant qu'elles servent.. Mais pour les BS170, quand même....80pf...
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Oui, je m'en sers au boulot. sinon, je me serais un truc maison.Envoyé par mag1Tu penses que ton cordon Ethernet va fonctionner ?
Ben si, mais ce que j'ai compris.Envoyé par mag1Le for next, bon, ok, tu n'as pas eu le temps de lire la doc....
Ton code un peu modifié
Code:symbol C_BUT = b1 ;Compteur de buts symbol DONG = C.2 ;La cloche symbol BT_RAZ = pinC.3 ;Bouton RAZ symbol L_LOGO = C.4 ;les 3 ampoules de la marque symbol WIN_AD = pinC.5 ;L'adversaire est arrivé à 10 symbol BT_BUT = pinC.6 ;contact quand l'equipe a marqué un but symbol L_BUT = C.7 ;les 4 ampoules du gardien dirsB= %1111111 ;Désiagnation des ports dirsC= %1000111 ;Désiagnation des ports pullup %100100000000000 ;pullup sur C.3 et C6 setint %0000,%1000 ;interruption do do loop while BT_BUT = 1 or WIN_AD = 1 'on bloque que le but soit eteind ou que l'adversaire a gagner do loop while BT_BUT = 0 'tant qu'il n'y a pas de but. if C_BUT > 0 then 'si ce n'est pas le premier on eteind l'ampoule allumée b2 = C_BUT - 1 toggle b2 endif toggle C_BUT 'on allume l'ampoule du But inc C_BUT 'on incremante le compteur If C_BUT <=9 then 'si pas 10 buts Dong + lumiere du gardien high L_BUT pulsout DONG, 100 pause 300 low L_BUT else for b20=0 to 3 'si 10 buts Dong + lumiere du gardien 3 Fois pulsout DONG, 100 high L_BUT high L_LOGO Pause 300 low L_BUT low L_LOGO next endif do loop while C_BUT > 9 loop interrupt: do loop while BT_RAZ=0 pulsout L_LOGO, 100 for C_BUT=0 to 10 pause 100 low C_BUT next pulsout L_LOGO, 100 pulsout L_LOGO, 100 reset return
Pourle cordon, il y amoyen de savoir si il fonctionne ou pas.
Dans la fenêtre de configuration: Port de communication / Configurer et tester / Test du câble de programmation
et suivre la procédure.
Pour la programme, les remarques sont plutôt pour moi.
Dans la bouche principale, il y a un toggle pour éteindre la lampe n-1, un low serait plus explicite. Idem pour le second, à remplacer par high. Ces deux toggle sont idiots, désolé...
Je pense que le if / then / else n'est pas justifié. Un but est marqué, on fait la procédure (comme les précédents), on test si c'est le dernier, on ajoute une autre procédure. Le blocage pourrait d'ailleurs un condition de la boucle principale, a voir
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Moi, du temps ou je programmais des µPs, je faisais , à la mise sous tension, un p'tit programme de test qui animait toutes les entrés et sorties.
Par exemple :
- Allumage successif de toutes les lampes
- Si contact "but" pendant ce temps, un glong
- un glong
- Exécution du programme normal
L'écriture de ce programme de test serait un bon exercice pour :
- Tester la phase de compilation
- Tester le hard
excellente idée.... je prends !Moi, du temps ou je programmais des µPs, je faisais , à la mise sous tension, un p'tit programme de test qui animait toutes les entrés et sorties.
Par exemple :
- Allumage successif de toutes les lampes
- Si contact "but" pendant ce temps, un glong
- un glong
- Exécution du programme normal
L'écriture de ce programme de test serait un bon exercice pour :
- Tester la phase de compilation
- Tester le hard
Les temps de pause et pulsout seront à ajusterCode:#picaxe 20M2 ;pour vérif cohérence code/picaxe symbol C_BUT = b1 ;Compteur de buts symbol prebut =b2 symbol DONG = C.2 ;La cloche symbol BT_RAZ = pinC.3 ;Bouton RAZ symbol L_LOGO = C.4 ;les 3 ampoules de la marque symbol WIN_AD = pinC.5 ;L'adversaire est arrivé à 10 symbol BT_BUT = pinC.6 ;contact quand l'equipe a marqué un but symbol L_BUT = C.7 ;les 4 ampoules du gardien symbol cpt = b3 dirsB= %1111111 ;Désiagnation des ports dirsC= %1000111 ;Désiagnation des ports pullup %100100000000000 ;pullup sur C.3 et C6 setint %0000,%1000 ;interruption pulsout L_LOGO, 100 ;pour mise sous tension pause 100 pulsout L_LOGO, 100 ;et reset pause 100 pulsout L_LOGO, 100 ;et pas de gong ? do do loop while BT_BUT = 1 or WIN_AD = 1 'on bloque que le but soit eteind ou que l'adversaire a gagner do loop while BT_BUT = 0 'tant qu'il n'y a pas de but. if C_BUT > 0 then 'si ce n'est pas le premier on eteind l'ampoule allumée prebut = C_BUT - 1 low prebut endif high C_BUT 'on allume l'ampoule du But inc C_BUT ;on incremante le compteur high L_BUT pulsout DONG, 100 pause 300 low L_BUT if c_but>9 then for cpt=0 to 3 'si 10 buts Dong + lumiere du gardien 3 Fois pulsout DONG, 100 high L_BUT high L_LOGO Pause 300 low L_BUT low L_LOGO next endif do loop while C_BUT > 9 loop interrupt: do loop while BT_RAZ=0 for C_BUT=0 to 10 low C_BUT ;utile ?? next reset return MM
Dernière modification par mag1 ; 11/05/2017 à 20h18.
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
La commande "reset" fait quoi de plus que ce que l'on fait dans le la boucle ?
il n'y en a pas besoin ?
Avec le reset, on repart du début du programme.
Il n'y a pas besoin de réactiver l'interruption dans l'interrupt: ce qui se fait en général.
Si on supprime le reset, il faut donc réactiver, mais bon, c'est un détail.
Pour le savoir, il faut le supprimer ce reset et faire un tour de simu...
Résultat ?
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Apres quelques modif, cela a l'air de fonctionner.
J'ai laissé le if/else/endif
Code:symbol C_BUT = b1 ;Compteur de buts symbol DONG = C.2 ;La cloche symbol BT_RAZ = pinC.3 ;Bouton RAZ symbol L_LOGO = C.4 ;les 3 ampoules de la marque symbol WIN_AD = pinC.5 ;L'adversaire est arrivé à 10 symbol BT_BUT = pinC.6 ;contact quand l'equipe a marqué un but symbol L_BUT = C.7 ;les 4 ampoules du gardien symbol T_DONG = b21 symbol T_LAMPE = b22 symbol T_PAUSE = b23 dirsB= %1111111 ;Désiagnation des ports dirsC= %1000111 ;Désiagnation des ports pullup %100100000000000 ;pullup sur C.3 et C6 setint %0000,%1000 ;interruption T_DONG = 100 ; pulsout pour le dong T_LAMPE = 100 ; pulsout des lampes T_PAUSE = 300 ; temps de pause initialisation: ;Allume/etein toutes les lampes for C_BUT=0 to 9 high C_BUT pause T_PAUSE low C_BUT pulsout L_LOGO, T_LAMPE next pulsout L_BUT, T_LAMPE pulsout L_BUT, T_LAMPE pulsout DONG, T_DONG ;test de dong C_BUT=0 main: do do loop while BT_BUT = 1 or WIN_AD = 1 'on bloque que le but soit eteind ou que l'adversaire a gagner do loop while BT_BUT = 0 'tant qu'il n'y a pas de but. if C_BUT > 0 then 'si ce n'est pas le premier on eteind l'ampoule allumée b2 = C_BUT - 1 low b2 endif high C_BUT 'on allume l'ampoule du But inc C_BUT 'on incremante le compteur If C_BUT <=9 then 'si pas 10 buts Dong + lumiere du gardien high L_BUT pulsout DONG, T_DONG pause T_PAUSE low L_BUT else for b20=0 to 3 'si 10 buts Dong + lumiere du gardien 3 Fois pulsout DONG, T_DONG high L_BUT high L_LOGO Pause T_PAUSE low L_BUT low L_LOGO next endif do loop while C_BUT > 9 loop interrupt: do loop while BT_RAZ=0 pulsout L_LOGO, T_LAMPE for C_BUT=0 to 10 pause 100 low C_BUT next pulsout L_LOGO, T_LAMPE pulsout L_LOGO, T_LAMPE C_BUT=0 'remise a ZERO du compteur ;reset return
Bonjour,
Ben, tu fais comme tu veux, le principal est que le résultat te convienne.
Effectivement, la RAZ du compteur permet de sortir de la boucle après le return
Et ça fonctionne....une fois
Manque un truc, essaie de faire trois parties de suite, et relis #146
MM
Dernière modification par mag1 ; 12/05/2017 à 12h10.
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Ok............................ .
Voila la modif
pulsout L_LOGO, T_LAMPE
pulsout L_LOGO, T_LAMPE
C_BUT=0
setint %0000,%1000 ;interruption