Auteur Sujet: DECODEUR POUR 1 SIGNAL A BASE DE digispark attiny 85  (Lu 11814 fois)

PETER41

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
DECODEUR POUR 1 SIGNAL A BASE DE digispark attiny 85
« le: janvier 23, 2023, 01:14:09 pm »
Bonjour,
J'ai réalisé, pour mon club,  les cartes pour des signaux 3 leds puis 4 leds à base d'Arduino NANO.
Aucun PB c'est top.
Mais cela fait donc pas mal de fils pour relier carte et feux.
Aussi je lance ma demande (car je suis incapable de programmer cela), de réaliser un décodeur qui serait "au pied" d'un feux (max 5 leds ce qui est pas mal) et pour cela d'utiliser un digispark 85. j'utilise assez couramment ce type de circuit pour faire des séquences d'animations lumineuses dans les bâtiments du club.
Est-ce qu'il y aurait une bonne âme pour m'aider à réaliser ce projet ?
La programmation devrait pouvoir aller d'un feux à 2 leds jusqu'à 5 leds.
Merci pour votre aide.
Arduinotement vôtre.
Pierre
PS : je vous mets le circuit imprimé conçu pour ma CNC pour mes animations lumineuses ou autres.

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3048
  • 100% Arduino et N
    • Voir le profil
Re : DECODEUR POUR 1 SIGNAL A BASE DE digispark attiny 85
« Réponse #1 le: janvier 23, 2023, 02:38:02 pm »
Bonjour,

Vous voulez un décodeur DCC ?
Alimenté par les rails ?
Dans un ATTINY 85 ?
Il y a pas mal de sujets à consulter sur Locoduino (éditorial et forum) qui devraient vous intéresser.
Quand à trouver une bonne âme (ou poire) pour réaliser votre projet, ce n’est pas le but de Locoduino: c’est vous qui réalisez et vous trouvez de l’aide si nécessaire en suivant les conseils dans la rubrique “Aide”
Je vous souhaite une réussite
Cordialement
Cordialement,
Dominique

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : DECODEUR POUR 1 SIGNAL A BASE DE digispark attiny 85
« Réponse #2 le: janvier 23, 2023, 06:25:12 pm »
Bonsoir,

on a déjà présenté dans ces colonnes le site de Rudy Boer : https://rudysmodelrailway.wordpress.com/2015/10/30/new-versions-of-arduino-attiny-dcc-accessory-and-function-decoders/

En suivant les liens, on finit par arriver sur ce sketch. (entre autres)
Cordialement

PETER41

  • Newbie
  • *
  • Messages: 20
    • Voir le profil
Re : DECODEUR POUR 1 SIGNAL A BASE DE digispark attiny 85
« Réponse #3 le: février 17, 2023, 04:49:36 pm »
Bonjour,
Voici le prototype de circuit fait avec ma CNC.
Le schéma de bases du signal DC est le même que pour les autres décodeurs avec Arduino nano.
J'ai mis dans cette Arduino attiny digispark (Attiny 85), le programme indiqué précédemment.
Voici ce qui donne !
Lors de la mise sous tension les ortie P0 et P3 s'allument, puis s'éteigne après je suppose l'initialisation de l'Arduino.
Ensuite avec la commande rouge ROCO et sa centrale je constate que seul la sortie P1 fonctionne en fonctionnement bistable.

Cela ne correspond donc pas à la description que j'ai compris dans le programme.
Compte tenu de l'emploi de P2 pour pendre en compte le signal DCC, il reste 4 sorties possibles.
Je relance ma demande car je ne comprend rien au programme cité et je souhaite pouvoir commander un feux 4 leds en utilisant 2 adresses DCC qui se suivent.
Si comme l'indique Dominique je dois me débrouiller tout seul (car je ne suis pas du tout au niveau pour programmer cela !), je laisse tomber ce projet.
Arduinotement vôtre.
Pierre

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : DECODEUR POUR 1 SIGNAL A BASE DE digispark attiny 85
« Réponse #4 le: février 17, 2023, 07:43:25 pm »
Bonjour,

attention ce programme ne peut pas être utilisé tel quel. L'avez vous modifié ?
par exemple, les adresses 1 à 3 utilisent la même sortie 1
A la ligne 18, il n'y a qu'un accessoire de prévu.
Vous pouvez le passer dans un traducteur, c'est plus compréhensible.

Sauf erreur, seules quatre sorties pouvant être utilisées, la 5e est le reset.

A noter que Roco décale ses adresses de 4 par rapport à la NMRA.

Postez le programme que vous utilisez pour vos signaux 3 leds puis 4 leds à base d'Arduino NANO.

Normalement, ces programmes sont directement transposables pour ATTiny.
Cordialement

chris_bzg

  • Sr. Member
  • ****
  • Messages: 319
    • Voir le profil
Re : Re : DECODEUR POUR 1 SIGNAL A BASE DE digispark attiny 85
« Réponse #5 le: février 17, 2023, 08:17:13 pm »
...
Postez le programme que vous utilisez pour vos signaux 3 leds puis 4 leds à base d'Arduino NANO.

Normalement, ces programmes sont directement transposables pour ATTiny.

Pas certain ! La carte Nano est architecturée autour d'un ATmega328 qui a plus de ressources qu'un ATtiny25/45/85. Par exemple, trois timers là où les ATtiny n'en ont que deux !
Ou si on préfère, quand on chausse du 45, difficile de prétendre rentrer dans du 38 !  ;)

Tony04

  • Hero Member
  • *****
  • Messages: 569
    • Voir le profil
Re : DECODEUR POUR 1 SIGNAL A BASE DE digispark attiny 85
« Réponse #6 le: février 17, 2023, 08:25:04 pm »
Bonsoir à tous,

et c'est là que le père Antoine peut rendre service  ;) ...

Je viens de terminer la réalisation d'un décodeur DCC équipé d'un WeMos D1 MINI à moins de 2€ mais qui a surtout la particularité de pouvoir gérer les signaux mécaniques (en plus des feux standards).
Il est en effet capable de traiter 3 servos + 8 leds et vu son prix de revient ridicule on peut en installer un sous chaque feux si nécessaire.

Voici dans un premier temps juste le PCB qui fait 62 x 37 mm et qui est en fabrication.

Si quelqu'un est intéressé, je peux vous fournir tous les renseignements soit sur le forum, soit par messagerie privée.

Cordialement
Antoine

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Re : Re : DECODEUR POUR 1 SIGNAL A BASE DE digispark attiny 85
« Réponse #7 le: février 17, 2023, 09:19:26 pm »
...
Postez le programme que vous utilisez pour vos signaux 3 leds puis 4 leds à base d'Arduino NANO.

Normalement, ces programmes sont directement transposables pour ATTiny.

Pas certain ! La carte Nano est architecturée autour d'un ATmega328 qui a plus de ressources qu'un ATtiny25/45/85. Par exemple, trois timers là où les ATtiny n'en ont que deux !
Ou si on préfère, quand on chausse du 45, difficile de prétendre rentrer dans du 38 !  ;)

On est un peu dans ses petits souliers avec du 85 mais ces programmes de décodeurs d’accessoires ne sont pas gourmands : pour quatre feux sur un ATmega328 :

Le croquis utilise 3366 octets (10%) de l'espace de stockage de programmes. Le maximum est de 30720 octets.
Les variables globales utilisent 392 octets (19%) de mémoire dynamique, ce qui laisse 1656 octets pour les variables locales. Le maximum est de 2048 octets.


ATTiny85
Le croquis utilise 3060 octets (40%) de l'espace de stockage de programmes. Le maximum est de 7616 octets.
Les variables globales utilisent 390 octets (76%) de mémoire dynamique, ce qui laisse 122 octets pour les variables locales. Le maximum est de 512 octets.


On peut aussi utiliser un ATmega168.
Cordialement

chris_bzg

  • Sr. Member
  • ****
  • Messages: 319
    • Voir le profil
Re : DECODEUR POUR 1 SIGNAL A BASE DE digispark attiny 85
« Réponse #8 le: février 18, 2023, 09:50:39 am »
Ce n'est pas seulement une question de place mémoire. Il y a bien d'autres facteurs à considérer. Par exemple, si le programme utilise un timer 16 bits, il ne tournera pas sur un ATtiny85. De plus, si le programme utilise souvent des interruptions, ou des appels de fonctions en cascade, il pourra ne pas fonctionner alors que la compilation est normale.
Dans les textes cités, on voit que sur ATtiny85, les variables occupent 76% de l'espace mémoire, ce qui laisse peu de place pour la pile. Si celle-ci est sollicitée trop souvent, cela finira par créer un conflit, le programme plantera alors qu'il avait très bien été compilé. Et dans ce cas, difficile de comprendre ce qui se passe !

Tout cela pour dire que l'adaptation d'un programme sur un petit microcontrôleur doit être prise en compte lors de la conception du programme lui même, d'une part en considérant les ressources, d'autre part par une programmation structurée qui permet d'éviter ce genre de bévue. Ce n'est pas simplement une question de nombre de sorties ou de taille mémoire.
« Modifié: février 18, 2023, 09:55:16 am par chris_bzg »

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : DECODEUR POUR 1 SIGNAL A BASE DE digispark attiny 85
« Réponse #9 le: février 18, 2023, 10:18:19 am »
Tout à fait d'accord Christian,

ici, on a un programme fourni par Ruud Boer qui a été validé et testé.
On ne va certainement pas lui faire faire autre chose que ce pour quoi il a été prévu.

La question posée à Pierre est de savoir savoir ce qui a marché sur ATMega328 pour en transposer les paramètres sur ce programme.

Rappelons aussi que sur les 8 broches de l'ATTiny85, 2 sont pour l'alimentation, 1 pour le DCC, une pour le reset, restent 4 utilisables pour 4 feux (ou plus si on est astucieux)
Cordialement

trimarco232

  • Sr. Member
  • ****
  • Messages: 345
    • Voir le profil
Re : Re : DECODEUR POUR 1 SIGNAL A BASE DE digispark attiny 85
« Réponse #10 le: mars 11, 2023, 01:03:42 am »
 

Si quelqu'un est intéressé, je peux vous fournir tous les renseignements soit sur le forum, soit par messagerie privée.

Cordialement
Antoine
Bonjour,
tiens j'avais raté ceci, je dois dire que c'est bien vu, notamment le hct595 pour travailler en  5v, les smd (très facilement soudable) d'un côté et le th de l'autre
alors même si je dois encore déplorer l'absence inadmissible de plan de masse, n'hésite pas à ouvrir un sujet, je pense que le forum est là pour ça !
« Modifié: mars 11, 2023, 01:06:20 am par trimarco232 »