Modifications

Sauter à la navigation Sauter à la recherche
4 004 octets ajoutés ,  23 février 2014 à 16:44
Ligne 125 : Ligne 125 :  
</nowiki>
 
</nowiki>
    +
== Le commandes standard ==
 +
Le code permettant de commander la direction de marche et vitesse sont identiques pour une loco MFX et une Loco MM2.
 +
 +
Pas besoin de s'étendre sur ce point puisqu'il à déjà été abordé dans la section MM2. Pensez seulement à utiliser la constante '''ADDR_MFX''' au lieu de ADDR_MM2.
 +
 +
== Commander le son ==
 +
Avant de se lancer dans des fonctions plus avancées, prenons juste le temps de profiter d'une fonction MFX la plus spectaculaire... celle permettant de faire siffler le train (comme en rêve tous les enfants).
 +
 +
La fonction son porte le numéro 3 sur cette loco (nous y reviendrons plus tard). Ne reste plus qu'a l'activer
 +
 +
Dans votre environnement Arduino, ouvrez l'exemple '''Fichier > Exemples > Railuino > Controller > Headlight'''
 +
 +
Et modifiez le code suivant:
 +
 +
ctrl.setLocoFunction(LOCO, 0, 1); // mettre la fonction 0 a la valeur 1
 +
 +
pour appeler la fonction 3... celle du son
 +
 +
ctrl.setLocoFunction(LOCO, 3, 1); // mettre la fonction 3 (son) a la valeur 1
 +
 +
Note: attention, il faut également modifier la ligne plaçant la valeur de la fonction à 0... sinon le train siffle en continu ;-)
 +
 +
{{#Widget:Iframe
 +
|url=http://www.youtube.com/embed/xILfx-hVcC0
 +
|width=420
 +
|height=315
 +
|border=0
 +
}}
 +
 +
Nous avons repris l'exemple Railuino, ci-dessous, en ajoutant des commentaires en Français (pour vous aider).
 +
 +
Notez le type d'adressage MFX identifié à l'aide de la constante '''ADDR_MFX''' et l'adresse fixée dynamiquement par la Mobile Station  (soit 5).
 +
 +
<nowiki>/*********************************************************************
 +
* Railuino - Hackez votre Märklin
 +
*
 +
* Copyright (C) 2012 Joerg Pleumann
 +
*    https://code.google.com/p/railuino/
 +
*
 +
* Cet exemple est un logiciel libre; Vous pouvez le redistribuer et/ou
 +
* le modifier sous les termes de licence "Creative Commons Zero
 +
* version 1.0", tel que publié par par Creative Commons Organisation.
 +
* Cela place de fichier dans le domaine publique.
 +
*
 +
* Cet exemple est distribué dans l'espoir qu'il soit utile,
 +
* mais SANS AUCUNE GARANTIE; sans même la garantie implicite de
 +
* COMMERCIALISATION ou D'ADAPTATION À UN USAGE PARTICULIER.
 +
* Voyez le fichier LICENCE pour plus de détails.
 +
*
 +
* ----------------------------------------------------------------
 +
* Tutoriel Railuino disponible en Français sur
 +
*    http://mchobby.be/wiki/index.php?title=Railuino
 +
*
 +
* Traduction par MCHobby.be crédit sous CC-SA-BY pour l'effort de traduction
 +
* Translation by MCHobby.be credit under CC-SA-BY for translation effort
 +
*
 +
*/
 +
 +
#include <Railuino.h>
 +
 +
// Identification de la Locomotive en utilisant l'adressage MFX
 +
// et en ajoutant le numéro d'identification de la machine (5 dans ce cas)
 +
const word    LOCO  = ADDR_MFX + 5;
 +
const word    TIME  = 2000; // déclaration d'un délai de 2 secondes
 +
const boolean DEBUG = true; // activer le débogage
 +
 +
// Créer un contrôleur Railuino
 +
TrackController ctrl(0xdf24, DEBUG);
 +
 +
void setup() {
 +
  // établir une connexion avec le moniteur série d'Arduino IDE
 +
  Serial.begin(115200);
 +
  // Attendre l'établissement de la connexion
 +
  while (!Serial);
 +
 +
  // Démarrer le contrôleur
 +
  ctrl.begin();
 +
 +
  Serial.println("Mise sous tension - Power on");
 +
  ctrl.setPower(true);
 +
}
 +
 +
void loop() {
 +
  byte b;
 +
 
 +
  Serial.println("Faire siffler - fonction 3");
 +
  ctrl.setLocoFunction(LOCO, 0, 1); // mettre la fonction 3 a la valeur 1
 +
 +
  // Interrogation de la fonction 3 de la Loco (si compatible)
 +
  if (ctrl.getLocoFunction(LOCO, 3, &b)) {
 +
    Serial.print("(La loco siffle t elle? ");
 +
    Serial.println(b ? "OUI)" : "non)");
 +
  }
 +
 
 +
  delay(TIME); // attendre
 +
 
 +
  Serial.println("Arreter de siffler - fonction 3");
 +
  ctrl.setLocoFunction(LOCO, 0, 0);  // mettre la fonction 3 a la valeur 0
 +
 +
  // Interrogation de la fonction 3 de la Loco (si compatible)
 +
  if (ctrl.getLocoFunction(LOCO, 0, &b)) {
 +
    Serial.print("(La loco siffle t elle encore? ");
 +
    Serial.println(b ? "oui)" : "non)");
 +
  }
 +
 
 +
  delay(TIME); // attendre
 +
}
 +
</nowiki>
    
{{Railuino-TRAILER}}
 
{{Railuino-TRAILER}}
29 917

modifications

Menu de navigation