Display 4x 7 segmentos sem codificador

/*
 * Display 4x 7 segmentos sem codificador
 * versao 1.0
 * 14-07-2019
 * pedroluand@gmail.com

ligação do display no ci 74hc164
        _a_         
     f|       |b       
      |  -g- |         
    e |___|c       
        d     

descrição dos pinos do display
     14 13 12 11 10 09 08             
     .  .  .  .  .  .  .           
      display mod.ULH4RC                 
     .  .  .  .  .  .  .               
     01 02 03 04 05 06 07         

pino 01= GND1
pino 02= (seg. d)
pino 03= nc
pino 04= seg. e
pino 05= GND3
pino 06= seg. c
pino 07= seg. d
pino 08= seg. b
pino 09= GND4
pino 10= seg. g 
pino 11= divisor de horas
pino 12= GND2
pino 13= seg. f
pino 14= seg. a
*/
#define refresh delay(6)

#define nada digitalWrite(6,LOW);digitalWrite(7,LOW);digitalWrite(8,LOW);digitalWrite(9,LOW);digitalWrite(10,LOW);digitalWrite(11,LOW);digitalWrite(12,LOW);
#define zero digitalWrite(6,HIGH);digitalWrite(7,HIGH);digitalWrite(8,HIGH);digitalWrite(9,HIGH);digitalWrite(10,LOW);digitalWrite(11,HIGH);digitalWrite(12,HIGH);
#define um digitalWrite(6,LOW);digitalWrite(7,LOW);digitalWrite(8,HIGH);digitalWrite(9,HIGH);digitalWrite(10,LOW);digitalWrite(11,LOW);digitalWrite(12,LOW);
#define dois digitalWrite(6,HIGH);digitalWrite(7,HIGH);digitalWrite(8,LOW);digitalWrite(9,HIGH);digitalWrite(10,HIGH);digitalWrite(11,LOW);digitalWrite(12,HIGH);
#define tres digitalWrite(6,HIGH);digitalWrite(7,LOW);digitalWrite(8,HIGH);digitalWrite(9,HIGH);digitalWrite(10,HIGH);digitalWrite(11,LOW);digitalWrite(12,HIGH);
#define quatro digitalWrite(6,LOW);digitalWrite(7,LOW);digitalWrite(8,HIGH);digitalWrite(9,HIGH);digitalWrite(10,HIGH);digitalWrite(11,HIGH);digitalWrite(12,LOW);
#define cinco digitalWrite(6,HIGH);digitalWrite(7,LOW);digitalWrite(8,HIGH);digitalWrite(9,LOW);digitalWrite(10,HIGH);digitalWrite(11,HIGH);digitalWrite(12,HIGH);
#define seis digitalWrite(6,HIGH);digitalWrite(7,HIGH);digitalWrite(8,HIGH);digitalWrite(9,LOW);digitalWrite(10,HIGH);digitalWrite(11,HIGH);digitalWrite(12,HIGH);
#define sete digitalWrite(6,LOW);digitalWrite(7,LOW);digitalWrite(8,HIGH);digitalWrite(9,HIGH);digitalWrite(10,LOW);digitalWrite(11,LOW);digitalWrite(12,HIGH);
#define oito digitalWrite(6,HIGH);digitalWrite(7,HIGH);digitalWrite(8,HIGH);digitalWrite(9,HIGH);digitalWrite(10,HIGH);digitalWrite(11,HIGH);digitalWrite(12,HIGH);
#define nove digitalWrite(6,HIGH);digitalWrite(7,LOW);digitalWrite(8,HIGH);digitalWrite(9,HIGH);digitalWrite(10,HIGH);digitalWrite(11,HIGH);digitalWrite(12,HIGH);

#define pos1 digitalWrite(2,LOW);digitalWrite(3,HIGH);digitalWrite(4,HIGH);digitalWrite(5,HIGH);
#define pos2 digitalWrite(2,HIGH);digitalWrite(3,LOW);digitalWrite(4,HIGH);digitalWrite(5,HIGH);
#define pos3 digitalWrite(2,HIGH);digitalWrite(3,HIGH);digitalWrite(4,LOW);digitalWrite(5,HIGH);
#define pos4 digitalWrite(2,HIGH);digitalWrite(3,HIGH);digitalWrite(4,HIGH);digitalWrite(5,LOW);

void setup()
{
Serial.begin(9600);
pinMode(2,OUTPUT); //pino 12 display (GND1)
pinMode(3,OUTPUT); //pino 9 display (GND2)
pinMode(4,OUTPUT); //pino 5 display (GND3)
pinMode(5,OUTPUT); //pino 1 display (GND4)
pinMode(6,OUTPUT); //pino 7 seg d
pinMode(7,OUTPUT); //pino 4 seg e
pinMode(8,OUTPUT); //pino 6 seg c
pinMode(9,OUTPUT); //pino 8 seg b
pinMode(10,OUTPUT);//pino 10 seg g
pinMode(11,OUTPUT);//pino 13 seg f
pinMode(12,OUTPUT);//pino 14 seg a
pinMode(13,INPUT_PULLUP);//entada de pulso
pinMode(A0,INPUT);
pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(A3,INPUT);
pinMode(A4,INPUT);
}

void loop()
{
pos4;
dois;
refresh;
pos3;
zero;
refresh;
pos2;
um;
refresh;
pos1;
nove;
refresh;
}

Comentários

Postagens mais visitadas deste blog

Amplificador de 6W para módulos PLL FM, usando transistores C1970 e C1971 - Versão final 04-04-2022

Amplificador de RF 350mW com BD135 para modulos pll

Antena dipolo para transmissores FM