|
| Faire sa propre centrale DCC | |
|
+31takeo TRAINTRAIN95 Kazaam gfaoplus jlb SUPERN piston93 nzin sam95 Jicébé Décau45 eric_p StrongSpirit patrick Guillf TGV77340 cheftrainminiature Lohren SavignyExpress Yoko gvax69 pointcom barbadidoua babord class66 Trusty jef34 Gbo95 F.GODEFERT simonp19 SixtyFive 35 participants | |
Auteur | Message |
---|
aneta Membre
Age : 73 Localisation : rennes Nombre de messages : 58 Date d'inscription : 23/12/2011
| Sujet: Re: Faire sa propre centrale DCC Mar 28 Oct 2014 - 12:37 | |
| [quote="SixtyFive"]Voici la routine : - Code:
-
// ----------------------------------------------------- // RFID // -----------------------------------------------------
void checkRFID1(void) ..........
C'est bien la routine que j'ai déjà téléchargée sur ton site. Mais celle-ci n'est bien qu'un sous ensemble du programme général ? amicalement aneta |
| | | SixtyFive Membre
Age : 76 Localisation : 91340 Nombre de messages : 211 Date d'inscription : 21/12/2012
| Sujet: Re: Faire sa propre centrale DCC Mar 28 Oct 2014 - 16:37 | |
| Oui, on trouve le programme général iciIl fait partie du contrôleur de circuit. |
| | | aneta Membre
Age : 73 Localisation : rennes Nombre de messages : 58 Date d'inscription : 23/12/2011
| Sujet: Re: Faire sa propre centrale DCC Jeu 30 Oct 2014 - 21:36 | |
| Bonsoir, j'ai quelque peu avancé sur le projet : https://youtu.be/mCVYOIT_ifUj'ai conservé le principe de photocoupleurs en sortie de l'arduino pour rendre l'ensemble RFID isolé de ce que l'on pourrait y associer . De plus les leds me permettent de visualiser le bon fonctionnement des sorties. Je souhaiterais améliorer mon sketch : la suite de " if (comparetag(newtag, tagxx ...." est " imbuvable" et serait plus propre remplacée par une boucle !!! Mais bon : je débute complètement en Arduino . #include SoftwareSerial RFID(2, 3); // RX and TX
int data1 = 0; int ok ; int numtrain ; int i=0; int PIN[8]; // les tags de chaque train : ( 3 trains dans ce sketch) int tag1[14] = {2,48,65,48,48,56,55,70,52,49,70,54,54,3}; int tag2[14] = {2,48,67,48,48,52,65,55,54,67,57,70,57,3}; int tag3[14] = {2,48,66,48,48,51,70,52,68,51,68,52,52,3}; int newtag[14] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0}; // used for read comparisons
void setup() { // initialisation :envoie une commande à chaque sortie l'une après l'autre ( fait allumer les leds de contrôle en ) // seul le premier klaxon sera diffusé ! for(i = 0; i < 8; i++) { PIN = i+4; pinMode(PIN[i], OUTPUT); digitalWrite(PIN[i], LOW); // led ON delay(90); // wait for a 1/16 second digitalWrite(PIN[i], HIGH); // LED OFF //delay(10); // wait } RFID.begin(9600); // start serial to RFID reader Serial.begin(9600); // start serial to PC
}
boolean comparetag(int aa[14], int bb[14]) { boolean ff = false; int fg = 0; for (int cc = 0 ; cc < 14 ; cc++) { if (aa[cc] == bb[cc]) { fg++; } } if (fg == 14) { ff = true; } return ff; }
void checkmytags() // comparaison du tag lu avec le tag de chaque train enregistré { ok = 0; // on met la variable à 0 et maintenant : // ok sera egal à 1 si on a trouvé le train correspondant, et à 0 si on a rien trouvé. Et là il y'a un problème !! // -1 s'il y a eu un pb de lecture if (comparetag(newtag, tag1) == true) { ok=1; numtrain =1; } if (comparetag(newtag, tag2) == true) { ok=1; numtrain =2; } if (comparetag(newtag, tag3) == true) { ok=1; numtrain =3; } }
void readTags() { ok = -1;
if (RFID.available() > 0) { // lecture du tag qui passe delay(100); // pause pour laisser acquerir les data venant du port série for (int z = 0 ; z < 14 ; z++) // lit le contenu { data1 = RFID.read(); newtag[z] = data1; } RFID.flush(); // empeche multiple lecture
// à quel train appartient ce tag ? checkmytags(); }
// et maintenant si c'est bon on active la sortie correspondante if (ok == 1) { // controle sur ecran Serial.print("train : "); Serial.print(numtrain); Serial.print("\n"); // activation de l'optocoupleur et/ou allumage de la led correspondante digitalWrite(PIN[numtrain], LOW); // led ON delay(90); digitalWrite(PIN[numtrain], HIGH); // LED OFF
} else if (ok == 0) // On n'a pas trouvé de correspondance : //il y a un problème de saisie des chiffres des tags enregistrés !! { } }
void loop() { readTags(); }
[/i][/i][/i] |
| | | Trusty Membre
Age : 62 Localisation : Melun Nombre de messages : 942 Date d'inscription : 08/10/2012
| Sujet: Re: Faire sa propre centrale DCC Ven 31 Oct 2014 - 9:02 | |
| Bien joué ! Le concept est plutôt sympa. Une suggestion d'amélio pour ta fonction de comparaison de tag: - Code:
-
boolean comparetag(int aa[14], int bb[14]) { for (int cc = 0 ; cc < 14 ; cc++) { if (aa[cc] != bb[cc]) { return false; } }
return true; } Ça accélérera un peu la comparaison en sortant dès qu'un entier n'est pas le même... Autre optimisation pour checkmytags: - Code:
-
int checkmytags() // comparaison du tag lu avec le tag de chaque train enregistré { // le retour sera égal au numéro du tag, ou à -1 si pas trouvé ou problème de lecture. if (comparetag(newtag, tag1) == true) { return 1; }
if (comparetag(newtag, tag2) == true) { return 2; }
if (comparetag(newtag, tag3) == true) { return 3; }
return -1; // Si pas trouvé ! } Cette nouvelle version évite le besoin de déclarer les variables globales ok et numtrain, ce qui est un bon principe de programmation. Plus loin, tu peux écrire - Code:
-
int numtrain = checkmytags(); |
| | | aneta Membre
Age : 73 Localisation : rennes Nombre de messages : 58 Date d'inscription : 23/12/2011
| Sujet: Re: Faire sa propre centrale DCC Ven 31 Oct 2014 - 11:09 | |
| - Trusty a écrit:
- Une suggestion d'amélio pour ta fonction de comparaison de tag:
Merci ! je m'en vais faire .... amicalement aneta |
| | | SixtyFive Membre
Age : 76 Localisation : 91340 Nombre de messages : 211 Date d'inscription : 21/12/2012
| Sujet: Re: Faire sa propre centrale DCC Sam 3 Jan 2015 - 19:31 | |
| Une idée m'est venue pour autoriser 2 détecteurs RFID sur le circuit: Encadrer chaque détecteur RFID par 2 détecteurs infrarouge (barrière IR). Le tout en tunnel pour le cacher.
Principe: chaque détecteur IR détecté l'arrivée d'un train à proximité du détecteur RFID. Celui-ci est alors activé, puis désactivé aussitôt un train reconnu. Le deuxième détecteur IR permet de connaître aussi le sens de déplacement du train (indispensable pour une double voie)
Sauf exception rare, les 2 détecteurs RFID ne devraient pas être activés en même temps, donc fonctionner correctement.
Je vais tester ça bientôt
A+ |
| | | aneta Membre
Age : 73 Localisation : rennes Nombre de messages : 58 Date d'inscription : 23/12/2011
| Sujet: Re: Faire sa propre centrale DCC Dim 4 Jan 2015 - 12:33 | |
| Tout d'abord, Bonne et heureuse année 2015 !! J'ai terminé et mis en service le système RFID que j'interfacerai peut être un jour avec CDM RAIL http://cdmrail.free.fr/ForumCDR/viewtopic.php?f=91&t=1551&start=10#p26040. C'est vrai que c'est bluffant ! D'ici quelques mois je vais installer un second lecteur à l'autre bout du réseau (3m environ). Et là je verrai les problèmes dont tu parles ! amicalement aneta |
| | | SixtyFive Membre
Age : 76 Localisation : 91340 Nombre de messages : 211 Date d'inscription : 21/12/2012
| Sujet: Re: Faire sa propre centrale DCC Jeu 23 Avr 2015 - 9:19 | |
| Au passage je signale à tout le monde la sortie du dernier article sur la centrale va-et-vient à base d'Arduino, qui se trouve sur Locoduino. Le soft complet est décrit et contient bon nombre de trucs et astuces qui peuvent servir dans vos projets. Je reste toujours déterminé à construire un réseau 100% Arduino. Amicalement Dominique |
| | | SixtyFive Membre
Age : 76 Localisation : 91340 Nombre de messages : 211 Date d'inscription : 21/12/2012
| Sujet: Re: Faire sa propre centrale DCC Mar 26 Déc 2017 - 19:52 | |
| Toujours plus fort et plus loin ! J'ai presque fini ma dernière version de centrale DCC, basée sur DCCpp de Thierry et Gregg. Il y a de multiples possibilités de pilotage de 12 machines simultanément. Je vous laisse découvrir ma dernière centrale DCCpp |
| | | pn200 Membre
Age : 73 Localisation : Saint Amand Nombre de messages : 343 Date d'inscription : 24/12/2013
| Sujet: Re: Faire sa propre centrale DCC Mar 26 Déc 2017 - 21:50 | |
| Bonsoir SixtyFive J'ai fait la centrale pour une loco qui fonctionne bien. 2 petits problèmes de matériel qui m'ont fait chercher la cause + un avec le code, j'avais mis 2 points au lieu de point virgule. Je ne pense pas faire celle-là (même en recopiant), car la moindre erreur sera une galère à dépanner. Sur ton plan le fil "courant" du MAX 471 est le même que le fil "MAX 471" sur A0 du Mega? Combien de temps mets-tu a la faire, montage + code |
| | | SixtyFive Membre
Age : 76 Localisation : 91340 Nombre de messages : 211 Date d'inscription : 21/12/2012
| Sujet: Re: Faire sa propre centrale DCC Mar 26 Déc 2017 - 22:34 | |
| Bonjour pn200, - pn200 a écrit:
- Bonsoir SixtyFive
J'ai fait la centrale pour une loco qui fonctionne bien. 2 petits problèmes de matériel qui m'ont fait chercher la cause + un avec le code, j'avais mis 2 points au lieu de point virgule. Je ne pense pas faire celle-là (même en recopiant), car la moindre erreur sera une galère à dépanner. Sur ton plan le fil "courant" du MAX 471 est le même que le fil "MAX 471" sur A0 du Mega? Combien de temps mets-tu a la faire, montage + code Oui le fil "courant" du MAX 471 est bien le même que le fil "MAX 471" sur A0 du Mega. Pour monter cette centrale, le plus long est de rassembler les éléments (notamment les potentiomètres professionnels) et de concevoir la réalisation mécanique adaptée à ton réseau. Et surtout il faut savoir ce qu'on veut faire avec. Ton cahier des charges n'est pas forcément le même que le mien. Te donner un temps est difficile car elle n'est pas encore tout à fait terminée. Je procède par étape pour valider les sous-ensembles les uns après les autres (attendre que tout soit connecté avec l'ensemble du logiciel est assez suicidaire). J'ai réalisé pas mal de programmes intermédiaires pour tester le clavier tactile d'une part, trouver l'astuce de la combinaison des boutons poussoirs et des leds sur la même broche du Mega, etc.. De plus j'avais déjà réalisé le logiciel CAN que je vais encore améliorer. J'ai mis de coté la manette sans fil à base de NRF24, pour un peu plus tard. Le configurateur a aussi été source de recherches pour combiner les éléments et que ça marche. En plus je dois faire quelques mesures de performance pour voir si c'est bien stable et sûr. Je te conseille plutôt de faire comme moi : maitriser et mettre au point les éléments les uns après les autres et cela t'apprendra plein de choses réutilisables ailleurs. D'ailleurs je vais décrire le soft d'abord élément par élément, et ne donner le soft final complet qu'à la fin, dans 1 ou 2 mois. Copier le soft complet sans comprendre ne serait pas raisonnable !!! |
| | | Contenu sponsorisé
| Sujet: Re: Faire sa propre centrale DCC | |
| |
| | | | Faire sa propre centrale DCC | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |