Uma dica para quem estiver com erro de contagem no Proteus (ex. pressiona 1 mas o led pulsa 3 vezes; pressiona 8 mas led pulsa 7 vezes, etc): retirem os diodos 1N4148 da simulação (façam a ligação direta). Achei que fosse erro ao mapear o PORTB, mas na verdade os diodos geram um bug. Sem eles tudo funciona muito bem. Obs. testei outros diodos da biblioteca, alguns nem deixam o circuito funcionar. Como tem muitos, talvez algum funcione mas preferi manter a ligação direta mesmo. No circuito real, basta lembrar de colocar eles. Obrigado por mais uma excelente aula, Eng. Rambo, abraços!
A cada aula que assisto aqui no canal, eu adquiro novos conhecimentos dos quais não imaginaria ter. E fico tão maravilhado com isso, e profundamente grato a vc por dividi seus conhecimentos com a gente aqui no canal.
Wagner, muito bom seu video, confesso que nao conseguia entender o conceito de varredura mesmo depois de ter visto vários materiais, parabéns pela didática!
Método interessante... por que enquanto o timer 0 varre o teclado matricial, pode se utilizar outras instruções dentro do laço while, de forma independente. Sow de bola!!!
Muito interessante, fiquei curioso em saber como esse código é enviado para o computador. Exemplo, digamos que eu construa esse teclado e queira plugar via PS/2, qual seria a instrução para que os pulsos fossem reconhecidos adequadamente? Na verdade eu tenho a intenção de fazer um fliperama caseiro e gostaria de usar um teclado próprio. Desde já muito obrigado por compartilhar esse material na internet, um dos melhores canais de eletrônica que já vi.
Mais uma excelente aula... não imaginei que dava pra fazer isso de maneira tão simples. Mudando o foco do discador, daria pra fazer desse circuito uma chave de código para acionar um atranca ou fechadura elétrica? Daí gravamos a senha na eeprom (juntando as aulas anteriores). E a saída do led 2 serviria pra polarizar um transistor e ligar um relé que aciona a fechadura?
André Henrique , obrigado pelo elogio! Sua ideia é excelente! Com certeza, você pode reunir todos esses conhecimentos e criar este projeto de tranca microcontrolada com senha, vai ficar TOP!
Olá Wagner. Notei que o teste dos sinais dos pinos da linhas (pinos de entrada) ocorrem imediatamente após o pino da coluna (pino da saída) ser fixado em nível lógico 0. Minha dúvida é se os sinais elétricos respondem suficientemente rápido ou se não seria mais seguro haver um sleep (ou algo similar) entre a mudança do sinal da coluna e a leitura do pino da linha. Aproveito para reforçar que seu canal é muito bom.
+Pedro Henrique , muito obrigado pelo elogio! Sempre passe a dica do canal adiante! Os processadores industriais normalmente validam com low. Convenção ou então herança das famílias TTL (vide abstração digital e oscilador TTL aqui no canal para entender melhor). Mas você pode validar em high também, só precisa modificar a lógica do código.
gostei de ++++++++++! vou colocar um contador bcd com 7seg no lugar do led. queria que ele armazenasse o numero como um painel de senha.mas na aula anterior meu projeto no proteus não ficou como na aula. será que tem outro jeito?
Reestudando hoje 20/09/17. Deixo aqui outra duvida como de praxe, voce poderia criar um fórum de discussões para visitantes, seria bem interessante para trocar-mos experiencias. A duvida: Começando por exemplo com endereço do PORT_B=06H e do bit RB2=02H, temos o endereço completo em binario 00110 010 = 32H. este endereço representa o RB2_bit no PORT_B. Ocorre que ao ser atribuído col_2 que é próprio RB2 o valor de col_2=0x01, em teoria estaríamos tentando mudar o endereço fisico determinado no datasheet para este bit. No Mikroc nao é gerado nenhum erro, realizando a compilação normalmente, já no CCS o erro fica evidenciado "tentativa de atribuir um valor diferente do já existente", como o MikroC trata isto, já que no CCS nao podemos atribuir valor a esta variavel, mas sim informar o nivel output_high(col_2)??
acertei o valor kkk Wagner foi engraçado porque fui assistir um video recente e vc ta de cabelo grande completamente diferente hahaha grande amigo vc poderia comecar uma serie sobre fontes chaveadas haha
Professor, eu posso colocar as linhas em um PORT e as colunas em outro PORT ? Montei no PIC18F4550, usei o nibble mais significativo do PORTC para as colunas e o menos significativo do PORTD para as linhas, meu teclado é matricial (4x4). Mas ao energizar o circuito ele entende sempre que tem uma tecla pressionada, mesmo sem o teclado estar conectado ao circuito. Pode me ajudar por favor ? Deus abençoe. Assisto todas suas aulas. Mas
Ola Wagner, nos videos iniciais você disponibiliza o Proteus, poderia me passar o link para download novamente? pelo link do video não consegui realizar o donwload. Desde já muito obrigado.
Muito bom Wagner! Estou tentando fazer esse mesmo esquema de varredura por timer0 para o teclado matrícial no pic18F4550, as configurações são diferentes... E fazer funcionar em conjunto a um LCD... Mas não está funcionando... como ficaria essas configurações, no 18f4550?
+WR Kits Eai Wagner blz... fiz a leitura do datasheet, tentei refazer o programa... aínda estou tendo dificuldades... esse projeto é para o lcd ler os números pressionados, junto com o teclado matrícial... se puder explicar como fazer isso... agradeço!
+Felipe carvalho quinzan , boa pergunta. Quando declaramos uma variável como "int", é reservado um espaço de 16 bits na memória do microcontrolador. Entretanto, se nossa variável não ultrapassar o valor de 8 bits (255 em decimal), podemos declará-la como "unsigned char", que reservará um espaço de 8 bits. Logo, utilizamos char para poupar memória, porque podemos armazenar valores numéricos no tipo char também.
Leo Santos , estava mesmo estranhando que ninguém tinha perguntado ainda hehe. Ótima pergunta! São diodos de proteção para as portas do MCU e também garantem que somente o “0” lógico inserido nas colunas poderá ser refletido nas linhas.
Olá Wagner! Como posso fazer para quando pressionar o número ZERO do teclado acender o led1 e ao pressionar novamente apagar o led1 ? Adoro o seu canal, você é 10.
Fala WR, tudo bem ? não é muita instrução pra uma interrupção ? Outra coisa. Vc tem vídeos com projetos em módulos ? arquivos .c e seus respectivos .h separados ???? abraço !
Eu montei um circuito com teclado matricial 4 X 4 nesse mesmo esquema, mas não está funcionando. As teclas acionam mesmo quando o teclado não está conectado. Eu medi a tensão entre o diodo e o teclado e da 0V.
+Leo Santos , estava mesmo estranhando que ninguém tinha perguntado ainda hehe. Ótima pergunta! São diodos de proteção para as portas do MCU e também garantem que somente o “0” lógico inserido nas colunas poderá ser refletido nas linhas.
Uma dica para quem estiver com erro de contagem no Proteus (ex. pressiona 1 mas o led pulsa 3 vezes; pressiona 8 mas led pulsa 7 vezes, etc): retirem os diodos 1N4148 da simulação (façam a ligação direta). Achei que fosse erro ao mapear o PORTB, mas na verdade os diodos geram um bug. Sem eles tudo funciona muito bem. Obs. testei outros diodos da biblioteca, alguns nem deixam o circuito funcionar. Como tem muitos, talvez algum funcione mas preferi manter a ligação direta mesmo. No circuito real, basta lembrar de colocar eles. Obrigado por mais uma excelente aula, Eng. Rambo, abraços!
A cada aula que assisto aqui no canal, eu adquiro novos conhecimentos dos quais não imaginaria ter. E fico tão maravilhado com isso, e profundamente grato a vc por dividi seus conhecimentos com a gente aqui no canal.
Denildo Andrade , que bom que os vídeos estão lhe sendo úteis! Obrigado pela audiência, continue nos acompanhando e passe a dica do canal com todos.
Wagner, muito bom seu video, confesso que nao conseguia entender o conceito de varredura mesmo depois de ter visto vários materiais, parabéns pela didática!
+Miguel Dantas , valeu, que bom que conseguiu compreender! Passe a dica do canal adiante para nos ajudar. Continue nos acompanhando.
Essa aula foi muito útil para mim........valeu, sempre show sua aula......
David Soares , que bom que gostou da aula! Continue nos acompanhando!
Reestudando hoje 06/08/17 as 09:08. Sequencia na aula#67 discador por pulsos. Muito show a informação desta video aula.
valeu!
Mestre! O Infinito ficou mais próximo!! Show
Método interessante... por que enquanto o timer 0 varre o teclado matricial, pode se utilizar outras instruções dentro do laço while, de forma independente. Sow de bola!!!
Leo Santos , exatamente, é uma aplicação bem útil mesmo. Obrigado!
Excelente curso, didática é ótima!!!
Muito obrigado Sérgio! Contamos com sua audiência!
Muito interessante, fiquei curioso em saber como esse código é enviado para o computador.
Exemplo, digamos que eu construa esse teclado e queira plugar via PS/2, qual seria a instrução para que os pulsos fossem reconhecidos adequadamente?
Na verdade eu tenho a intenção de fazer um fliperama caseiro e gostaria de usar um teclado próprio.
Desde já muito obrigado por compartilhar esse material na internet, um dos melhores canais de eletrônica que já vi.
Muito legal, parabéns professor Rambo!
+Diego Ribeiro , valeu muito obrigado!!
Mais uma excelente aula... não imaginei que dava pra fazer isso de maneira tão simples. Mudando o foco do discador, daria pra fazer desse circuito uma chave de código para acionar um atranca ou fechadura elétrica? Daí gravamos a senha na eeprom (juntando as aulas anteriores). E a saída do led 2 serviria pra polarizar um transistor e ligar um relé que aciona a fechadura?
André Henrique , obrigado pelo elogio! Sua ideia é excelente! Com certeza, você pode reunir todos esses conhecimentos e criar este projeto de tranca microcontrolada com senha, vai ficar TOP!
Show! Aguardando o vídeo de sexta!
Edson Staack , valeu!! Vai estar show!
Muito bom, didática excelente!!
Olá Wagner. Notei que o teste dos sinais dos pinos da linhas (pinos de entrada) ocorrem imediatamente após o pino da coluna (pino da saída) ser fixado em nível lógico 0. Minha dúvida é se os sinais elétricos respondem suficientemente rápido ou se não seria mais seguro haver um sleep (ou algo similar) entre a mudança do sinal da coluna e a leitura do pino da linha. Aproveito para reforçar que seu canal é muito bom.
Valeu os elogios Fabio! A velocidade de varredura está ok para o projeto, o sistema pode ser implementado desta forma.
Isso é engenharia...
O uso intencional da ciência!
WOW!!!! ;)
+Pedro Igor com certeza! o/
show de bola continue assim
+MUSICAL FAVO DE MEL , valeu muito obrigado! Continue nos acompanhando, esperamos melhor cada dia mais.
mt bacana o video, o canal sempre com coisas interessantes. Uma duvida, pq validar as colunas com zero?
+Pedro Henrique , muito obrigado pelo elogio! Sempre passe a dica do canal adiante! Os processadores industriais normalmente validam com low. Convenção ou então herança das famílias TTL (vide abstração digital e oscilador TTL aqui no canal para entender melhor). Mas você pode validar em high também, só precisa modificar a lógica do código.
gostei de ++++++++++! vou colocar um contador bcd com 7seg no lugar do led. queria que ele armazenasse o numero como um painel de senha.mas na aula anterior meu projeto no proteus não ficou como na aula. será que tem outro jeito?
Muito Instrutiva suas vídeo aulas valeu...
obrigado Ricardo! Contamos com sua audiência!
Reestudando hoje 20/09/17. Deixo aqui outra duvida como de praxe, voce poderia criar um fórum de discussões para visitantes, seria bem interessante para trocar-mos experiencias. A duvida: Começando por exemplo com endereço do PORT_B=06H e do bit RB2=02H, temos o endereço completo em binario 00110 010 = 32H. este endereço representa o RB2_bit no PORT_B. Ocorre que ao ser atribuído col_2 que é próprio RB2 o valor de col_2=0x01, em teoria estaríamos tentando mudar o endereço fisico determinado no datasheet para este bit. No Mikroc nao é gerado nenhum erro, realizando a compilação normalmente, já no CCS o erro fica evidenciado "tentativa de atribuir um valor diferente do já existente", como o MikroC trata isto, já que no CCS nao podemos atribuir valor a esta variavel, mas sim informar o nivel output_high(col_2)??
acertei o valor kkk Wagner foi engraçado porque fui assistir um video recente e vc ta de cabelo grande completamente diferente hahaha grande amigo vc poderia comecar uma serie sobre fontes chaveadas haha
Professor, eu posso colocar as linhas em um PORT e as colunas em outro PORT ? Montei no PIC18F4550, usei o nibble mais significativo do PORTC para as colunas e o menos significativo do PORTD para as linhas, meu teclado é matricial (4x4).
Mas ao energizar o circuito ele entende sempre que tem uma tecla pressionada, mesmo sem o teclado estar conectado ao circuito.
Pode me ajudar por favor ?
Deus abençoe.
Assisto todas suas aulas.
Mas
Vagner, daria para usar essa lógica com rotary encoder?
@WRKITS, tem o código da aula?
Preciso de um teclado pra um pic 16f628a. Se tiver como disponibilizar o código e bibliotecas, fico muito grato.
Ola Wagner, nos videos iniciais você disponibiliza o Proteus, poderia me passar o link para download novamente? pelo link do video não consegui realizar o donwload. Desde já muito obrigado.
Wagner, gostaria de enviar uma carácter para o computador através de um acionamento por botão, poderia me dar uma dica?
Muito bom Wagner!
Estou tentando fazer esse mesmo esquema de varredura por timer0 para o teclado matrícial no pic18F4550, as configurações são diferentes...
E fazer funcionar em conjunto a um LCD...
Mas não está funcionando...
como ficaria essas configurações, no 18f4550?
Valeu Gabriel! Sugiro o estudo detalhado do datasheet do 4550. Provavelmente há algum registrador que ainda precisa ser configurado adequadamente.
WR Kits estou tendo essa mesma dificuldade
+WR Kits Eai Wagner blz... fiz a leitura do datasheet, tentei refazer o programa... aínda estou tendo dificuldades...
esse projeto é para o lcd ler os números pressionados, junto com o teclado matrícial... se puder explicar como fazer isso... agradeço!
Uma duvida, se você esta trabalhando com números, por que esta usando as variáveis com parâmetro "char" ao invés de "int"?
+Felipe carvalho quinzan , boa pergunta. Quando declaramos uma variável como "int", é reservado um espaço de 16 bits na memória do microcontrolador. Entretanto, se nossa variável não ultrapassar o valor de 8 bits (255 em decimal), podemos declará-la como "unsigned char", que reservará um espaço de 8 bits. Logo, utilizamos char para poupar memória, porque podemos armazenar valores numéricos no tipo char também.
Muito bom!
Os diodos conectados ao teclado no ISIS proteus tem alguma função? sem eles funciona normalmente não é?
Leo Santos , estava mesmo estranhando que ninguém tinha perguntado ainda hehe. Ótima pergunta! São diodos de proteção para as portas do MCU e também garantem que somente o “0” lógico inserido nas colunas poderá ser refletido nas linhas.
WR Kits Um... só mais uma coisa... e no primeiro : if(col_1 && control == 0x01) o que garante que col_1 vai ser=1 para entra neste if ??
Leo Santos , a inicialização do PORTB nas primeiras linhas da função principal.
ah é verdade... valeu!
Olá Wagner! Como posso fazer para quando pressionar o número ZERO do teclado acender o led1 e ao pressionar novamente apagar o led1 ? Adoro o seu canal, você é 10.
Valeu Lorenzo! Só precisa criar uma lógica que teste quando a tecla 0 for pressionada. Caso verdadeiro, inverter o estado do led1.
Fala WR, tudo bem ? não é muita instrução pra uma interrupção ?
Outra coisa. Vc tem vídeos com projetos em módulos ? arquivos .c e seus respectivos .h separados ????
abraço !
Tudo Paulo e você? Uma interrupção pode ter várias instruções. Não temos projetos em módulos por enquanto. abraço
muito legal,gostei muito,faz um vídeo de como cadastrar senha,obrigado.
Valeu Cicero! Pretendo fazer sim, continue nos acompanhando!
esse seu curso e baseado em linguagem c ou assembly?
Não tem essa aula de teclado matricial em assembly?
WrKits qual é a aula do discador por pulsos?
Show
Boa tarde, Rambo! Na simulação funcionou perfeitamente, mas não prática não. O que pode ser? Estou usando um PIC16F628A-I/P.
Olá Marcos, sugiro que revise as ligações e também os FUSE bits.
Eu montei um circuito com teclado matricial 4 X 4 nesse mesmo esquema, mas não está funcionando. As teclas acionam mesmo quando o teclado não está conectado. Eu medi a tensão entre o diodo e o teclado e da 0V.
👍
Olá Wagner, qual a função desses diodos nas entradas do teclado?
+Leo Santos , estava mesmo estranhando que ninguém tinha perguntado ainda hehe. Ótima pergunta! São diodos de proteção para as portas do MCU e também garantem que somente o “0” lógico inserido nas colunas poderá ser refletido nas linhas.
Estudante Elétrico vlw cara..
Beleza Claiton? Já esta bem evoluído na programação microcontrolador? Passe seu contato para trocarmos informações. Entendeu bem a duvida acima?
Estudante Elétrico eu estava acompanhando o wr kits, mas parei devido o trabalho. wr kits é o melhor canal pelo que tenho visto.
estou sim bem evoluído, mas agora tenho q rever algumas coisas. 85986722075 zap
like
Olá Rambo. Como eu faria pra acoplar um lcd 16x2 no pic16F877A usando tb um teclado matricial pra comparar senha ?
+Rafael Augusto G.O , pode adicionar um lcd no modo de 4 bits, como já demonstrado no canal, dê uma pesquisada em nossa lupa na página inicial.
O link de download não está funcionando
+Rafael Augusto G.O , já estamos atualizando os links.
oa l ogstaria de saber se vc tm curso em pic porem usando o ccs compiler grato agrfp@hotmail.com
+alexandre pronatec alexandre , olá! Por enquanto só temos curso de PIC baseado em MikroC Pro.
blz meu irmão
qto custa este curso seu ?