Auteur Sujet: décodeur accessoires avec attiny85  (Lu 10025 fois)

Fantasio

  • Newbie
  • *
  • Messages: 39
    • Voir le profil
décodeur accessoires avec attiny85
« le: décembre 16, 2019, 08:06:08 pm »
Bonsoir à tous
Afin de créer de nouvelles animations sur les réseaux de mon club, je souhaiterai utiliser un attiny85 en tant que décodeur d'acessoires.
Je me suis inspiré de ce lien:
https://rudysarduinoprojects.wordpress.com/2019/05/06/fun-with-arduino-29-dcc-accessory-decoder/

Rudy Boer utilise la biblothèque DCC_Decoder.h et son programme tourne sur un arduino Uno. je l'ai testé avec cette carte et il fonctionne parfaitement :)
Je souhaite le faire tourner sur un attiny85. J'ai donc modifier le code pour l'adapter à cette puce, mais rien n'y fait >:(

voici mon code:
/*attiny-decodeur accessoires
 * lien: https://rudysarduinoprojects.wordpress.com/2019/05/06/fun-with-arduino-29-dcc-accessory-decoder/
            Brochage Attiny85
*
*          5 =|1  U  8|= VCC
*       A3 3 =|2     7|= 2 entrée signal DCC
*       A2 4 =|3     6|= 1 sortie pour adresse 11
*        GND =|4     5|= 0 sortie pour adresse 10
*
 */


#define NUMACCESSORIES 2 // Entrez ici le nombre d'accessoires (max 4)

// ALLER AU setup() POUR CONFIGURER DCC ADDRESSES AND PIN NUMBERS

#include <DCC_Decoder.h>
#define kDCC_INTERRUPT 0

typedef struct DCCAccessoryData {
  int   address;   // Adresse DCC configurable par l'utilisateur
  byte  outputpin; // Pin Attiny configurable par l'utilisateur
  byte  dccstate;  // Utilisation interne Etat DCC de l'accessoire, 1 = ON, 0 = OFF
};
DCCAccessoryData accessory[NUMACCESSORIES];

// La bibliothèque DCC appelle cette fonction pour activer/désactiver les accessoires.
void BasicAccDecoderPacket_Handler(int address, boolean activate, byte data) {
  address -= 1;
  address *= 4;
  address += 1;
  address += (data & 0x06) >> 1;
  //address = address - 4; // !!! uncomment cette ligne pour les multi maus Roco ou z21
  boolean enable = (data & 0x01) ? 1 : 0;
  for (byte i=0; i<NUMACCESSORIES; i++) {
    if (address == accessory[i].address) {
      if (enable) accessory[i].dccstate = 1;
      else accessory[i].dccstate = 0;
    }
  }
}

void setup() {
// CONFIGURATION DES ACCESSOIRES
// Copier et coller autant de fois que vous avez d'accessoires
// la quantité doit être la même que celle définie dans NUMACCESSORIES
// ne pas oublier d'incrémenter l'index du tableau
  accessory[0].address   =  10; // adresse DCC
  accessory[0].outputpin = 0;  // pin Attiny

  accessory[1].address   =  11; // adresse DCC
  accessory[1].outputpin = 1;  // pin Attiny
// FIN DE LA CONFIGURATION DES ACCESSOIRES

  DCC.SetBasicAccessoryDecoderPacketHandler(BasicAccDecoderPacket_Handler, true);
  DCC.SetupDecoder( 0x00, 0x00, 0 );
// les pins sont définiées en sortie et au niveau 0
  for(byte i=0; i<NUMACCESSORIES; i++) {
    pinMode     (accessory[i].outputpin, OUTPUT);
    digitalWrite(accessory[i].outputpin, LOW);
  }
}

void loop() {
  DCC.loop(); // Appel de la fonction de bibliothèque qui lit les données DCC


  for(byte i=0; i<NUMACCESSORIES; i++) {
    if (accessory[i].dccstate)
      digitalWrite(accessory[i].outputpin, HIGH);
    else
      digitalWrite(accessory[i].outputpin, LOW);
  }
}
bien évidemment si quelqu'un a une idée, je suis preneur.
Merci par avance

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : décodeur accessoires avec attiny85
« Réponse #1 le: décembre 16, 2019, 09:18:18 pm »
Un décodeur de fonctions (loco) qui a eu son heure de gloire :

http://forum.locoduino.org/index.php?topic=482.45 (pcb)

explications succinctes :

http://forum.locoduino.org/index.php?topic=333.msg3199#msg3199
Cordialement

Fantasio

  • Newbie
  • *
  • Messages: 39
    • Voir le profil
Re : décodeur accessoires avec attiny85
« Réponse #2 le: décembre 17, 2019, 12:05:24 am »
Effectivement pour le décodeur de fonctions, mais dans mon cas c'est un décodeur d'accessoires...

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : décodeur accessoires avec attiny85
« Réponse #3 le: décembre 17, 2019, 10:25:49 am »
A adapter ...
Cordialement