Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // --------------------------------------------------------------------------------
- // Ecran BACK TO THE FUTURE
- // --------------------------------------------------------------------------------
- // Objectif : créer un affichage type "Retour vers le Futur"
- // https://media.giphy.com/media/dgEIhYAo3lZiE/giphy.gif
- // A ma disposition
- // Un afficheur alpha numerique OCTOPUS EF04058 en I2C
- // https://www.gotronic.fr/art-afficheur-4-digits-octopus-ef04058-23604.htm
- // Un afficheur 4 digits rouges OCTOPUS EF04056
- // https://www.elecfreaks.com/learn-en/microbitOctopus/sensor/octopus_ef04056.html
- // deux afficheur 7 segments ou un afficheur 4 digits 7 segments (à déterminer)
- // Un afficheur 4 segments 7 Digits (2 x 6 pins)
- // https://www.handsontec.com/pdf_files/NFD-3641.pdf
- // sur Arduino Mega
- // ---------------------------------------------------------------------------------
- // --------------------------------------------
- // Instructions de montage --------------------
- // --------------------------------------------
- // Afficheur 7 digits 4 segments OCTOPUS EF04056
- // --------------------------------------------
- // D14 (CLK)
- // D15 (DIO)
- // 5V
- // GND
- //
- // --------------------------------------------
- // OCTOPUS EF04058 port I2C
- // --------------------------------------------
- // SCL
- // SDA
- // 5V
- // GND
- //
- // --------------------------------------------
- // Afficheur 4 digits 7 segments 3641BS
- // --------------------------------------------
- // Aff. => Rés 220Ω => Ard.
- // 1 X D2
- // a D6
- // f D11
- // 2 X D3
- // 3 X D4
- // b D7
- // e D10
- // d D9
- // p(DP) D13
- // c D8
- // g D12
- // --------------------------------------------
- // Chargement des librairies nécessaires -------------------------------------------
- #include <Wire.h> // Librairie de câblage simplifié (??)
- #include <Adafruit_LEDBackpack.h> // Librairie d'affichage pour afficheur LCD Octopus EF04058
- #include <Adafruit_GFX.h> // Librairie d'affichage graphique
- #include <TM1637Display.h> // Librairie d'affichage pour afficheur LCD OCTOPUS EF04056
- #include <SevSeg.h> // Librairie d'affichage sur afficheur 4 digits 7 segments 3641BS
- // --------------------------------------------------------------------------------------------------------
- // Afficheur LCD Octopus EF04058
- // --------------------------------------------------------------------------------------------------------
- // Déclaration de l'objet alpha4 - Afficheur LCD Octopus EF04058 -----------------------
- Adafruit_AlphaNum4 alpha4 = Adafruit_AlphaNum4();
- // Détermination de l'ordre des blocs d'affichage. (Parce que mon afficheur est mal monté, je pense, ------
- // M et K sont inversés) et les deux modules de d'affichages eux-même le sont -----------------------------
- int CL[4] = {2, 3, 0, 1};
- // Remarque : J'aurais pu corriger le fichier Adafruit_LEDBackoack.cpp et utiliser la fonction ------------
- // alpha4.writeDigitAscii (). -----------------------------------------------------------------------------
- // Tableau pour recevoir ce qui est à afficher : NOV ------------------------------------------------------
- unsigned long CLaff[4] = {0b0000000000000000, 0b0000100100110110, 0b0000000000111111, 0b0010010000110000};
- // Valeurs initiales : Init. ------------------------------------------------------------------------------
- // (
- // 0b0000000000000000 :
- // 0b0000100100110110 : N
- // 0b0000000000111111 : O
- // 0b0010010000110000 : V
- // )
- // --------------------------------------------------------------------------------------------------------
- // Afficheur LCD Octopus EF04056
- // --------------------------------------------------------------------------------------------------------
- // on définit le pin de connexion sur lequel est CLK
- #define CLK 14
- // on définit le pin de connexion sur lequel est DIO
- #define DIO 15
- // on initialise l'afficheur
- TM1637Display display(CLK, DIO);
- // --------------------------------------------------------------------------------------------------------
- // Afficheur 4 digits 7 segments 3641BS
- // --------------------------------------------------------------------------------------------------------
- // Déclaration de l'objet sevseg - Afficheur 3641BS
- SevSeg sevseg;
- void setup() {
- Serial.begin(9600); // on initialise et synchronise la communication entre le PC et Arduino
- alpha4.begin(0x70); // on entre l'adresse de l'afficheur en I2C
- byte numDigits = 4; // on définit le nombre de digit de l'afficheur
- byte digitPins[] = {2, 3, 4, 5}; // on défini les pins des digits
- byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13}; // on défini les pins des segments
- sevseg.begin(COMMON_ANODE, numDigits, digitPins, segmentPins); // on définit le type d'affichage
- // Remarque : COMMON_ANODE peut être changé par COMMON_CATHODE suivant les afficheurs.
- // Si ce n'est pas le bon qui est selectionné, tous les segments et les digits s'allumeront.
- }
- void loop() {
- sevseg.setBrightness(90);
- sevseg.setNumber(1234,3);
- sevseg.refreshDisplay();
- afficheTout ();
- }
- // --------------------------------------------------------------------------------------------------------
- // - Fonctions -------------------------------------------------------------------------------- Fonctions -
- // --------------------------------------------------------------------------------------------------------
- void afficheTout (){
- // on efface les donnée à afficher
- display.clear();
- // on règle la luminosité à la moitié
- display.setBrightness(1);
- // on affiche
- display.showNumberDecEx(1955, false, false, 4, 0);
- delay(75);
- // on règle la luminosité au max
- display.setBrightness(3);
- // on affiche
- display.showNumberDecEx(1955, false, false, 4, 0);
- //delay(125);
- for (int i = 0; i < 4; i++) {
- alpha4.writeDigitRaw (CL[i], uint16_t (CLaff[i]));
- }
- alpha4.setBrightness (0);
- alpha4.writeDisplay();
- delay(150);
- alpha4.setBrightness (1);
- alpha4.writeDisplay();
- delay(150);
- alpha4.setBrightness (2);
- alpha4.writeDisplay();
- delay(150);
- alpha4.setBrightness (3);
- alpha4.writeDisplay();
- delay(500);
- display.clear();
- alpha4.clear();
- alpha4.writeDisplay();
- delay(250);
- }
- // ===========================================================
- // DIGIT 7 Segments
- // ===========================================================
- // composition d'un afficheur digital
- //
- // ┌─A─┐ 10 9 8 7 6
- // F B ┌ | | | | | ┐
- // ├─G─┤
- // E C └ | | | | | ┘
- // └─D─┘ (DP) 1 2 3 4 5
- // ===========================================================
- // ===========================================================
- // 4 Digits 7 Segments
- // ===========================================================
- // composition d'un afficheur digital
- //
- // ┌─A─┐
- // F B
- // ├─G─┤
- // E C
- // └─D─┘ (DP)
- //
- // 1 a f 2 3 b
- // ┌ | | | | | | ┐
- // ____ ____ ____ ____
- // |____| |____| |____| |____|
- // |____|o |____|o |____|o |____|o
- // 1 2 3 4
- // └ | | | | | | ┘
- // e d p c g 4
- //
- // ===========================================================
- // ===========================================================
- // Disposition des 16 segments
- // ===========================================================
- // ---- A ----
- // | \ | / |
- // F H J K B
- // | \ | / |
- // |-G1- | -G2-|
- // | / | \ |
- // E L M N C
- // | / | \ |
- // ---- D ---- (DP)
- //
- // ... ou dans mon cas :
- //
- // ---- A ----
- // | \ | / |
- // F H J K B
- // | \ | / |
- // |-G1- | -G2-|
- // | / | \ |
- // E (N) M (L) C
- // | / | \ |
- // ---- D ---- (DP)
- //
- // ===========================================================
- // Alphabet en 0b00
- // Ne sert pas mais comme ça j'ai les caractères sous la main
- /* Alphabet
- 0b0001000001011000, // a
- 0b0000100001111000, // b
- 0b0000000011011000, // c
- 0b0000000011011110, // d
- 0b0010000001011000, // e
- 0b0000000001110001, // f
- 0b0000000110001111, // g
- 0b0000100001110000, // h
- 0b0001000000000000, // i
- 0b0000000000001110, // j
- 0b0001111000000000, // k
- 0b0001001000000000, // l
- 0b0001000011010100, // m
- 0b0001000001010000, // n
- 0b0000000011011100, // o
- 0b0000000011110011, // p
- 0b0000000110000111, // q
- 0b0000000001010000, // r
- 0b0000100010001000, // s
- 0b0000000001111000, // t
- 0b0000000000011100, // u
- 0b0010000000010000, // v
- 0b0010100000010100, // w
- 0b0010100011000000, // x
- 0b0010001001100000, // y
- 0b0010000001001000, // z
- 0b0000000011110111, // A
- 0b0001001010001111, // B
- 0b0000000000111001, // C
- 0b0001001000001111, // D
- 0b0000000011111001, // E
- 0b0000000011110001, // F
- 0b0000000010111101, // G
- 0b0000000011110110, // H
- 0b0001001000000000, // I
- 0b0000000000011110, // J
- 0b0000110001110000, // K
- 0b0000000000111000, // L
- 0b0000010100110110, // M
- 0b0000100100110110, // N
- 0b0000000000111111, // O
- 0b0000000011110011, // P
- 0b0000100000111111, // Q
- 0b0000100011110011, // R
- 0b0000000011101101, // S
- 0b0001001000000001, // T
- 0b0000000000111110, // U
- 0b0010010000110000, // V
- 0b0010100000110110, // W
- 0b0010110100000000, // X
- 0b0001010100000000, // Y
- 0b0010010000001001, // Z
- 0b0000000000000000, //
- 0b0000000000000110, // 1
- 0b0000000011011011, // 2
- 0b0000000011001111, // 3
- 0b0000000011100110, // 4
- 0b0000000011101101, // 5
- 0b0000000011111101, // 6
- 0b0000000000000111, // 7
- 0b0000000011111111, // 8
- 0b0000000011101111, // 9
- 0b0010010000111111, // 0
- 0b0000000000111001, // (
- 0b0000000000001111, // )
- 0b0000110000000000, // <
- 0b0010000100000000, // >
- 0b0000010000000000, // '
- 0b0101010000100001, // ?
- 0b0100000000000000, // .
- 0b0000001010111011, // @
- 0b0010010000100100, // %
- 0b0001001011101101, // $
- 0b0000101101011101, // &
- 0b0010010000000000, // /
- 0b0001001011000000, // +
- 0b0000000011000000, // -
- 0b0000000011001000, // =
- 0b0000000000001000, // _
- 0b0001001000000000, // :
- 0b0010001000000000, // ;
- 0b0000100000000000, // ,
- 0b0011111111000000, // *
- 0b0000010010000010, // °
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement