Ir ao conteúdo

Posts recomendados

Postado

Oi pessoal

Estou querendo montar um vu de led com pic no youtube tem varios videos desse vu com pic ,porém nao estou conseguindo achar nenhuma programaçâo para ele, tenho conhecimento em linguagem c , por favor me ajude.

Desde ja agradeço

Postado

Bom, postou na área errada ....

Não tem segredo nenhum, você só tem de usar um divisor resistivo para subir o nivel DC para 2,5 volts, acoplar capacitivamente o sinal, e ligar direto no conversor A/D do pic.

Paulo

  • 2 anos depois...
Postado

Querida Isadora, perguntar não ofende, só pergunta quem não sabe, a final de conta o fórum não é p isso? Desculpa pela singularidade, é q estou tentando aprender programação agora por isso sou muito ignorante no assunto.

Essa linha de código q você mandou não entendi muita coisa mas eu chego lá.

Mesmo assim te agradeço por não menus presar minha falta de conhecimento.

Obrigado. 

  • Membro VIP
Postado

singular no sentido de que seria única. Mas 'frustrou' minhas expectativas e retornou! Vai chover kk. brinc.
 

 

Quando ao código também 'singular', desmembremo-lo...

- adcread(0) retorna um byte qualquer que vai de 0 a 255. É o resultado da conversão análogico-digital de um pino. Geralmente retorna um unsigned int 10 bits mas por hora este não é o foco

- adcread(0)/32 vai de 0 a 7. O maior 255/32 = 7.96875 mas como o mc não consegue encaixar isso num 1 byte de 8 bits, ele despreza a fração e sobra só 7 (pro futuro.. se fosse float, aí sim hein. Prum + distante.. mc de 8 bits odeia float!)

- 1<<(adcread(0)/32)) desloca a constante 1 pra esquerda de 0 a 7 vezes. Se 0: 0000001. Se 7: 1000000

- PORTB=1<<(adcread(0)/32)) expõe o que se passa no interior (tipo seu comentário anterior kk. brinc.)

 

Este é soft. Espero que não tenhas dificuldade com .. hard. Neste caso reflita sobre o comentário do amigo @vtrx

 

A linha que une ignorância e sabedoria se chama boa vontade (criei isso agora) e você aparenta ter boas conexões. Este é o tal 'fio da miada' que não pode ser perdido!  (conectei isso agora)

 

Estás no caminho certo amigo! Sucessos!

 

Postado

Querida Isadora obrigado pela paciência de me ensinar tudo direitinho, acabei de fazer o código e compilou sem erro, logo vou fazer o circuito e e botar em pratica. ha seu senso de humor é admirável kkk.

Obrigado.

Postado

 

@vtrx

Ae vtrx, vou postar o código q fiz, no proteus funcionou de boa mas ainda não tive tempo de implementar o circuito p testar na pratica.

Há usei o PIC 16f877A ficou varis pinos em vazio mas é o que t acostumado a usar, depois vou testar com o pic 16f628a.

 

//Projeto_VU

void main() {
ADCON0 = 0x01;
CMCON = 0x07;
trisa = 0x01;
trisb = 0x00;
trisc = 0x00;
trisd = 0x00;
trise = 0x00;
porta = 0x00;
portb = 0x00;
portc = 0x00;
portd = 0x00;

while(1)
{
PORTB=1<<(ADC_read(0)/32);
}
}

 

É só isso q fiz por hora e ja funcionou mas pode ser melhorado, e vou melhorar depois.

Obs: usei o compilador MikroC.

  • Membro VIP
Postado

Pelo menos uma vez na vida algo sai da minha cabeça e se transforma em algo não totalmente inútil noutro canto do planeta!

 

Já que você parece ser um bom menino, vamos tentar usar os 10 bits de resolução do ad e colocar em 2 ports com 16 leds? Uma melhoradinha 1/2 boca. Pode não lhe ser totalmente inútil de novo.

unsigned int a;
a=1<<(ADC_read(0)/64);//adcread retorna int e vai até 1023. Se ÷64 vai até 15 máximo inteiro. Portanto ao deslocarmos 1 na variável 'a', ela vai de 0x0001 a 0x1000 (0b0000000000000001 a 0b1000000000000000)
PORTB=a;//LSB num port
a>>=8;
PORTC=a;//MSB noutro

Só pra constar, digitei isso online, com fome e com vontade ir embora pra tomar uma. Portanto ... já sabe..!

 

Ah.. o pic628 não tem entrada analógica. Bom, tem mas é o comparador. Dá até pra fazer um conversor ad meia boca com ele mas acho que não vale a pena
Sucessos!

 

Postado

@Isadora Ferraz ,

 

Como diz o velho ditado : vaso ruim não quebra fácil ....  estou aqui novamente.

 

Sentiu muitas saudades minhas ?

 

Um passarinho me disse que voce estava chorando pelos cantos do Fórum, cabisbaixa, dando longos suspiros, e eu disse que com certeza era gripe .....

 

 

@elizeu.tce ,

 

Conseguiu fazer ?

 

 

@vtrx ,

 

Faz tempo ein meu amigo ?

 

Paulo

Postado

pois é cara! eu sou suspeito p falar porque eu adoro programação, sou um completo "leigo" no assunto, mas adoro eletronica e de vez em quando dou minhas cacetadas.

Bom, cou colocar o código que fiz de VU com 16 leds.

 

unsigned a;

void main() {
CMCON = 0x07;
ADCON0 = 0x01;
trisb = 0x00;
trisc = 0x00;
trisd = 0x00;

portb = 0x00;
portc = 0x00;
portd = 0x00;

while(1)
 {
  a = 1<<(ADC_Read(0) / 16);
  //portb = 0b00000001;
  //portc = 0b00000000;
  portb = a;
  a>>=8;
  portc = a;
 }
}

É isso ai galera, o PIC é 16f877A e o compilador é o MikroC, ta prontinho é só copiar e colar.

 

 

VU_24.DSN

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!