Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define CONTAR1 11 // pino onde ser� conectado a tecla de contagem
- #define APAGA 14 // pino onde ser� conectado a tecla de modo
- #define CONTAR2 12 // pino onde ser� conectado a tecla de contagem
- #define segA 2 // Defino ports dos segmentos
- #define segB 3
- #define segC 4
- #define segD 5
- #define segE 6
- #define segF 7
- #define segG 8
- #define DigA 9 // Define port dos digitos
- #define DigB 10
- byte Dig1 = 0; // Digitos
- byte Dig2 = 0;
- int Brilho = 10; // Máximo brilho 10
- int Comum = 0; // AnodoComum = 0 CatodoComum =1
- const byte seven_seg_digits[10][7] = { // Segementos
- { 0, 0, 0, 0, 0, 0, 1 }, // = 0
- { 1, 0, 0, 1, 1, 1, 1 }, // = 1
- { 0, 0, 1, 0, 0, 1, 0 }, // = 2
- { 0, 0, 0, 0, 1, 1, 0 }, // = 3
- { 1, 0, 0, 1, 1, 0, 0 }, // = 4
- { 0, 1, 0, 0, 1, 0, 0 }, // = 5
- { 0, 1, 0, 0, 0, 0, 0 }, // = 6
- { 0, 0, 0, 1, 1, 1, 1 }, // = 7
- { 0, 0, 0, 0, 0, 0, 0 }, // = 8
- { 0, 0, 0, 1, 1, 0, 0 } // = 9
- };
- byte pin_order[8]; // Ordem dos pinos
- //---------------------------
- void setup()
- {
- Serial.begin(9600);
- pinMode(CONTAR1, INPUT_PULLUP);
- pinMode(APAGA, INPUT_PULLUP);
- pinMode(CONTAR2, INPUT_PULLUP);
- pinMode(DigA, OUTPUT);
- pinMode(DigB, OUTPUT);
- pin_order[0] = segA;
- pin_order[1] = segB;
- pin_order[2] = segC;
- pin_order[3] = segD;
- pin_order[4] = segE;
- pin_order[5] = segF;
- pin_order[6] = segG;
- for (int i = 0; i < 8; i++)
- {
- pinMode(pin_order[i], OUTPUT);
- }
- }
- //-------------------------
- void loop()
- {
- while (digitalRead(CONTAR1) == LOW) // Se o bot�o de contar1 estiver apertado
- {
- delay(50);
- while (digitalRead(CONTAR1) == LOW) // Se o bot�o de contar1 continua apertado
- {
- delay(20);
- if (digitalRead(CONTAR1) == HIGH) // Se o bot�o de contar1 foi liberado
- {
- Dig1++;
- if (Dig1 > 9) Dig1 = 0;
- Serial.println(Dig1, HEX);
- }
- }
- }
- while (digitalRead(CONTAR2) == LOW) // Se o bot�o de estiver apertado
- {
- delay(50);
- while (digitalRead(CONTAR2) == LOW) // Se o bot�o de continua apertado
- {
- delay(20);
- if (digitalRead(CONTAR2) == HIGH) // Se o bot�o de foi liberado
- {
- Dig2++;
- if (Dig2 > 9) Dig2 = 0;
- Serial.println(Dig2);
- }
- }
- }
- while (digitalRead(APAGA) == LOW) // Se o bot�o de estiver apertado
- {
- delay(50);
- while (digitalRead(APAGA) == LOW) // Se o bot�o de continua apertado
- {
- delay(20);
- if (digitalRead(APAGA) == HIGH) // Se o bot�o de foi liberado
- {
- Dig1 = 0;
- Dig2 = 0;
- }
- }
- }
- SetSeg(DigA, Dig1);
- SetSeg(DigB, Dig2);
- }
- //--------------------------------------
- void SetSeg(byte Digito, byte Numero)
- {
- digitalWrite(DigA, !Comum); // Apaga ambos digitos
- digitalWrite(DigB, !Comum);
- digitalWrite(Digito, Comum); // Seleciona qual digito acender
- int pinseq = 0;
- for (byte segCount = 0; segCount < 7; ++segCount) // Acende os segmentos
- {
- byte Segmento = seven_seg_digits[Numero][segCount];
- if (Comum == 1)
- digitalWrite(pin_order[pinseq], !Segmento);
- else
- digitalWrite(pin_order[pinseq], Segmento);
- pinseq++;
- }
- delay(Brilho); // Brilho dos dispalys
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement