Olá pessoal, estou tentando fazer uma contador de 1, 5 e 10 pontos, mas sinceramente não consigo aprender como programa o Arduino, no máximo que consigo é acender e apagar LED!
Peguei um programa pronto e fui tentar mudar contar os pontos consegui, mas queria um pouco mais e fazer um modo sorteio de tempo por pontos ou apenas com cada ponto um tempo determinado.
Se alguém puder me ajudar, as duvidas estão nos códigos lá no void loop, ja colocar os LEDs acender e apagar eu tenho ideia de como fazer, tentei colocar delay e carrega o programa mas os display de 7 segmentos fica com o"zero" e não funciona mais nada, tentei outras forma que achei por ai na net, mas não entendi ou não funciona.
// Pinos do display 7 segmentos
#define A 2
#define B 3
#define C 4
#define D 5
#define E 6
#define F 7
#define G 8
// Botões conectados nos pinos
#define BTN1 A0,
#define BTN2 A1,
#define BTN3 A2,
#define BTN4 A3,
// Pinos anodo comum
#define CC1 9
#define CC2 10
#define CC3 11
#define CC4 12
// Pinos para A B C D E F G, em sequencia
const int segs[7] = { 2, 3, 4, 5, 6, 7, 8 };
// numeros
const byte numbers[10] = { 0b0111111, 0b0000110, 0b1011011, 0b1001111, 0b1100110, 0b1101101, 0b1111101, 0b0000111, 0b1111111, 0b1101111};
int estadobtn1 = 0;
int estadobtn2 = 0;
int estadobtn3 = 0;
int estadobtn4 = 0;
// Segmentos
int digit1 = 0;
int digit2 = 0;
int digit3 = 0;
int digit4 = 0;
int count = 0;
int val;
void setup() {
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(BTN1, INPUT);
pinMode(BTN2, INPUT);
pinMode(BTN3, INPUT);
pinMode(BTN4, INPUT);
digitalWrite(BTN1, HIGH); // ativa RPA
digitalWrite(BTN2, HIGH); // ativa RPA
digitalWrite(BTN3, HIGH); // ativa RPA
digitalWrite(BTN4, HIGH); // ativa RPA
pinMode(CC1, OUTPUT);
pinMode(CC2, OUTPUT);
pinMode(CC3, OUTPUT);
pinMode(CC4, OUTPUT);
// acender o ponto G por 5 segundos o em funcionamento.[/color]
void cincopontos();
[color=red]// quando BTN4 acionado, acende LED2, apaga LED1 “ ainda não tem”, fica 1 minuto com cincopontos funcionando....... se BTN4 não é acionado chama cincopontos ficando di
[color=red]// quando BTN4 acionado, acende LED3, apaga LED1 e 2 “ ainda não tem”, fica ... se BTN4 não é acionado chama dezpontos fic
// display number
digit1=count / 1000;
digit2=(count - (digit1 * 1000)) / 100;
digit3=(count - (digit1*1000) - (digit2*100)) / 10;
digit4=count % 10;
lightDigit1(numbers[digit1]);
delay(2);
lightDigit2(numbers[digit2]);
delay(2);
lightDigit3(numbers[digit3]);
delay(2);
lightDigit4(numbers[digit4]);
delay(2);
}
void lightDigit1(byte number) {
digitalWrite(CC1, LOW);
digitalWrite(CC2, HIGH);
digitalWrite(CC3, HIGH);
digitalWrite(CC4, HIGH);
lightSegments(number);
}
void lightDigit2(byte number) {
digitalWrite(CC1, HIGH);
digitalWrite(CC2, LOW);
digitalWrite(CC3, HIGH);
digitalWrite(CC4, HIGH);
lightSegments(number);
}
void lightDigit3(byte number) {
digitalWrite(CC1, HIGH);
digitalWrite(CC2, HIGH);
digitalWrite(CC3, LOW);
digitalWrite(CC4, HIGH);
lightSegments(number);
}
void lightDigit4(byte number) {
digitalWrite(CC1, HIGH);
digitalWrite(CC2, HIGH);
digitalWrite(CC3, HIGH);
digitalWrite(CC4, LOW);
lightSegments(number);
}
void lightSegments(byte number) {
for (int i = 0; i < 7; i++) {
int bit = bitRead(number, i);
digitalWrite(segs[i], bit);
}
}
}
Desde já agradeço;
Reinaldo Decco