Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Guillaume

Pages: 1 ... 7 8 [9] 10
121
Bus CAN / Re : BreakoutBoard CAN
« le: janvier 17, 2015, 10:12:12 pm »
Bon repas

122
Infos et bonnes affaires / Re : Bonne Année
« le: janvier 01, 2015, 11:04:34 am »
Bonne année à tous.
Tout pareil ;)

123
Vos projets / Re : Ecran Nokia 5110
« le: décembre 27, 2014, 12:42:22 pm »
Je laisse cela aux pro ;)

124
Débuter / Re : Comment perdre son temps :)
« le: décembre 27, 2014, 09:23:00 am »
J'avais vu un petit peu mais je n'avais pas poussé plus loin. Je m'en sers de test pour faire de petits montages pour le moment.

125
Débuter / Re : Comment perdre son temps :)
« le: décembre 27, 2014, 08:42:10 am »
J'ai perdu hier un peu de temps en testant mon écran Nokia, en pensant qu'un Leonardo compatible n'est pas si différent qu'un Uno. Manque de pot, pas du tout.
Mais bon, j'ai vite repris un Uno, mais je n'ai pas cherché ce qu'il bloquait ;)
Et vu que j'ai testé avec un pro mini, l'écran va rester dessus :)

126
Vos projets / Re : Ecran Nokia 5110
« le: décembre 26, 2014, 07:51:30 pm »
Oui alors tu vois déjà que ce que tu as écris j'ai du mal alors imagine ce document. Je l'ai ouvert, je n'arrive pas trop à exprimer mon sentiment, alors imagine ma tête devant ;)

127
Vos projets / Re : Ecran Nokia 5110
« le: décembre 26, 2014, 06:54:16 pm »
Et bé
j'en reste bouche bée
essayé, testé et approuvé

Tu pourrais employer la maxime de César

128
Vos projets / Re : Ecran Nokia 5110
« le: décembre 26, 2014, 01:30:40 pm »
Ce problème est résolu en changeant un paramètre (j'ai comparé par rapport aux autres codes) :
LcdWrite( LCD_CMD, 0xBf );  // Set LCD Vop (Contrast). //B1
au lieu de mettre Bf, j'ai mis B1 et cela rentre dans l'ordre.

Comme j'aimerai utiliser une librairie (pour avoir un programme moins fouilli, je me suis tourné vers https://github.com/carlosefr/pcd8544, mais elle a le même problème que le dernier programme, mais là je n'ai pas réussi à trouver une solution.
A noter que seul du texte m'intéresse, les images c'est trop gadget, pas besoin.

Mais sinon je peux toujours me dépatouiller avec les premiers, si vous ne trouvez pas rapidement.

129
Vos projets / Re : Ecran Nokia 5110
« le: décembre 26, 2014, 01:30:15 pm »
Le suivant présente un problème, il grise l'écran empêchant une lecture correcte, un problème au niveau du contraste :
    /*
    This Code has extra features
    including a XY positioning function on Display
    and a Line Draw function on Nokia 3310 LCD
    It is modded from the original
    http://playground.arduino.cc/Code/PCD8544
    */
    // Mods by Jim Park
    // jim(^dOt^)buzz(^aT^)gmail(^dOt^)com
    // hope it works for you
    #define PIN_SCE   7  // LCD CS  .... Pin 3
    #define PIN_RESET 6  // LCD RST .... Pin 1
    #define PIN_DC    5  // LCD Dat/Com. Pin 5
    #define PIN_SDIN  4  // LCD SPIDat . Pin 6
    #define PIN_SCLK  3  // LCD SPIClk . Pin 4
                         // LCD Gnd .... Pin 2
                         // LCD Vcc .... Pin 8
                         // LCD Vlcd ... Pin 7

    #define LCD_C     LOW
    #define LCD_D     HIGH

    #define LCD_X     84
    #define LCD_Y     48
    #define LCD_CMD   0

    int a = 0;

    static const byte ASCII[][5] =
    {
     {0x00, 0x00, 0x00, 0x00, 0x00} // 20
    ,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 !
    ,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 "
    ,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 #
    ,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $
    ,{0x23, 0x13, 0x08, 0x64, 0x62} // 25 %
    ,{0x36, 0x49, 0x55, 0x22, 0x50} // 26 &
    ,{0x00, 0x05, 0x03, 0x00, 0x00} // 27 '
    ,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28 (
    ,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29 )
    ,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a *
    ,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b +
    ,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c ,
    ,{0x08, 0x08, 0x08, 0x08, 0x08} // 2d -
    ,{0x00, 0x60, 0x60, 0x00, 0x00} // 2e .
    ,{0x20, 0x10, 0x08, 0x04, 0x02} // 2f /
    ,{0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0
    ,{0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1
    ,{0x42, 0x61, 0x51, 0x49, 0x46} // 32 2
    ,{0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3
    ,{0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4
    ,{0x27, 0x45, 0x45, 0x45, 0x39} // 35 5
    ,{0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6
    ,{0x01, 0x71, 0x09, 0x05, 0x03} // 37 7
    ,{0x36, 0x49, 0x49, 0x49, 0x36} // 38 8
    ,{0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9
    ,{0x00, 0x36, 0x36, 0x00, 0x00} // 3a :
    ,{0x00, 0x56, 0x36, 0x00, 0x00} // 3b ;
    ,{0x08, 0x14, 0x22, 0x41, 0x00} // 3c <
    ,{0x14, 0x14, 0x14, 0x14, 0x14} // 3d =
    ,{0x00, 0x41, 0x22, 0x14, 0x08} // 3e >
    ,{0x02, 0x01, 0x51, 0x09, 0x06} // 3f ?
    ,{0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @
    ,{0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A
    ,{0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B
    ,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C
    ,{0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D
    ,{0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E
    ,{0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F
    ,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G
    ,{0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H
    ,{0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I
    ,{0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J
    ,{0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K
    ,{0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L
    ,{0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M
    ,{0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N
    ,{0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O
    ,{0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P
    ,{0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q
    ,{0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R
    ,{0x46, 0x49, 0x49, 0x49, 0x31} // 53 S
    ,{0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T
    ,{0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U
    ,{0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V
    ,{0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W
    ,{0x63, 0x14, 0x08, 0x14, 0x63} // 58 X
    ,{0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y
    ,{0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z
    ,{0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [
    ,{0x02, 0x04, 0x08, 0x10, 0x20} // 5c ¥
    ,{0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ]
    ,{0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^
    ,{0x40, 0x40, 0x40, 0x40, 0x40} // 5f _
    ,{0x00, 0x01, 0x02, 0x04, 0x00} // 60 `
    ,{0x20, 0x54, 0x54, 0x54, 0x78} // 61 a
    ,{0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b
    ,{0x38, 0x44, 0x44, 0x44, 0x20} // 63 c
    ,{0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d
    ,{0x38, 0x54, 0x54, 0x54, 0x18} // 65 e
    ,{0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f
    ,{0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g
    ,{0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h
    ,{0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i
    ,{0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j
    ,{0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k
    ,{0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l
    ,{0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m
    ,{0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n
    ,{0x38, 0x44, 0x44, 0x44, 0x38} // 6f o
    ,{0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p
    ,{0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q
    ,{0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r
    ,{0x48, 0x54, 0x54, 0x54, 0x20} // 73 s
    ,{0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t
    ,{0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u
    ,{0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v
    ,{0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w
    ,{0x44, 0x28, 0x10, 0x28, 0x44} // 78 x
    ,{0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y
    ,{0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z
    ,{0x00, 0x08, 0x36, 0x41, 0x00} // 7b {
    ,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c |
    ,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d }
    ,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ←
    ,{0x00, 0x06, 0x09, 0x09, 0x06} // 7f →
    };




    void LcdCharacter(char character)
    {
      LcdWrite(LCD_D, 0x00);
      for (int index = 0; index < 5; index++)
      {
        LcdWrite(LCD_D, ASCII[character - 0x20][index]);
      }
      LcdWrite(LCD_D, 0x00);
    }

    void LcdClear(void)
    {
      for (int index = 0; index < LCD_X * LCD_Y / 8; index++)
      {
        LcdWrite(LCD_D, 0x00);
      }
    }

    void LcdInitialise(void)
    {
      pinMode(PIN_SCE,   OUTPUT);
      pinMode(PIN_RESET, OUTPUT);
      pinMode(PIN_DC,    OUTPUT);
      pinMode(PIN_SDIN,  OUTPUT);
      pinMode(PIN_SCLK,  OUTPUT);

      digitalWrite(PIN_RESET, LOW);
     // delay(1);
      digitalWrite(PIN_RESET, HIGH);

      LcdWrite( LCD_CMD, 0x21 );  // LCD Extended Commands.
      LcdWrite( LCD_CMD, 0xBf );  // Set LCD Vop (Contrast). //B1
      LcdWrite( LCD_CMD, 0x04 );  // Set Temp coefficent. //0x04
      LcdWrite( LCD_CMD, 0x14 );  // LCD bias mode 1:48. //0x13
      LcdWrite( LCD_CMD, 0x0C );  // LCD in normal mode. 0x0d for inverse
      LcdWrite(LCD_C, 0x20);
      LcdWrite(LCD_C, 0x0C);
    }

    void LcdString(char *characters)
    {
      while (*characters)
      {
        LcdCharacter(*characters++);
      }
    }

    void LcdWrite(byte dc, byte data)
    {
      digitalWrite(PIN_DC, dc);
      digitalWrite(PIN_SCE, LOW);
      shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data);
      digitalWrite(PIN_SCE, HIGH);
    }

    // gotoXY routine to position cursor
    // x - range: 0 to 84
    // y - range: 0 to 5

    void gotoXY(int x, int y)
    {
      LcdWrite( 0, 0x80 | x);  // Column.
      LcdWrite( 0, 0x40 | y);  // Row.

    }



    void drawLine(void)
    {
      unsigned char  j;
       for(j=0; j<84; j++) // top
       {
              gotoXY (j,0);
         LcdWrite (1,0x01);
      }   
      for(j=0; j<84; j++) //Bottom
       {
              gotoXY (j,5);
         LcdWrite (1,0x80);
      }   

      for(j=0; j<6; j++) // Right
       {
              gotoXY (83,j);
         LcdWrite (1,0xff);
      }   
       for(j=0; j<6; j++) // Left
       {
              gotoXY (0,j);
         LcdWrite (1,0xff);
      }

    }


    void setup(void)
    {

     LcdInitialise();
      LcdClear();

    }

    void loop(void)
    {
      // Display some simple character animation
      //
      int a,b;
      char Str[15];
      // Draw a Box
      for(b=1000; b>0; b--){
      drawLine();
      for(a=0; a<=5 ; a++){
      gotoXY(4,1);
      // Put text in Box
      LcdString ("TestDisplay");
      gotoXY(24,3);
      LcdCharacter('H');
      LcdCharacter('E');
      LcdCharacter('L');
      LcdCharacter('L');
      LcdCharacter('O');
      LcdCharacter(' ');
      LcdCharacter('=');
      // Draw + at this position
      gotoXY(10,3);
      LcdCharacter('=');
      delay(500);
      gotoXY(24,3);
      LcdCharacter('h');
      LcdCharacter('e');
      LcdCharacter('l');
      LcdCharacter('l');
      LcdCharacter('o');
      LcdCharacter(' ');
      LcdCharacter('-');
      // Draw - at this position
      gotoXY(10,3);
      LcdCharacter('-');
      delay(500);
      }
      }
    }


130
Vos projets / Re : Ecran Nokia 5110
« le: décembre 26, 2014, 01:29:50 pm »
ou cela là
    // === Ecran LCD Nokia 5110 ============================
    //Exemple d'affichage d'image bitmap 84x48 pixels
    // tiptopboards.com
    // C ROLLAND 24 08 2013
    //=======================================================
    // Source d'inspiration de ce code :
    // 7-17-2011  Spark Fun Electronics 2011 Nathan Seidle
    // http://www.sparkfun.com/products/10168
    //=======================================================

    //Câblage de l'écran sur la carte Arduino (résistance en série)
    #define PIN_SCE   7 //Pin 3 on LCD Chip Select (1 k)
    #define PIN_RESET 6 //Pin 4 on LCD reset, active low (10 k)
    #define PIN_DC    5 //Pin 5 on LCD data/commande (10 k)
    #define PIN_SDIN  4 //Pin 6 on LCD SPI Mosi (10 k)
    #define PIN_SCLK  3 //Pin 7 on LCD SPI clk (10 k)

    //La pin DC indique au LCD si on envoie une donnée ou une commande
    #define LCD_COMMAND 0
    #define LCD_DATA  1

    //Notre écran fait 84 x 48 pixels (à modifier ici pour d'autres LCD)
    #define LCD_X     84
    #define LCD_Y     48

    long temps = 0;  //Pour chronométrer la vitesse de l'affichage

    //Ce tableau comporte les caractères Ascii codés en octets
    //Cette police de caractères fait 5 pixels (haut) x 8 (large)
    static const byte ASCII[][5] = {
      {0x00, 0x00, 0x00, 0x00, 0x00} // 20
      ,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 !
      ,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 "
      ,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 #
      ,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $
      ,{0x23, 0x13, 0x08, 0x64, 0x62} // 25 %
      ,{0x36, 0x49, 0x55, 0x22, 0x50} // 26 &
      ,{0x00, 0x05, 0x03, 0x00, 0x00} // 27 '
      ,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28 (
      ,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29 )
      ,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a *
      ,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b +
      ,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c ,
      ,{0x08, 0x08, 0x08, 0x08, 0x08} // 2d -
      ,{0x00, 0x60, 0x60, 0x00, 0x00} // 2e .
      ,{0x20, 0x10, 0x08, 0x04, 0x02} // 2f /
      ,{0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0
      ,{0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1
      ,{0x42, 0x61, 0x51, 0x49, 0x46} // 32 2
      ,{0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3
      ,{0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4
      ,{0x27, 0x45, 0x45, 0x45, 0x39} // 35 5
      ,{0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6
      ,{0x01, 0x71, 0x09, 0x05, 0x03} // 37 7
      ,{0x36, 0x49, 0x49, 0x49, 0x36} // 38 8
      ,{0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9
      ,{0x00, 0x36, 0x36, 0x00, 0x00} // 3a :
      ,{0x00, 0x56, 0x36, 0x00, 0x00} // 3b ;
      ,{0x08, 0x14, 0x22, 0x41, 0x00} // 3c <
      ,{0x14, 0x14, 0x14, 0x14, 0x14} // 3d =
      ,{0x00, 0x41, 0x22, 0x14, 0x08} // 3e >
      ,{0x02, 0x01, 0x51, 0x09, 0x06} // 3f ?
      ,{0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @
      ,{0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A
      ,{0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B
      ,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C
      ,{0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D
      ,{0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E
      ,{0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F
      ,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G
      ,{0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H
      ,{0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I
      ,{0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J
      ,{0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K
      ,{0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L
      ,{0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M
      ,{0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N
      ,{0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O
      ,{0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P
      ,{0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q
      ,{0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R
      ,{0x46, 0x49, 0x49, 0x49, 0x31} // 53 S
      ,{0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T
      ,{0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U
      ,{0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V
      ,{0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W
      ,{0x63, 0x14, 0x08, 0x14, 0x63} // 58 X
      ,{0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y
      ,{0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z
      ,{0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [
      ,{0x02, 0x04, 0x08, 0x10, 0x20} // 5c antislash (bug ici dans le prg. d'origine; corrigé)
      ,{0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ]
      ,{0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^
      ,{0x40, 0x40, 0x40, 0x40, 0x40} // 5f _
      ,{0x00, 0x01, 0x02, 0x04, 0x00} // 60 `
      ,{0x20, 0x54, 0x54, 0x54, 0x78} // 61 a
      ,{0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b
      ,{0x38, 0x44, 0x44, 0x44, 0x20} // 63 c
      ,{0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d
      ,{0x38, 0x54, 0x54, 0x54, 0x18} // 65 e
      ,{0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f
      ,{0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g
      ,{0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h
      ,{0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i
      ,{0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j
      ,{0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k
      ,{0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l
      ,{0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m
      ,{0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n
      ,{0x38, 0x44, 0x44, 0x44, 0x38} // 6f o
      ,{0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p
      ,{0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q
      ,{0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r
      ,{0x48, 0x54, 0x54, 0x54, 0x20} // 73 s
      ,{0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t
      ,{0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u
      ,{0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v
      ,{0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w
      ,{0x44, 0x28, 0x10, 0x28, 0x44} // 78 x
      ,{0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y
      ,{0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z
      ,{0x00, 0x08, 0x36, 0x41, 0x00} // 7b {
      ,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c |
      ,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d }
      ,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ~
      ,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f DEL
    };


    //On peut aussi créer ses propres caractères à afficher

    //Petit dessin en bitmap d'un Smiley
    //504 octets codent 84 x 48 pixels
    // 1 octet = 8bits code  8 pixels (0/1) noir et blanc
    char awesome[] = {
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x70, 0x30, 0x18, 0x1C,
      0x0C, 0x0C, 0x06, 0x06, 0x07, 0x07, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07,
      0x07, 0x07, 0x0E, 0x06, 0x1C, 0x1C, 0x38, 0x70, 0x70, 0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF0, 0x3C, 0xCE, 0x67, 0x33, 0x18, 0x08,
      0x08, 0xC8, 0xF8, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
      0x70, 0x38, 0x18, 0x18, 0x08, 0x08, 0x08, 0xF8, 0xF0, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x01, 0x07,
      0x0F, 0x3C, 0xF8, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x0F, 0x00, 0x0C, 0x7F,
      0x60, 0x60, 0x60, 0x60, 0x60, 0x61, 0x61, 0x61, 0x61, 0x61, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x7F, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x61, 0x61, 0x61, 0x61, 0x63,
      0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF,
      0xF0, 0x00, 0x00, 0x00, 0x08, 0x08, 0xFC, 0x8C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C,
      0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C,
      0x0C, 0x0C, 0x0C, 0xF8, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x1F, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x07, 0x0F, 0x3C, 0x70, 0xE0, 0x80, 0x00, 0x07, 0x0C, 0x38, 0x60, 0xC0,
      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF0, 0xF0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF0,
      0xF0, 0xE0, 0xC0, 0x80, 0xC0, 0x30, 0x18, 0x0F, 0x00, 0x00, 0x80, 0xC0, 0x70, 0x3C, 0x1F, 0x07,
      0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x06,
      0x0E, 0x1C, 0x18, 0x38, 0x31, 0x73, 0x62, 0x66, 0x64, 0xC7, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF,
      0xC7, 0xC7, 0xC7, 0x67, 0x63, 0x63, 0x71, 0x30, 0x38, 0x18, 0x1C, 0x0C, 0x06, 0x03, 0x03, 0x01,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    };

    // Mon exemple de logo TipTop avec dessin de montagne, rivière, et soleil
    char tiptop[] = {
    0x00, 0x54, 0x00, 0x30,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0xF0, 0xF0, 0x30, 0x30,
    0x30, 0x00, 0xD0, 0xD0, 0x00, 0x00, 0xC0, 0xC0, 0x80, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x30, 0x30,
    0x30, 0xF0, 0xF0, 0x30, 0x30, 0x30, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0xC0,
    0xC0, 0x80, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
    0xF0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF0, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0xFF, 0xFF, 0x19, 0x30, 0x39, 0x1F,
    0x0F, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x39, 0x30, 0x39, 0x1F,
    0x0F, 0x00, 0x00, 0xFF, 0xFF, 0x19, 0x30, 0x39, 0x1F, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x03, 0x0F, 0x0F, 0x1F, 0x1F, 0x1F, 0x1F, 0x0F, 0x0F, 0x83, 0x80, 0x80, 0x80, 0x80,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF8, 0x3E, 0x0E, 0x07,
    0x07, 0x07, 0x1E, 0x7C, 0xF0, 0xC0, 0xC0, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
    0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0x7C, 0x3F,
    0x0F, 0x03, 0x07, 0x1F, 0x3C, 0xF8, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF8, 0x3E, 0x0F, 0x07, 0x0F, 0x7F,
    0x78, 0xF0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xF0, 0x7E, 0x1F, 0x03, 0x03,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x1E, 0x3C, 0x78, 0x60, 0x30,
    0x38, 0x3C, 0x1E, 0x0F, 0x03, 0x03, 0x0F, 0x3F, 0x7C, 0x70, 0x60, 0x70, 0x70, 0x70, 0x1E, 0x1F,
    0x07, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x1F, 0x1C, 0x78,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xF0, 0xF8, 0x3E, 0x0F, 0x03, 0x03, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x0E, 0x1C, 0x7C, 0xF0, 0xE8, 0x7C, 0x1F, 0x07, 0x01,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0,
    0xF0, 0x70, 0xE0, 0xE0, 0x80, 0xC0, 0xE0, 0x70, 0x78, 0x1E, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0xC0, 0xE0, 0x70, 0x3C, 0x1E, 0x0C, 0x0E,
    0x0C, 0x06, 0x1E, 0x1C, 0x38, 0x38, 0x38, 0x30, 0x1F, 0x1F, 0x07, 0x0F, 0x1E, 0x1C, 0x38, 0x70,
    0x70, 0x70, 0x78, 0x1C, 0x1F, 0x07, 0x07, 0x07, 0x06, 0x0E, 0x1E, 0x0C, 0x0C, 0x1C, 0x0C, 0x1C,
    0x0E, 0x0E, 0x0F, 0x03, 0x01, 0x00, 0x00, 0x01,
    };


    void setup(void) {
      LCDInit(); //Initialisation du LCD
      Serial.begin(9600);
    }

    void loop(void) {
      LCDClear();   //Vider l'afficheur
      LCDBitmap(awesome);  //Afficher le Smiley
      delay(2000);   // 2 seconde de délai
     
      //temps =   millis()- temps;  //Pour chronométrer la vitesse de l'affichage
      //Serial.println(temps);
      //temps = millis();
     
      LCDClear();
      LCDBitmap(tiptop);  //mon logo Tiptop en image bitmap
      delay(2000);  //2 secondes

      LCDClear();  //une ligne de 12 caractères
      LCDString("TipTopBoards");
      LCDString("|...........");  //6 lignes par écran
      LCDString("            ");
      LCDString(" Bonjour    ");   //message de texte
      LCDString("Christian   ");
      LCDString("____________");
      delay(1000);  //2 sec
    }

    // Fonction gotoXY
    void gotoXY(int x, int y) {
      LCDWrite(0, 0x80 | x);  // Column.
      LCDWrite(0, 0x40 | y);  // Row.  ?
    }

    // Fonction LCDBitmap
    // Elle prend un gros tableau d'octets et l'envoie sur le LCD
    void LCDBitmap(char my_array[]){
      for (int index = 0 ; index < (LCD_X * LCD_Y / 8) ; index++)
        LCDWrite(LCD_DATA, my_array[index]);
    }

    // Fonction LCDCharacter
    // Elle prend un caractère, le cherche dans la tableau de fonte, l'écrit sur l'écran.
    // Un caractère fait 8 bits haut x 5 bits de large, espacés de une colonne vide par côté
    void LCDCharacter(char character) {
      LCDWrite(LCD_DATA, 0x00); //Colonne verticale vide gauche de séparation des lettres

      for (int index = 0 ; index < 5 ; index++)
        LCDWrite(LCD_DATA, ASCII[character - 0x20][index]);
        //0x20 est le code ASCII pour espace (' ').
        //La table de police de caractères débute par ce caratère

      LCDWrite(LCD_DATA, 0x00); //Colonne verticale vide droite de séparation des lettres
    }

    // Affiche une par une des lettres d'une chaine de caractères sur le LCD
    void LCDString(char *characters) {
      while (*characters)
        LCDCharacter(*characters++);
    }

    //Efface le LCD en écrivant des zéros partout
    void LCDClear(void) {
      for (int index = 0 ; index < (LCD_X * LCD_Y / 8) ; index++)
        LCDWrite(LCD_DATA, 0x00);
       
      gotoXY(0, 0); //Puis revenir en haut
    }

    //Envoi des commandes sur le PCD8544
    void LCDInit(void) {

      //Configure les Pins de controle
      pinMode(PIN_SCE, OUTPUT);
      pinMode(PIN_RESET, OUTPUT);
      pinMode(PIN_DC, OUTPUT);
      pinMode(PIN_SDIN, OUTPUT);
      pinMode(PIN_SCLK, OUTPUT);

      //Reset the LCD à un état connu
      digitalWrite(PIN_RESET, LOW);
      digitalWrite(PIN_RESET, HIGH);

      LCDWrite(LCD_COMMAND, 0x21); //Tell LCD that extended commands follow
      LCDWrite(LCD_COMMAND, 0xB0); //Set LCD Vop (Contrast): Try 0xB1(good @ 3.3V) or 0xBF if your display is too dark
      LCDWrite(LCD_COMMAND, 0x04); //Set Temp coefficent
      LCDWrite(LCD_COMMAND, 0x14); //LCD bias mode 1:48: Try 0x13 or 0x14

      LCDWrite(LCD_COMMAND, 0x20); //We must send 0x20 before modifying the display control mode
      LCDWrite(LCD_COMMAND, 0x0C); //Set display control, normal mode. 0x0D for inverse
    }

    // Il y a deux banques de mémoire sur le LCD, data/RAM ou commandes
    // Cette fonction met la Pin DC high ou low selon les cas, et envoie les octets de data
    void LCDWrite(byte data_or_command, byte data) {
      //Indiquer au LCD si on lui écrit soit des données soit une commande
      digitalWrite(PIN_DC, data_or_command);

      //Envoi des data
      digitalWrite(PIN_SCE, LOW);
      shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data);
      digitalWrite(PIN_SCE, HIGH);
    }


131
Vos projets / Ecran Nokia 5110
« le: décembre 26, 2014, 01:29:33 pm »
Bonjour,
j'ouvre le bal pour une question assez pointue. J'ai pu me débattre un peu avec mais impossible d'aller plus loin, je coince un peu.

Un peu cheap, c'est un composant qui peut nous aider. Je vais m'en servir pour avoir un écran sans shield pour une somme assez dérisoire ; une sorte de petit défi pour faire un cherche servo dans un premier temps.

Déjà la documentation est pléthore mais peu loquace sur certains points, un peu le souci des trucs d'ebay, est-ce que cela correspond de partout ? Le branchement est un peu problématique pour la lumière qui ne marche que si on branche light sur GND et non sur 3v3 comme dit sur pas mal de sites.

Le reste marche, mon problème est au niveau de la lisibilité du texte (et cella même sans rétro-éclairage).
J'ai trouvé déjà des codes sans librairie qui marche pas mal type :
    #define PIN_SCE   7
    #define PIN_RESET 6
    #define PIN_DC    5
    #define PIN_SDIN  4
    #define PIN_SCLK  3

    #define LCD_C     LOW
    #define LCD_D     HIGH

    #define LCD_X     84
    #define LCD_Y     48

    static const byte ASCII[][5] =
    {
     {0x00, 0x00, 0x00, 0x00, 0x00} // 20
    ,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21 !
    ,{0x00, 0x07, 0x00, 0x07, 0x00} // 22 "
    ,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23 #
    ,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24 $
    ,{0x23, 0x13, 0x08, 0x64, 0x62} // 25 %
    ,{0x36, 0x49, 0x55, 0x22, 0x50} // 26 &
    ,{0x00, 0x05, 0x03, 0x00, 0x00} // 27 '
    ,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28 (
    ,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29 )
    ,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a *
    ,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b +
    ,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c ,
    ,{0x08, 0x08, 0x08, 0x08, 0x08} // 2d -
    ,{0x00, 0x60, 0x60, 0x00, 0x00} // 2e .
    ,{0x20, 0x10, 0x08, 0x04, 0x02} // 2f /
    ,{0x3e, 0x51, 0x49, 0x45, 0x3e} // 30 0
    ,{0x00, 0x42, 0x7f, 0x40, 0x00} // 31 1
    ,{0x42, 0x61, 0x51, 0x49, 0x46} // 32 2
    ,{0x21, 0x41, 0x45, 0x4b, 0x31} // 33 3
    ,{0x18, 0x14, 0x12, 0x7f, 0x10} // 34 4
    ,{0x27, 0x45, 0x45, 0x45, 0x39} // 35 5
    ,{0x3c, 0x4a, 0x49, 0x49, 0x30} // 36 6
    ,{0x01, 0x71, 0x09, 0x05, 0x03} // 37 7
    ,{0x36, 0x49, 0x49, 0x49, 0x36} // 38 8
    ,{0x06, 0x49, 0x49, 0x29, 0x1e} // 39 9
    ,{0x00, 0x36, 0x36, 0x00, 0x00} // 3a :
    ,{0x00, 0x56, 0x36, 0x00, 0x00} // 3b ;
    ,{0x08, 0x14, 0x22, 0x41, 0x00} // 3c <
    ,{0x14, 0x14, 0x14, 0x14, 0x14} // 3d =
    ,{0x00, 0x41, 0x22, 0x14, 0x08} // 3e >
    ,{0x02, 0x01, 0x51, 0x09, 0x06} // 3f ?
    ,{0x32, 0x49, 0x79, 0x41, 0x3e} // 40 @
    ,{0x7e, 0x11, 0x11, 0x11, 0x7e} // 41 A
    ,{0x7f, 0x49, 0x49, 0x49, 0x36} // 42 B
    ,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C
    ,{0x7f, 0x41, 0x41, 0x22, 0x1c} // 44 D
    ,{0x7f, 0x49, 0x49, 0x49, 0x41} // 45 E
    ,{0x7f, 0x09, 0x09, 0x09, 0x01} // 46 F
    ,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G
    ,{0x7f, 0x08, 0x08, 0x08, 0x7f} // 48 H
    ,{0x00, 0x41, 0x7f, 0x41, 0x00} // 49 I
    ,{0x20, 0x40, 0x41, 0x3f, 0x01} // 4a J
    ,{0x7f, 0x08, 0x14, 0x22, 0x41} // 4b K
    ,{0x7f, 0x40, 0x40, 0x40, 0x40} // 4c L
    ,{0x7f, 0x02, 0x0c, 0x02, 0x7f} // 4d M
    ,{0x7f, 0x04, 0x08, 0x10, 0x7f} // 4e N
    ,{0x3e, 0x41, 0x41, 0x41, 0x3e} // 4f O
    ,{0x7f, 0x09, 0x09, 0x09, 0x06} // 50 P
    ,{0x3e, 0x41, 0x51, 0x21, 0x5e} // 51 Q
    ,{0x7f, 0x09, 0x19, 0x29, 0x46} // 52 R
    ,{0x46, 0x49, 0x49, 0x49, 0x31} // 53 S
    ,{0x01, 0x01, 0x7f, 0x01, 0x01} // 54 T
    ,{0x3f, 0x40, 0x40, 0x40, 0x3f} // 55 U
    ,{0x1f, 0x20, 0x40, 0x20, 0x1f} // 56 V
    ,{0x3f, 0x40, 0x38, 0x40, 0x3f} // 57 W
    ,{0x63, 0x14, 0x08, 0x14, 0x63} // 58 X
    ,{0x07, 0x08, 0x70, 0x08, 0x07} // 59 Y
    ,{0x61, 0x51, 0x49, 0x45, 0x43} // 5a Z
    ,{0x00, 0x7f, 0x41, 0x41, 0x00} // 5b [
    ,{0x02, 0x04, 0x08, 0x10, 0x20} // 5c ¥
    ,{0x00, 0x41, 0x41, 0x7f, 0x00} // 5d ]
    ,{0x04, 0x02, 0x01, 0x02, 0x04} // 5e ^
    ,{0x40, 0x40, 0x40, 0x40, 0x40} // 5f _
    ,{0x00, 0x01, 0x02, 0x04, 0x00} // 60 `
    ,{0x20, 0x54, 0x54, 0x54, 0x78} // 61 a
    ,{0x7f, 0x48, 0x44, 0x44, 0x38} // 62 b
    ,{0x38, 0x44, 0x44, 0x44, 0x20} // 63 c
    ,{0x38, 0x44, 0x44, 0x48, 0x7f} // 64 d
    ,{0x38, 0x54, 0x54, 0x54, 0x18} // 65 e
    ,{0x08, 0x7e, 0x09, 0x01, 0x02} // 66 f
    ,{0x0c, 0x52, 0x52, 0x52, 0x3e} // 67 g
    ,{0x7f, 0x08, 0x04, 0x04, 0x78} // 68 h
    ,{0x00, 0x44, 0x7d, 0x40, 0x00} // 69 i
    ,{0x20, 0x40, 0x44, 0x3d, 0x00} // 6a j
    ,{0x7f, 0x10, 0x28, 0x44, 0x00} // 6b k
    ,{0x00, 0x41, 0x7f, 0x40, 0x00} // 6c l
    ,{0x7c, 0x04, 0x18, 0x04, 0x78} // 6d m
    ,{0x7c, 0x08, 0x04, 0x04, 0x78} // 6e n
    ,{0x38, 0x44, 0x44, 0x44, 0x38} // 6f o
    ,{0x7c, 0x14, 0x14, 0x14, 0x08} // 70 p
    ,{0x08, 0x14, 0x14, 0x18, 0x7c} // 71 q
    ,{0x7c, 0x08, 0x04, 0x04, 0x08} // 72 r
    ,{0x48, 0x54, 0x54, 0x54, 0x20} // 73 s
    ,{0x04, 0x3f, 0x44, 0x40, 0x20} // 74 t
    ,{0x3c, 0x40, 0x40, 0x20, 0x7c} // 75 u
    ,{0x1c, 0x20, 0x40, 0x20, 0x1c} // 76 v
    ,{0x3c, 0x40, 0x30, 0x40, 0x3c} // 77 w
    ,{0x44, 0x28, 0x10, 0x28, 0x44} // 78 x
    ,{0x0c, 0x50, 0x50, 0x50, 0x3c} // 79 y
    ,{0x44, 0x64, 0x54, 0x4c, 0x44} // 7a z
    ,{0x00, 0x08, 0x36, 0x41, 0x00} // 7b {
    ,{0x00, 0x00, 0x7f, 0x00, 0x00} // 7c |
    ,{0x00, 0x41, 0x36, 0x08, 0x00} // 7d }
    ,{0x10, 0x08, 0x08, 0x10, 0x08} // 7e ←
    ,{0x78, 0x46, 0x41, 0x46, 0x78} // 7f →
    };

    void LcdCharacter(char character)
    {
      LcdWrite(LCD_D, 0x00);
      for (int index = 0; index < 5; index++)
      {
        LcdWrite(LCD_D, ASCII[character - 0x20][index]);
      }
      LcdWrite(LCD_D, 0x00);
    }

    void LcdClear(void)
    {
      for (int index = 0; index < LCD_X * LCD_Y / 8; index++)
      {
        LcdWrite(LCD_D, 0x00);
      }
    }

    void LcdInitialise(void)
    {
      pinMode(PIN_SCE, OUTPUT);
      pinMode(PIN_RESET, OUTPUT);
      pinMode(PIN_DC, OUTPUT);
      pinMode(PIN_SDIN, OUTPUT);
      pinMode(PIN_SCLK, OUTPUT);
      digitalWrite(PIN_RESET, LOW);
      digitalWrite(PIN_RESET, HIGH);
      LcdWrite(LCD_C, 0x21 );  // LCD Extended Commands.
      LcdWrite(LCD_C, 0xB1 );  // Set LCD Vop (Contrast).
      LcdWrite(LCD_C, 0x04 );  // Set Temp coefficent. //0x04
      LcdWrite(LCD_C, 0x14 );  // LCD bias mode 1:48. //0x13
      LcdWrite(LCD_C, 0x0C );  // LCD in normal mode.
      LcdWrite(LCD_C, 0x20 );
      LcdWrite(LCD_C, 0x0C );
    }

    void LcdString(char *characters)
    {
      while (*characters)
      {
        LcdCharacter(*characters++);
      }
    }

    void LcdWrite(byte dc, byte data)
    {
      digitalWrite(PIN_DC, dc);
      digitalWrite(PIN_SCE, LOW);
      shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data);
      digitalWrite(PIN_SCE, HIGH);
    }

    void setup(void)
    {
      LcdInitialise();
      LcdClear();
      LcdString("Hello World! + ");
    }

    void loop(void)
    {
    }



132
Infos et bonnes affaires / Fêtes et pause
« le: décembre 20, 2014, 03:02:39 pm »
Bonjour à tous,
pour ma part et je pense pour beaucoup d'entre vous, cette période est un peu synonyme de pause.
Bonnes fêtes à tous et à l'année prochaine pour de nouvelles aventures.

133
Infos et bonnes affaires / Re : Pighixxx is back
« le: décembre 07, 2014, 11:14:59 am »
C'était ma connerie avant de me coucher.
Il est génial ce site. J'ai regardé un peu les schémas, pas mal du tout. Par contre, je n'ai pas vu de description de  code.

134
Infos et bonnes affaires / Re : Pighixxx is back
« le: décembre 07, 2014, 12:49:44 am »
Il y a un âge minimum?

135
Bus DCC / Re : Carte accessoire DCC
« le: novembre 17, 2014, 02:15:52 pm »
Je ne pensais pas du tout à cela. C'est vrai que c'est très intéressant et vachement mieux effectivement qu'un montage de test dirons nous.
J'avais un peu oublié la librairie de thierry étant donné que une base de projet avait été lancé sur un autre principe.

Je te taquine mais ton propos me fait penser : il est où l'article des servos sur locoduino ;)

Pages: 1 ... 7 8 [9] 10