mentos de um display, seriam necessários 7 pinos. Para economizar, usaremos o CI sn74LS48 que, nada mais e do que um de-codificador de código BCD (binário) para 7 segmentos. Assim, apenas 4 pinos do Arduino serão usados.
Assim, os 3 pinos economizados podem, por exemplo, ser usado por um sensor de nível e a indicação ficará no próprio display de 7 segmentos deste projeto.>>>>>> ARDUINO:Por questão de facilitar a montagem com fios soldados em barra de pinos, usaremos a seguinte convenção:BCD = PINO DO ARDUINO D = 2 C = 4 B = 6 A = 8>>>>>> SN74LS48:A alimentação do CI veio da placa do Arduino (5V e GND) ligadosaos pinos 16 e 8 respectivamente.Pinos 3, 4 e 5 ligados em 5V.Pinos 7, 1, 2 e 6 são as entradas BCD e foram ligadas aos pinoscorrespondentes do Arduino (no caso, 8, 6, 4 e 2 respectivamente).Pinos 13, 12, 11, 10, 9, 15 e 14 são ligadas ao display de 7segmentos através de resistores de 470R em a, b, c, d, e, f, grespectivamente.Para efeito de demonstração, este programa conta repetidamentede 0 a 9 com intervalo de 1 segundo e espera 2,5 segundos parareiniciar a contagem.
Seguem fotos e vídeo da montagem. O vídeo ficou ruim, mas vai assim mesmo!
VÍDEO DO FUNCIONAMENTO…
ato pq ele conta o tempo a partir de 1970 em segundos, então é possivel saber o dia e hora exatos através de algumas formulas extensas considerando horario de verão fuso, ano bissexto, mas de inicio corrigi com o fuso local, o que já da para brincar com alguns futuros projetos hehe.
O problema não era IDE, mas sim uma questão de lógica, estava na sequência errada algumas funções.
Em anexo o exemplo de NTP que funcionou no meu ESP8266…
mo esses (computador IBM 1401 e a impressora 1403 ). Os computadores já estavam desativados. Mas as impressoras duraram muitos anos mais. Não existia outra tecnologia de impressora melhor do que essa.
…
O LCD ocupa 6 pinos (4 dados e 2 controles).
Já um 7 segmentos deve gastar 7 de segmentos mais 3 de habilitação, total de 10 pinos.
Se tiver 10 pinos livres, no codigo, vc precisa eliminar toda a referencia ao LCD exceto:
Lcd_Out(2,9,txt);
No lugar fica a chamada da rotina de escrita em 7 segmentos.
Veja o video:
https://www.youtube.com/watch?v=TbweMyK8sG0…
d;
// just added my own array for the raw signalunsigned int powerOn[60] = {8450,4250,550,1700,550,550,550,550,550,550,550,1700,550,550,550,600,550,550,550,550,550,600,550,550,550,550,550,550,550,550,600,550,550,550,550,550,600,550,550,1650,600,1650,550,550,550,1700,550,550,550,550,550,600,550,1650,550,1700,550,1650,550,};unsigned int powerOff[60] = {8450,4200,550,1700,550,550,550,600,550,550,550,1700,550,550,550,550,550,600,550,1650,550,1650,600,550,550,550,550,550,600,550,550,550,550,550,600,550,550,550,550,550,600,500,550,600,550,1650,550,600,550,1650,550,600,550,550,550,550,550,1650,600,}; void setup(){ Serial.begin(9600);}
void loop() { char valorlido = Serial.read(); Serial.println(valorlido); if (valorlido == '1') irsend.sendNEC(0xE17A7887,32); if (valorlido == '2') irsend.sendNEC(0xE17A50AF,32); if (valorlido == '3') irsend.sendNEC(0x20DF40BF,32); if (valorlido == '4') irsend.sendNEC(0x20DF807F,32); if (valorlido == '5') irsend.sendNEC(0x20DF10EF,32); if (valorlido == '6') irsend.sendRaw(powerOn,60,38); if (valorlido == '7') irsend.sendRaw(powerOff,60,38);}…
Adicionado por Psuporte ao 16:00 em 24 novembro 2013
por fim ler os 2 últimos bits. e gostaria de guardar em variáveis inteiras separadas.
mais ou menos assim.
int teste = 255;
255 em binário é 111 111 11.
int a = 3 primeiros bits já transformados em inteiro que é o numero 7;
int b = bits 4, 5, 6 que transformados fica 7;
int c = 2 últimos bits que transformados fica 3;
tem com eu fazer esta operação ai?
obrigado
…