Pessoal, tentando aprender mutiplexação e shift register com estes dois componentes. A parte de hardware já entendi bem, o prolema é o código. Até agora só encontrei exemplos que  criam um contador regressivo ou que fazer os leds piscarem com algum padrão. Eu só gostaria de um codigo que fizesse o Arduino apenas me apresentar um número. Por exemplo: Um determinado sensor me deu o número 4, queria que o display mostrasse o 4. Apenas isso!

Código que comecei a mexer:

int um[] = {0,1,1,0,0,0,0,0};
int dois[] = {1,1,0,1,1,0,1,0};
int tres[] = {1,1,1,1,0,0,1,0};
int quatro[] = {0,1,1,0,0,1,1,0};
int cinco[] = {1,0,1,1,0,1,1,0};
int seis[] = {1,0,1,1,1,1,1,0};
int sete[] = {1,1,1,0,0,0,0,0};
int oito[] = {1,1,1,1,1,1,1,0};
int nove[] = {1,1,1,1,0,1,1,0};
int zero[] = {1,1,1,1,1,1,0,0};

//array dos numeros
int *number[] = {zero,um,dois,tres,quatro,cinco,seis,sete,oito,nove};

//Define os pinos de saida
int SER = 8;
int RCLK = 9;
int SRCLK = 10;

int counter = 0;

void changeValues(int *val[]){
for (int j=0;j<10;j++){
for(int i=7; i > -1; i--){
//SRCLK deslocamento
digitalWrite(SRCLK, LOW);
//HIGH logo apos deslocar, setar o clock
digitalWrite(RCLK, HIGH);
int PIN = val[j][i];
//pino a deslocar
digitalWrite(SER, PIN);
//HIGH para ativar
digitalWrite(SRCLK, HIGH);
}
digitalWrite(RCLK, LOW);
delay(1000);
}
}

void setup(){
Serial.begin(9600);
//configurando pinos como saida
pinMode(SER,OUTPUT);
pinMode(RCLK,OUTPUT);
pinMode(SRCLK,OUTPUT);
}

void loop(){
changeValues(number);
counter += 1;
Serial.print (counter);
if (counter >7){counter =0;}
}

Exibições: 891

Responder esta

Respostas a este tópico

up

Compara com esse trecho de código, acho q vc tá errando na sintaxe do shift out.

for (int k = 0; k < 10; k++)
{
// muda o latchPin para o estado low
digitalWrite(LATCH, LOW);
// shift out the bits:
delay(t);
shiftOut(DATA, CLOCK, MSBFIRST, digit[k]);

//shiftOut(DATA, CLOCK, bit mais significante primeiro, digit[k]
//muda o pino latch para high e escreve no LED:
digitalWrite(LATCH, HIGH);
// pause before next value:
Serial.print(k);
delay(t);

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço