a geração dos numeros que vão aparecer para a
pessoa que vai apertar o botão, controle do botão, etc etc.
Mas este fraqmento de código deve mostrar no 7Seg o numero digitado.
Eu usei os pinos D13 até D7 do arduino Uno, voce pode midifica-los para seu Arduino.
Rui
// o serial monitor deve estar configurado como No line ending
int SegA = 13; int SegB = 12; int SegC = 11; int SegD = 10; int SegE = 9; int SegF = 8; int SegG = 7;
char tamanho; // Variavel pra receber o numero digitado unsigned int num = 11;
byte disp_7[11][7]={ {1,1,1,1,1,1,0}, //dígito 0 {0,1,1,0,0,0,0}, //dígito 1 {1,1,0,1,1,0,1}, //dígito 2 {1,1,1,1,0,0,1}, //dígito 3 {0,1,1,0,0,1,1}, //dígito 4 {1,0,1,1,0,1,1}, //dígito 5 {1,0,1,1,1,1,1}, //dígito 6 {1,1,1,0,0,0,0}, //dígito 7 {1,1,1,1,1,1,1}, //dígito 8 {1,1,1,1,0,1,1}, //dígito 9 {0,0,0,0,0,0,0}, //off (10) }; int button=25; void setup() { Serial.begin(9600); pinMode(SegA, OUTPUT); //seg A pinMode(SegB, OUTPUT); //seg B pinMode(SegC, OUTPUT); //seg C pinMode(SegD, OUTPUT); //seg D pinMode(SegE, OUTPUT); //seg E pinMode(SegF, OUTPUT); //seg F pinMode(SegG, OUTPUT); //seg G pinMode(button, INPUT); Serial.println("Digite um numero de 0 a 9"); } void loop() { if(Serial.available() > 0) // Verifica se tem dados disponiveis na serial { num = Serial.parseInt(); // Le os dados da serial Serial.print("Numero digitado = "); Serial.println(num); } // Serial.print("Numero digitado = "); Serial.println(num);
if (num <11) { // este trecho é so para ver os digitos do sete sgmentos no serial // deve ser retirado depois Serial.println(disp_7[num][0]); Serial.println(disp_7[num][1]); Serial.println(disp_7[num][2]); Serial.println(disp_7[num][3]); Serial.println(disp_7[num][4]); Serial.println(disp_7[num][5]); Serial.println(disp_7[num][6]); // até aqui
Serial.println(" "); digitalWrite(SegA, disp_7[num][0]); digitalWrite(SegB, disp_7[num][1]); digitalWrite(SegC, disp_7[num][2]); digitalWrite(SegD, disp_7[num][3]); digitalWrite(SegE, disp_7[num][4]); digitalWrite(SegF, disp_7[num][5]); digitalWrite(SegG, disp_7[num][6]);
delay(2000); Serial.println("Digite outro numero de 0 a 9"); }
num = 11; }…
Adicionado por mineirin RV ao 11:15 em 15 maio 2015
or serial valores de 7 em sete, a cada segundo e não de um.
Quando executei ele fez assim
0
1
2
3
4
5
6
7
pausa de 1 segundo
8
9
10
11
12
13
14
pausa de 1 segundo
... E POR AI EM DIANTE.
Quando ele deveria aparecer assim:
0
pausa de 1 segundo
1
pausa de 1 segundo
2
pausa de 1 segundo
e por ai vai....
Mas valeu, vamos continuar tentando....
…
Adicionado por Weider Duarte ao 14:52 em 30 outubro 2017
no). Instalei o AVR + Eclipse + avrdude e subi para o arduino. Com meu multimetro vi que a camera está ativa. Fiz o teste que o MrArduino recomendou (colocar a tampa na camera e putar no serial e ver se volta 0x80). Não consegui converter a imagem (bytes não confirmam se a imagem está boa ou ruim), fiquei pensando se daria para salvar em um SD. Estou neste ponto no momento.A pinagem que estou usando é a que é recomendada no github:
A5->SIOC com pullupA4<->SIOD com pullup11-> XCLK com pullupA0<-0A1<-1A2<-2A3<-34<-45<-56<-67<-73<-VSYNC2<-PCLK
para pullup estou usando o resistor de 4.7k e 10k.O código fonte do MrArduino é pauleira, tive de debugar tudo, ir devagarinho para entender superficialmente o que ele faz. Olhando muito datasheet e aprendendo um pouco sobre os registradores.Agora estou quebrando o coco para salvar no SD pois está me faltando o pino 11 (usado pela ov7670) e aparentemente necessário para o uso do Shield SD.…
Adicionado por Oliveira ao 8:59 em 28 janeiro 2015
ra HIGH,
3- um delay ,
4- saída 5 HIGH,
5- um delay
6- a saída 5 LOW
7- delay,
8- a saída 6 HIGH,
9-apos acionar entrada 2 novamente
10- saída 6 LOW,
11- delay,
12- saída 4 LOW.
13 -fim.
consigo fazer ate o item 9 ai o sistema entra em loop
entre a saída 5 e 6.
por favor me ajudem.
…
;
6 SE ENVIO FOR 'd' FAÇA;
7 ATIVA O SENSOR;
8 SENSOR EM LOW;
9 AGUARDANDO MOVIMENTO
10 SENSOR EM HIGH
11 DETECTOU MOVIMENTO FAÇA;
12 LIGA O RELE;
13 RELE LIGADO POR ALGUNS MINUTOS;
14 DESLIGA O RELE;
15 SENSOR EM LOW;
16 SE ENVIO 'd' FAÇA;
17 DESLIGA O SENSOR;
18 NÃO LIGA RELE;
19 FIM
????
Obrigado.…
Adicionado por Cleiton Silva ao 21:42 em 23 janeiro 2017
reconhecido por conflito de informação, mas é apenas uma suposição. Alguém sebe o por que isso acontece? e se for realmente esse problema, é possível eu conectar o leitor RFID nos pinos de 2 a 7 ja que as instruções de da biblioteca indicam os pinos de 9 a 13?
Grato desde já …
LGM12641BS1R com a seguinte ligação:
LCD Atmega328
1 - CS1 A0
2 - CS2 A1
3 - GND GND
4 - VCC +5
5 -
6 - DI A3
7 - R/W A2
8 - E A4
9 - DB0 8
10 - DB1 9
11 - DB2 10
12 - DB3 11
13 - DB4 4
14 - DB5 5
15 - DB6 6
16 - DB7 7
17 - RST +5
18 -
Observe que está bem parecido com a sua ligação exceto pelas analógicas.
Essa ligação também não obtive sucesso algum, já fiz várias alterações nas ligações mas até agora nada.
Eu estou utilizando a biblioteca glcd-v3-20111205 que está no site da code.google. Essa que você mencionou é a mesma biblioteca? Você fez alguma alteração na biblioteca para que funcionasse?
Valeu cara!!
…
; 1 1) sejam conectados aos DRH (DRAIN7) dos TPI (de quais em especifico não é muito importante, pois será definido no código). Desta forma consigo adaptar a biblioteca ShiftDisplay para este tipo de ligação, e usar esses caracteres como se fossem os pontos decimais.
A outra dúvida creio que será se o arduino será rápido o suficiente para enviar os dados para um único "comboio" de 11 shift registers e manter o relógio (na fase da contagem das décimas de segundos), ou se serão 2 comboios, um com os 4 shift registers da contagem, e outro com os restantes 7.
Envio os "desenhos crus" das ligações em anexo.…
Adicionado por MiguelPynto ao 16:14 em 5 setembro 2017
no arduino conforme o esquema acima, o (da para melhorar, mas esta funcional)
d1 = 13 d2 = 12 d3 = 11 d4 = 10
A = 2 B = 3 C = 4 D = 5 E = 6 F = 7 G = 8 P = 9 (Pontos)
A biblioteca que funcionou corretamente com este modelo de display foi a LM7SegDirect disponível em anexo, tutorial de uso da mesma no site:
https://arduinoexamples.wordpress.com/2012/10/06/display-de-7-segmentos-1-digito/comment-page-1/#comment-157
Para se adequar o código ao proposto no esquema de montagem que era para anodo comum fiz algumas modificações
#include <LM7SegDirect.h>
LM7SegDirect disp(2, 3, 4, 5, 6, 7, 8, 9, false); /* declare aqui os pinos a,b,c,d,e,f,g e dp "ponto", para definir como anodo comum basta alterar false, para true*/
byte currentValue = 0; int currentMillis = 0; int digitQty = 4;// numeros de digitos no display
void setup() { disp.defineDigits(digitQty, 10, 11, 12, 13);// corresponde aos digitos, d1, d2, d3,d4 }
void loop() { disp.valueWrite(currentValue);// imprime o valor na tela do display currentMillis = currentMillis + (5 * digitQty);// cada digito tera 5ms para ser exibidos
if (currentMillis > 1000) { currentValue++; currentMillis = 0; } if (currentValue > 9999) currentValue = 0; }
o arquivo formatado está em anexo
testei e está funcional, agora preciso descobrir como alterar o código para exibir hora
em anexo esta a versão lendo um sensor de temperatura LM35
Att
…
Adicionado por Tiago Alexandre ao 10:51 em 21 fevereiro 2015