Forums LR PRESSE

Où il est question de trains, petits et grands

  • Advertisement

Affichage arrivée départ fonctionnel 1/87

Toutes les discussions sur l'Arduino !

Modérateur: MOD

Re: Affichage arrivée départ fonctionnel 1/87

Publié: Ven 27 Mai 2016, 18:07 
Deuxième essai : le test des afficheurs

Nous allons recharger notre programme de démonstration des afficheurs que nous avons déjà utiliser pour la vérification de nos chargements dans l’ARDUINO.

Pour rappel nous devons cliquer sur Fichier puis sur Exemples puis sur Adafruit SSD 1306 puis sur SSD1306_128X64_i2c (nos afficheurs doivent fonctionner avec une matrice 128 par 64 et avec le bus série I2C

Image

Puis nous allons le compiler puis le téléverser comme nous venons de l’apprendre.
A la fin du téléversement nous auront un des deux écrans (normal dans le programme de démonstration il n’y a qu’un écran qui est adressé) qui va s’animer en faisant le programme de démonstration se terminant par des étoiles.
Si vous voulez allumer l’autre écran il faut modifier l’adresse à cet endroit-là d’ailleurs nous pouvons voir que nous adressions l’afficheur ayant comme adresse 3D

Image

Nous changeons l’adresse en 3C pour être homogène nous modifions aussi le commentaire qui comme expliqué précédemment est précédé de //

Image

Puis nous allons compiler à nouveau puis téléverser le programme modifié, c’est notre autre afficheur qui s’anime à son tour.

Nous pouvons nous intéresser désormais au programme des afficheurs Aurillac.
Cantalou expatrié
Avatar de l’utilisateur
Dangui95
Volubile
 
Messages: 2251
Inscrit le: Lun 27 Août 2007, 20:44
Localisation: Val d'oise
Âge: 63
Echelle pratiquée: HO
Prénom: Gilbert
Club: Rigollots© and co

Re: Affichage arrivée départ fonctionnel 1/87

Publié: Ven 27 Mai 2016, 18:15 
Le principe et la spécification de l’affichage d’Aurillac

Pour l’affichage de la gare d’Aurillac j’ai cherché à simuler le défilement d’affichage lors de la mise à jour des écrans en affichant les lignes les unes après les autres.

Autre règle, lors de la mise à jour d’écran, je rappelle les 3 derniers horaires de l’écran précédent.

L’écran se compose de 8 lignes de 21 caractères, un espace égal un caractère.
J’ai donc créer un tableau Excel qui définit les différents écrans pour les départs et les arrivées, il tient compte des espaces.

Ce qui fait 6 écrans pour les départs et 6 écrans pour les arrivées.

Il faudra que vous fassiez le vôtre en fonction de votre gare et votre région.

Voici le tableau des départs et les différents écrans sans compter les écrans de défilement.

Image

Voici le tableau des arrivées et les différents écrans

Image
Cantalou expatrié
Avatar de l’utilisateur
Dangui95
Volubile
 
Messages: 2251
Inscrit le: Lun 27 Août 2007, 20:44
Localisation: Val d'oise
Âge: 63
Echelle pratiquée: HO
Prénom: Gilbert
Club: Rigollots© and co

Re: Affichage arrivée départ fonctionnel 1/87

Publié: Ven 27 Mai 2016, 18:26 
Programme Aurillac

Voici le programme qui tourne sur Aurillac,

Code: Tout sélectionner
/*********************************************************************
Programme de gestion d'un écran monochrome OLEDs sur une base SSD1306 drivers
pour l'affichage de la gare d'Aurillac.


*********************************************************************/
// Ce qui suit sert à initialiser le compilateur et qui défini les applications à utiliser
#include <Adafruit_SSD1306.h>
#include <avr/pgmspace.h>
#define OLED_RESET 4

// création de deux afficheurs
Adafruit_SSD1306 display1(OLED_RESET);
Adafruit_SSD1306 display2(OLED_RESET);

// vérification que nous sommes bien configurer en 128X64
#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

// génération des tables de variables (c'est ici que vous devrez modifier vos écrans
// tables des départs
const char depart_0[]PROGMEM= "HEURE    DEPART     V---------------------O5h15 BRIVE         3"; 
const char depart_1[]PROGMEM= "HEURE    DEPART     V---------------------O5h15 BRIVE         305h54 CLERMONT FR   2"; 
const char depart_2[]PROGMEM= "HEURE    DEPART     V---------------------O5h15 BRIVE         3O5h54 CLERMONT FR   2O6h45 TOULOUSE      1"; 
const char depart_3[]PROGMEM= "HEURE    DEPART     V---------------------O5h15 BRIVE         3O5h54 CLERMONT FR   2O6h45 TOULOUSE      1O7h55 CLERMONT FR   2";
const char depart_4[]PROGMEM= "HEURE    DEPART     V---------------------O5h15 BRIVE         3O5h54 CLERMONT FR   2O6h45 TOULOUSE      1O7h55 CLERMONT FR   2O8h46 TOULOUSE      1"; 
const char depart_5[]PROGMEM= "HEURE    DEPART     V---------------------O5h15 BRIVE         3O5h54 CLERMONT FR   2O6h45 TOULOUSE      1O7h55 CLERMONT FR   2O8h46 TOULOUSE      1O9h13 NEUSSARGUES   3";

const char depart_6[]PROGMEM= "HEURE    DEPART     V---------------------O7h55 CLERMONT FR   2"; 
const char depart_7[]PROGMEM= "HEURE    DEPART     V---------------------O7h55 CLERMONT FR   2O8h46 TOULOUSE      1";
const char depart_8[]PROGMEM= "HEURE    DEPART     V---------------------O7h55 CLERMONT FR   2O8h46 TOULOUSE      1O9h13 NEUSSARGUES   3";
const char depart_9[]PROGMEM= "HEURE    DEPART     V---------------------O7h55 CLERMONT FR   2O8h46 TOULOUSE      1O9h13 NEUSSARGUES   31Oh27 CLERMONT FR   2";
const char depart_10[]PROGMEM= "HEURE    DEPART     V---------------------O7h55 CLERMONT FR   2O8h46 TOULOUSE      1O9h13 NEUSSARGUES   31Oh27 CLERMONT FR   21Oh49 BRIVE         3";
const char depart_11[]PROGMEM= "HEURE    DEPART     V---------------------O7h55 CLERMONT FR   2O8h46 TOULOUSE      1O9h13 NEUSSARGUES   31Oh27 CLERMONT FR   21Oh49 BRIVE         311h22 PARIS AUSTER  5";

const char depart_12[]PROGMEM= "HEURE    DEPART     V---------------------1Oh27 CLERMONT FR   2";
const char depart_13[]PROGMEM= "HEURE    DEPART     V---------------------1Oh27 CLERMONT FR   21Oh49 BRIVE         3";
const char depart_14[]PROGMEM= "HEURE    DEPART     V---------------------1Oh27 CLERMONT FR   21Oh49 BRIVE         311h22 PARIS AUSTER  5";
const char depart_15[]PROGMEM= "HEURE    DEPART     V---------------------1Oh27 CLERMONT FR   21Oh49 BRIVE         311h22 PARIS AUSTER  512h55 TOULOUSE      1";
const char depart_16[]PROGMEM= "HEURE    DEPART     V---------------------1Oh27 CLERMONT FR   21Oh49 BRIVE         311h22 PARIS AUSTER  512h55 TOULOUSE      113h28 NEUSSARGUES   3";
const char depart_17[]PROGMEM= "HEURE    DEPART     V---------------------1Oh27 CLERMONT FR   21Oh49 BRIVE         311h22 PARIS AUSTER  512h55 TOULOUSE      113h28 NEUSSARGUES   316h39 CLERMONT FR   2";

const char depart_18[]PROGMEM= "HEURE    DEPART     V---------------------12h55 TOULOUSE      1";
const char depart_19[]PROGMEM= "HEURE    DEPART     V---------------------12h55 TOULOUSE      113h28 NEUSSARGUES   3";
const char depart_20[]PROGMEM= "HEURE    DEPART     V---------------------12h55 TOULOUSE      113h28 NEUSSARGUES   316h39 CLERMONT FR   2";
const char depart_21[]PROGMEM= "HEURE    DEPART     V---------------------12h55 TOULOUSE      113h28 NEUSSARGUES   316h39 CLERMONT FR   216h53 TOULOUSE      1";
const char depart_22[]PROGMEM= "HEURE    DEPART     V---------------------12h55 TOULOUSE      113h28 NEUSSARGUES   316h39 CLERMONT FR   216h53 TOULOUSE      117h1O BRIVE         3";
const char depart_23[]PROGMEM= "HEURE    DEPART     V---------------------12h55 TOULOUSE      113h28 NEUSSARGUES   316h39 CLERMONT FR   216h53 TOULOUSE      117h1O BRIVE         317h44 CLERMONT FR   2";

const char depart_24[]PROGMEM= "HEURE    DEPART     V---------------------16h53 TOULOUSE      1";
const char depart_25[]PROGMEM= "HEURE    DEPART     V---------------------16h53 TOULOUSE      117h1O BRIVE         3";
const char depart_26[]PROGMEM= "HEURE    DEPART     V---------------------16h53 TOULOUSE      117h1O BRIVE         317h44 CLERMONT FR   2";
const char depart_27[]PROGMEM= "HEURE    DEPART     V---------------------16h53 TOULOUSE      117h1O BRIVE         317h44 CLERMONT FR   218h32 FIGEAC        3";
const char depart_28[]PROGMEM= "HEURE    DEPART     V---------------------16h53 TOULOUSE      117h1O BRIVE         317h44 CLERMONT FR   218h32 FIGEAC        319h18 NEUSSARGUES   2";
const char depart_29[]PROGMEM= "HEURE    DEPART     V---------------------16h53 TOULOUSE      117h1O BRIVE         317h44 CLERMONT FR   218h32 FIGEAC        319h18 NEUSSARGUES   221h17 FIGEAC        3";

const char depart_30[]PROGMEM= "HEURE    DEPART     V---------------------18h32 FIGEAC        3";
const char depart_31[]PROGMEM= "HEURE    DEPART     V---------------------18h32 FIGEAC        319h18 NEUSSARGUES   2";
const char depart_32[]PROGMEM= "HEURE    DEPART     V---------------------18h32 FIGEAC        319h18 NEUSSARGUES   221h17 FIGEAC        3";
const char depart_33[]PROGMEM= "HEURE    DEPART     V---------------------18h32 FIGEAC        319h18 NEUSSARGUES   221h17 FIGEAC        321h46 BRIVE         1";

// Initialisation de la table (attention il doit y avoir le même nombre de départ que dans les lignes au-dessus en faisant bien attention à la syntaxe)
const char*const depart_table[]PROGMEM={depart_0,depart_1,depart_2,depart_3,depart_4,depart_5,depart_6,depart_7,depart_8,depart_9,depart_10,depart_11,depart_12\
,depart_13,depart_14,depart_15,depart_16,depart_17,depart_18,depart_19,depart_20,depart_21,depart_22,depart_23,depart_24,depart_25,depart_26,depart_27,depart_28\
,depart_29,depart_30,depart_31,depart_32,depart_33};

// table des arrivées
const char arrivee_0[]PROGMEM= "HEURE    ARRIVEE    V---------------------O5h45 TOULOUSE      2";
const char arrivee_1[]PROGMEM= "HEURE    ARRIVEE    V---------------------O5h45 TOULOUSE      2O6h15 PARIS AUSTER  5";
const char arrivee_2[]PROGMEM= "HEURE    ARRIVEE    V---------------------O5h45 TOULOUSE      2O6h15 PARIS AUSTER  5O6h45 BRIVE         3";
const char arrivee_3[]PROGMEM= "HEURE    ARRIVEE    V---------------------O5h45 TOULOUSE      2O6h15 PARIS AUSTER  5O6h45 BRIVE         3O7h26 CAPDENAC      2";
const char arrivee_4[]PROGMEM= "HEURE    ARRIVEE    V---------------------O5h45 TOULOUSE      2O6h15 PARIS AUSTER  5O6h45 BRIVE         3O7h26 CAPDENAC      2O8h23 CLERMONT FR   1"; 
const char arrivee_5[]PROGMEM= "HEURE    ARRIVEE    V---------------------O5h45 TOULOUSE      2O6h15 PARIS AUSTER  5O6h45 BRIVE         3O7h26 CAPDENAC      2O8h23 CLERMONT FR   1O9h47 FIGEAC        3";

const char arrivee_6[]PROGMEM= "HEURE    ARRIVEE    V---------------------O7h26 CAPDENAC      2";
const char arrivee_7[]PROGMEM= "HEURE    ARRIVEE    V---------------------O7h26 CAPDENAC      2O8h23 CLERMONT FR   1";
const char arrivee_8[]PROGMEM= "HEURE    ARRIVEE    V---------------------O7h26 CAPDENAC      2O8h23 CLERMONT FR   1O9h47 FIGEAC        3";
const char arrivee_9[]PROGMEM= "HEURE    ARRIVEE    V---------------------O7h26 CAPDENAC      2O8h23 CLERMONT FR   1O9h47 FIGEAC        31Oh32 NEUSSARGUES   2";
const char arrivee_10[]PROGMEM= "HEURE    ARRIVEE    V---------------------O7h26 CAPDENAC      2O8h23 CLERMONT FR   1O9h47 FIGEAC        31Oh32 NEUSSARGUES   21Oh45 BRIVE         3";
const char arrivee_11[]PROGMEM= "HEURE    ARRIVEE    V---------------------O7h26 CAPDENAC      2O8h23 CLERMONT FR   1O9h47 FIGEAC        31Oh32 NEUSSARGUES   21Oh45 BRIVE         311h55 CLERMONT FER  1";

const char arrivee_12[]PROGMEM= "HEURE    ARRIVEE    V---------------------1Oh32 NEUSSARGUES   2";
const char arrivee_13[]PROGMEM= "HEURE    ARRIVEE    V---------------------1Oh32 NEUSSARGUES   21Oh45 BRIVE         3";
const char arrivee_14[]PROGMEM= "HEURE    ARRIVEE    V---------------------1Oh32 NEUSSARGUES   21Oh45 BRIVE         311h55 CLERMONT FER  1";
const char arrivee_15[]PROGMEM= "HEURE    ARRIVEE    V---------------------1Oh32 NEUSSARGUES   21Oh45 BRIVE         311h55 CLERMONT FER  112h29 TOULOUSE      2";
const char arrivee_16[]PROGMEM= "HEURE    ARRIVEE    V---------------------1Oh32 NEUSSARGUES   21Oh45 BRIVE         311h55 CLERMONT FER  112h29 TOULOUSE      214hO6 BRIVE         3";
const char arrivee_17[]PROGMEM= "HEURE    ARRIVEE    V---------------------1Oh32 NEUSSARGUES   21Oh45 BRIVE         311h55 CLERMONT FER  112h29 TOULOUSE      214hO6 BRIVE         315h28 NEUSSARGUES   2";

const char arrivee_18[]PROGMEM= "HEURE    ARRIVEE    V---------------------12h29 TOULOUSE      2";
const char arrivee_19[]PROGMEM= "HEURE    ARRIVEE    V---------------------12h29 TOULOUSE      214hO6 BRIVE         3";
const char arrivee_20[]PROGMEM= "HEURE    ARRIVEE    V---------------------12h29 TOULOUSE      214hO6 BRIVE         315h28 NEUSSARGUES   2";
const char arrivee_21[]PROGMEM= "HEURE    ARRIVEE    V---------------------12h29 TOULOUSE      214hO6 BRIVE         315h28 NEUSSARGUES   215h33 BRIVE         3";
const char arrivee_22[]PROGMEM= "HEURE    ARRIVEE    V---------------------12h29 TOULOUSE      214hO6 BRIVE         315h28 NEUSSARGUES   215h33 BRIVE         316h32 TOULOUSE      2";
const char arrivee_23[]PROGMEM= "HEURE    ARRIVEE    V---------------------12h29 TOULOUSE      214hO6 BRIVE         315h28 NEUSSARGUES   215h33 BRIVE         316h32 TOULOUSE      217hO7 NEUSSARGUES   1";

const char arrivee_24[]PROGMEM= "HEURE    ARRIVEE    V---------------------15h33 BRIVE         3";
const char arrivee_25[]PROGMEM= "HEURE    ARRIVEE    V---------------------15h33 BRIVE         316h32 TOULOUSE      2";
const char arrivee_26[]PROGMEM= "HEURE    ARRIVEE    V---------------------15h33 BRIVE         316h32 TOULOUSE      217hO7 NEUSSARGUES   1";
const char arrivee_27[]PROGMEM= "HEURE    ARRIVEE    V---------------------15h33 BRIVE         316h32 TOULOUSE      217hO7 NEUSSARGUES   118h32 FIGEAC        3";
const char arrivee_28[]PROGMEM= "HEURE    ARRIVEE    V---------------------15h33 BRIVE         316h32 TOULOUSE      217hO7 NEUSSARGUES   118h32 FIGEAC        319hO8 CLERMONT FER  2";
const char arrivee_29[]PROGMEM= "HEURE    ARRIVEE    V---------------------15h33 BRIVE         316h32 TOULOUSE      217hO7 NEUSSARGUES   118h32 FIGEAC        319hO8 CLERMONT FER  22OhO1 BRIVE         3";

const char arrivee_30[]PROGMEM= "HEURE    ARRIVEE    V---------------------19hO8 CLERMONT FER  2";
const char arrivee_31[]PROGMEM= "HEURE    ARRIVEE    V---------------------19hO8 CLERMONT FER  22OhO1 BRIVE         3";
const char arrivee_32[]PROGMEM= "HEURE    ARRIVEE    V---------------------19hO8 CLERMONT FER  22OhO1 BRIVE         321h17 FIGEAC        3";
const char arrivee_33[]PROGMEM= "HEURE    ARRIVEE    V---------------------19hO8 CLERMONT FER  22OhO1 BRIVE         321h17 FIGEAC        321h4O TOULOUSE      1";

// Initialisation de la table (attention il doit y avoir le même nombre d'arrivées que dans les lignes au-dessus en faisant bien attention à la syntaxe)
const char*const arrivee_table[]PROGMEM={arrivee_0,arrivee_1,arrivee_2,arrivee_3,arrivee_4,arrivee_5,arrivee_6,arrivee_7,arrivee_8,arrivee_9,arrivee_10,arrivee_11,arrivee_12\
,arrivee_13,arrivee_14,arrivee_15,arrivee_16,arrivee_17,arrivee_18,arrivee_19,arrivee_20,arrivee_21,arrivee_22,arrivee_23,arrivee_24,arrivee_25,arrivee_26,arrivee_27,arrivee_28\
,arrivee_29,arrivee_30,arrivee_31,arrivee_32,arrivee_33};

//Définition du buffer
char buffer[170];


//Création d'un sous-programme d'initialisation des afficheurs
void initaffichage() 
{
  // Initialisation de l'afficheur 1
  // Vider le buffer.
  display1.clearDisplay();
  // choix de la taille
  display1.setTextSize(1);
  // choix de la couleur
  display1.setTextColor(WHITE);
  // initialisation du début d'affichage
  display1.setCursor(0,0);
 
  // Initialisation de l'afficheur 2
  // Vider le buffer.
  display2.clearDisplay();
  // choix de la taille
  display2.setTextSize(1);
  // choix de la couleur
  display2.setTextColor(WHITE);
  // initialisation du début d'affichage
  display2.setCursor(0,0);
}
//fin du sous-programme d'initialisation des afficheurs


void setup()   
{               
  // initialisation de la vitesse de la liaison serie
  Serial.begin(9600);
  // par défaut nous allons générer une tension de 3.3v
  // initialisation de la liaison ID2C avec l'adresse 0x3D
  display1.begin(SSD1306_SWITCHCAPVCC, 0x3D);
  // initialisation de la liaison ID2C avec l'adresse 0x3C
  display2.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  // fin de l'initialisation
   }
   
void loop()
{
  int tempo; //création d'une variable tempo
// création d'une boucle for
  for(int i=0;i<34;i++)
  {
    initaffichage();
    strcpy_P(buffer,(char*)pgm_read_word(&(depart_table[i])));
    display1.println(buffer);
    display1.display();
    if (i==5 ||i==11 ||i==17 ||i==23 ||i==29 ||i==33)
      tempo=4000;
      else tempo=20;
     
    initaffichage();
    strcpy_P(buffer,(char*)pgm_read_word(&(arrivee_table[i])));
    display2.println(buffer);
    display2.display();
    delay(tempo);
  }
}
Cantalou expatrié
Avatar de l’utilisateur
Dangui95
Volubile
 
Messages: 2251
Inscrit le: Lun 27 Août 2007, 20:44
Localisation: Val d'oise
Âge: 63
Echelle pratiquée: HO
Prénom: Gilbert
Club: Rigollots© and co

Re: Affichage arrivée départ fonctionnel 1/87

Publié: Ven 27 Mai 2016, 18:36 
Explication du programme d’affichage d’Aurillac

Je vais vous expliquer comment adapter l’affichage Aurillac à vos destinations.

Nous avons dans le programme les lignes suivantes - la démarche sera la même pour les arrivées - vous retrouvez les données du tableau Excel fourni précédemment.

Voici le premier écran et la première ligne de cette l’écran.
const char depart_0[]PROGMEM= "HEURE….DEPART…..V---------------------O5h15.BRIVE………3";

Les espaces du tableau Excel (vous vous rappelez un espace du tableau Excel et équivalent à un caractère) sont ici simulés par des points, vous remarquerez que les afficheurs retournent à la ligne tout seul donc nous devons taper les caractères d’affichage à la suite les uns des autres.
Ce qui donne :

HEURE….DEPART…..V première ligne de l’écran (21 caractères avec les espaces)
--------------------- deuxième ligne de l’écran (21 tirets haut)
O5h15.BRIVE………3 troisième ligne de l’écran (21 caractères avec les espaces)

Ecran suivant je rajoute une ligne

const char depart_1[]PROGMEM= "HEURE DEPART V---------------------O5h15 BRIVE 305h54 CLERMONT FR 2";

Et ainsi de suite en n’oubliant pas qu’à la fin d’un écran les trois dernières lignes sont répétées une par une en tête de l’écran suivant.
Vous pouvez modifier les données en respectant la syntaxe.

Maintenant il faut faire attention dans mon programme j’ai 33 écrans différents pour les départs et 33 écrans pour les arrivées.

A la fin de la création des écrans on doit créer la table donc voici la ligne de programme.
// Initialisation de la table (attention il doit y avoir le même nombre de départ que dans les lignes au-dessus en faisant bien attention à la syntaxe)
const char*const depart_table[]PROGMEM={depart_0,depart_1,depart_2,depart_3,depart_4,depart_5,depart_6,depart_7,depart_8,depart_9,depart_10,depart_11,depart_12\
,depart_13,depart_14,depart_15,depart_16,depart_17,depart_18,depart_19,depart_20,depart_21,depart_22,depart_23,depart_24,depart_25,depart_26,depart_27,depart_28\
,depart_29,depart_30,depart_31,depart_32,depart_33};


On voit bien qu’il y en a 33, si vous créez moins ou plus d’écrans il faudra mettre en concordance cette table en respectant la syntaxe.
Même chose pour les arrivées.

Maintenant il faut faire attention à d’autres endroits du programme ou le nombre d’écrans à une influence dont voici les endroits

création d'une boucle for
for(int i=0;i<34;i++)
Ici nous avons une boucle d’incrémentation qui va de 0 à 33 donc nous devons mettre le chiffre 33+1 c’est dire 34 car 34 est précédé du symbole supérieur.

initaffichage();
strcpy_P(buffer,(char*)pgm_read_word(&(depart_table[i])));
display1.println(buffer);
display1.display();
if (i==5 ||i==11 ||i==17 ||i==23 ||i==29 ||i==33)

Ici nous avons une condition qui correspond à la fin de chaque écran et qui sont des multiples de 6 car nous avons deux lignes identiques et 6 affichages de destination.
Donc 5 (car nous commençons à 0) puis 11 (5+6), puis 17, puis 23, puis29, puis 33 (qui est notre dernier écran
Si vous créez moins ou plus d’écrans il faudra mettre en concordance cette table en respectant la syntaxe.

Vous remarquerez que vous avez obligation d’avoir autant d’écrans arrivées que d’écran départs car cette boucle est commune aux deux afficheurs.

Enfin dernier endroit où vous pouvez modifier des valeurs.Cet endroit défini les durées des tempos d’affichage.

tempo=4000;
else tempo=20;


La valeur de 4000 correspond au délai ou l’affichage reste fixe, là c’est 4 secondes car c’était pour la Vidéo que j’ai réalisée sur le Forum (c’est trop court).

La valeur de 20 c’est le temps entre deux écrans lors du défilement des lignes quand la mise à jour d’écran se fait. Cette valeur me semble correcte.

Voilà c’est les seuls endroits que vous pouvez modifier sans trop de risques.
Dernière édition par Dangui95 le Ven 27 Mai 2016, 18:50, édité 1 fois au total.
Cantalou expatrié
Avatar de l’utilisateur
Dangui95
Volubile
 
Messages: 2251
Inscrit le: Lun 27 Août 2007, 20:44
Localisation: Val d'oise
Âge: 63
Echelle pratiquée: HO
Prénom: Gilbert
Club: Rigollots© and co

Re: Affichage arrivée départ fonctionnel 1/87

Publié: Ven 27 Mai 2016, 18:37 
A vous de jouer

Maintenant que votre programme vous satisfait, qu’il tourne et qu’il est chargé dans l’ARDUINO, vous remplacez au bout du câble USB, le PC par le chargeur USB.

Votre affichage est autonome, il ne reste plus qu’à l’intégrer dans votre gare.
Bon courage
Cantalou expatrié
Avatar de l’utilisateur
Dangui95
Volubile
 
Messages: 2251
Inscrit le: Lun 27 Août 2007, 20:44
Localisation: Val d'oise
Âge: 63
Echelle pratiquée: HO
Prénom: Gilbert
Club: Rigollots© and co

Re: Affichage arrivée départ fonctionnel 1/87

Publié: Ven 27 Mai 2016, 18:42 
Je tiens à remercier Joel SORANZO qui m'a initié à l'Arduino et qui a relu pour validation ce tuto. C'est le président de mon FabLab de Vauréal qui se nomme VoLAB

Image
Cantalou expatrié
Avatar de l’utilisateur
Dangui95
Volubile
 
Messages: 2251
Inscrit le: Lun 27 Août 2007, 20:44
Localisation: Val d'oise
Âge: 63
Echelle pratiquée: HO
Prénom: Gilbert
Club: Rigollots© and co

Re: Affichage arrivée départ fonctionnel 1/87

Publié: Ven 27 Mai 2016, 18:50 
Quel travail pour réaliser ce tuto! :o

Même si je ne suis pas (pour l'instant) directement intéressé, je n'ai pu m'empêcher de le lire de bout en bout, et en étant un tantinet soit peu méticuleux, je ne vois pas comment ceux qui se lanceront dans ce genre de réalisation pourraient être déçus.

Bravo à toi pour ce fil.

:wink:
Amicalement.

Serge
Avatar de l’utilisateur
Serge de Bollène
Exubérant
 
Messages: 2949
Inscrit le: Dim 01 Avr 2012, 19:37
Localisation: Bollène, Vaucluse
Âge: 57
Echelle pratiquée: HO

Re: Affichage arrivée départ fonctionnel 1/87

Publié: Ven 27 Mai 2016, 19:19 
Je viens de lire ton tuto et c'est un travail extraordinaire.

En effet, faire un tuto suppose de n'oublier aucune étape, ce qui nécessite beaucoup de concentration et un esprit bien structuré. J'avais déjà vu un tuto de ta part sur le câblage du réseau. Mais faire un tuto sur des manips informatiques, en joignant toutes les captures d'écrans nécessaires, c'est du grand art ! :applause: :applause: :applause:

Et j'applaudis d'autant plus que tu as affirmé qu'il y a trois mois, tu n'avais jamais pratiqué Arduino. Pour une première, ça en jette !

Aussi j'espère que ton exemple saura convaincre d'autres membres du forum de s'y mettre, d'autant que tu leur as facilité tout le travail d'installation du logiciel, d'une bibliothèque et que Notepad est aussi une excellente idée.

Bravo Gilbert et merci pour ce partage. :wink:

PS : ton travail m'a obligé à changer quelques lignes dans mon prochain cours sur les écrans LCD que je compte publier la semaine prochaine. Et il est question de toi et de ce tuto.
Avatar de l’utilisateur
Arduino
Démonstratif
 
Messages: 1516
Inscrit le: Mer 25 Sep 2013, 17:14

Re: Affichage arrivée départ fonctionnel 1/87

Publié: Ven 27 Mai 2016, 22:35 
Je dis juste bravo !!!

Je vais faire un pdf de ce toto pour le conserver précieusement.
Juste une question, existe t-il d'autres écrans (plus grand en résolution) basé sur le même système pour faire par exemple un affichage plus grand dans des gares plus grande.
dernière question, est-il possible de programmer et d'utiliser un micro processeur comme celui sur la carte arduino pour faire ceci ? Car utiliser une carte arduino pour ça, ça serait du gaspillage je trouve.
Kennoutch
Fécond
 
Messages: 534
Inscrit le: Mer 04 Nov 2009, 20:51
Âge: 32
Echelle pratiquée: HO

Re: Affichage arrivée départ fonctionnel 1/87

Publié: Ven 27 Mai 2016, 23:17 
Et ben, super boulot Gilbert :applause: :applause: :applause:
Dany MACHI
Paysagiste de salon
Avatar de l’utilisateur
Dan_ost2000
Intarissable !
 
Messages: 15495
Inscrit le: Mer 30 Août 2006, 08:05
Localisation: Strasbourg
Âge: 60
Echelle pratiquée: HO-HOm-HOe I à III
Prénom: Dany, c'est écrit...
Club: Rigollots© et Cie

Re: Affichage arrivée départ fonctionnel 1/87

Publié: Sam 28 Mai 2016, 09:57 
kennoutch a écrit:Je dis juste bravo !!!

Je vais faire un pdf de ce toto pour le conserver précieusement.
Juste une question, existe t-il d'autres écrans (plus grand en résolution) basé sur le même système pour faire par exemple un affichage plus grand dans des gares plus grande.
dernière question, est-il possible de programmer et d'utiliser un micro processeur comme celui sur la carte arduino pour faire ceci ? Car utiliser une carte arduino pour ça, ça serait du gaspillage je trouve.


Dès lundi, je vais poster un cours sur les affichages LCD et la façon de les utiliser.

Des écrans, il en existe de toute taille : s'ils répondent à la norme Hitachi 44780, la bibliothèque LiquidCrystal fournie avec l'IDE d'Arduino permet de les utiliser simplement. Pour d'autres écrans, comme vient de le démontrer Dangui95, on peut trouver une bibliothèque adaptée. L'intérêt d'une bibliothèque est que l'écran devient simple à utiliser.

On peut aussi relier l'écran à un microcontrôleur, mais :
- cela suppose de mettre autour du microcontrôleur tout ce qui est nécessaire à son fonctionnement (régulateur de tension avec les capas, quartz, bouton reset pour ne citer que l'essentiel) donc on se rapproche du prix d'un module acheté en Chine
- il faut ensuite écrire tout le programme pour gérer l'écran (souvent en assembleur, difficile à déboguer)
- il faut pouvoir programmer le µC (nécessité d'avoir un programmateur qui coûte assez cher)
Donc, oui c'est possible, mais cela représente beaucoup de travail pour une économie très faible. Simplifie-toi la vie en utilisant un module dont le prix est une quinzaine d'euros, à moins que le côté "Tout faire soi-même" soit ta motivation (ce serait tout à ton honneur). :wink:
Avatar de l’utilisateur
Arduino
Démonstratif
 
Messages: 1516
Inscrit le: Mer 25 Sep 2013, 17:14

Re: Affichage arrivée départ fonctionnel 1/87

Publié: Sam 28 Mai 2016, 19:23 
Ah cool arduino !!!

Comme je vais me mettre à l'arduino pour exploiter ces capacités, je vais devoir regarder les cours pour me mettre à jour ^^

Un gros travail m'attends ^^
Kennoutch
Fécond
 
Messages: 534
Inscrit le: Mer 04 Nov 2009, 20:51
Âge: 32
Echelle pratiquée: HO

Re: Affichage arrivée départ fonctionnel 1/87

Publié: Mar 07 Juin 2016, 23:11 
Et bien voilà :::)))
Merci Dangui pour ce Tutorial de grande qualité et bravo !!!

Image
Avatar de l’utilisateur
Sa120672
Communicatif
 
Messages: 786
Inscrit le: Mer 23 Avr 2014, 00:24
Localisation: Seyssinet, region Grenobloise
Âge: 45
Echelle pratiquée: H0
Prénom: Sam

Re: Affichage arrivée départ fonctionnel 1/87

Publié: Mar 07 Juin 2016, 23:17 


Ce tutto est d'une grande qualité :

J'ai mis montre en main moins d'une heure pour tout rendre fonctionnel ...
Il suffit de suivre pas à pas les étapes et tout fonctionne à merveille.

Du coup Dangui95, si vous avez d'autres idées géniales comme celle-ci, je suis preneur ::))
Je vais fabriquer un écrin pour accueillir les écrans avec le logo SNCF et les fixations qui vont bien. Je publierai ma réalisation après gravage à la CNC.
Si certains sont intéressés, pas de soucis, un message en MP et je fabriquerai les quantités voulues. Ce sera ma maigre contribution ::))
Avatar de l’utilisateur
Sa120672
Communicatif
 
Messages: 786
Inscrit le: Mer 23 Avr 2014, 00:24
Localisation: Seyssinet, region Grenobloise
Âge: 45
Echelle pratiquée: H0
Prénom: Sam

Re: Affichage arrivée départ fonctionnel 1/87

Publié: Jeu 16 Juin 2016, 14:04 
Merci beaucoup pour le compliment.

Oui je suis sur un autre coup, un peu plus spécial, c'est de l'animation d'un personnage.

Des nouvelles bientôt.
Cantalou expatrié
Avatar de l’utilisateur
Dangui95
Volubile
 
Messages: 2251
Inscrit le: Lun 27 Août 2007, 20:44
Localisation: Val d'oise
Âge: 63
Echelle pratiquée: HO
Prénom: Gilbert
Club: Rigollots© and co

PrécédentSuivant

Retour vers Arduino

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Google [Bot] et 2 invité(s)