Dispositivos de I/O (teclado matricial, LCD, motores) Disciplina de Microcontroladores Prof. Ronnier Prof. Rubão
Portas de I/O no 8051 - AT89C5131 tem 05 ports de 8 bits (P0 a P4)
Portas de I/O no 8051
Portas de I/O no 8051 - É possível realizar escritas e leituras individualmente em todos os bits de I/O disponíveis, não havendo necessidade de pré programar cada porta, especificamente como saída ou entrada. - Exemplos: Para se escrever um byte no Port 1 (8 bits de saída), pode-se utilizar a instrução MOV P1, #byte. Para se ler um byte do port P3 (8 bits de entrada), pode-se utilizar a instrução MOV A, P3. - Para acessar bits individuais dos Ports pode-se fazer uso da instrução MOV bit, C para efetuar operações de saída e a instrução MOV C, bit para efetuar operações de entrada. Além de instruções de transfere ncia de dados, também é possível utilizar instruções lógicas (ANL, ORL, XRL), aritméticas (ADD, ADDC, DEC, INC, SUBB), de manipulação de variáveis booleanas (CLR, CPL, SETB) e de controle de programa (CJNE, DJNZ, JB, JNB, JBC)
Portas de I/O no 8051 Estrutura simplificada de um terminal de I/O (Port 1) No caso de leitura, cada bit comporta-se como um buffer tristate e no caso de escrita comporta-se como um flip-flop D.
Portas de I/O no 8051 Estrutura simplificada de um terminal de I/O (Port 1) - Quando um bit é escrito no Port, este trafega pelo barramento de dados interno do microcontrolador até a entrada do flip-flop D e, após um pulso na entrada de clock, é levado à saída do mesmo. O restante do circuito eletrônico encarrega-se de levar o nível lógico adequado ao terminal externo. - No caso de leitura do Port, algumas das instruções le em o estado dos terminais, enquanto outras leem o estado dos flip-flops internos. As instruções que leem o estado dos flipflops são aquelas que alteram e escrevem novamente o valor dos bits (INC, DEC, CPL, JBC, DJNZ, ANL, ORL e XRL). As demais instruções leem o estado presente nos terminais externos.
Teclado Matricial
Teclado Matricial
Teclado Matricial
Varredura em teclado Teclado Matricial
Varredura Teclado Matricial
Diodos de proteção Teclado Matricial
Debouncing Teclado Matricial - Teclas mecânicas (ruído causado pelo rebote - Bounce) - Depende do tipo de tecla - Dura de dezenas de microssegundos a centenas de milissegundos
Técnicas de Debouncing Teclado Matricial - Remoção por software (temporização) - Remoção por hardware Usar Schmitt Trigger Usar MC14043 04 FF tipo RS
Modo Alfanumérico Modo Gráfico Display LCD
Display LCD
Alfanumérico Display LCD
Modo Alfanumérico Display LCD
Display LCD Modo Alfanumérico Controlador interno HD 44780
Display LCD Modo Alfanumérico Controlador interno HD 44780 - Caractere composto em uma matriz de pixels com 8x5
Modo Alfanumérico Display LCD
Display LCD Ligação LCD em microcontrolador PIC
Temporização Display LCD
Temporização Display LCD
Display LCD Instruções LCD modo alfanumérico
Display LCD Sequência Inicialização
Display LCD Sequência Inicialização
Display LCD Endereços dos caracteres
Display LCD Endereços dos caracteres Observação Para ilustrar, o endereçamento de um display LCD 16X02 é o seguinte: Como devemos, obrigatoriamente fazer com que o bit mais significativo do endereço seja 1, o valor que devemos passar para o LCD é:
Display LCD Tabela de Caracteres Existe uma memória interna pré-programada com caracteres Tabela conhecida como ROM Code A00
Display LCD Tabela de Caracteres Obs. Existem alguns LCD que possuem esta tabela, mas são mais raros e antigos Tabela conhecida como ROM Code A02
Display LCD Caracteres especiais - Pode personalizar 08 caracteres - Armazenados em uma memória RAM CGRAM - Ou seja, se perdem ao desligar o LCD. - Os endereços 0x00 à 0x07 são reservados para caracterescriados pelo usuário. - Envia-se para o LCD a condição (0 ou 1) de cada pixel do caractere em 8 bits. - Para criá-lo, define-se como será com base em uma matriz 5x8
Display LCD Caracteres especiais
Display LCD Caracteres especiais
Display LCD Caracteres especiais Com o caractere pronto, basta programá-lo na CGRAM enviando a sequência de comando correta; - Primeiro, o comando SET CGRAM ADRESS + o endereço inicial; - Para o primeiro caractere disponível : 00010000; - Em seguida, os 8 bytes que formam o caractere. - Se continuarmos inserindo informações de bytes, o ponteiro passará para o segundo endereço do caractere e assim por diante; - Então, para programar os caracteres disponíveis, basta enviar o comando SET CGRAM ADRESS + o endereço 0x00 e passarmos, em seguida, os 64 bytes que formarão os 8 novos caracteres;
Display Gráfico
Pinagem Display Gráfico
Paginamento Display Gráfico
Ligação Display Gráfico
Comandos Display Gráfico
Motores Motor DC Motor-de-passo Servo-motor
Motor DC - Apenas dois fios (os de baixa potência) - Motor analógico varia tensão e corrente, varia torque e velocidade - Necessita drivers de corrente para utilização em microcontroladores
Motor DC - Pode se variar a velocidade, também, em modo digital PWM Pulse Width Modulation
PWM Motor DC
Motor DC - Também pode ser invertido o sentido de rotação Ponte H
Motor-de-passo - Também chamado de motor digital - Rotação independe da corrente e tensão aplicada nas fases
Tipos Motor-de-passo
Motor-de-passo Diagrama de ligação Motores Unipolares
Motor-de-passo Diagrama de ligação Motores Bipolares Utilização de Ponte H integrada (ou discreta) Circuito integrado L298
Motor-de-passo Utilização de controlador adicional L297 Motor Bipolar
Motor-de-passo Utilização de controlador adicional L297 Motor Unipolar
Motor-de-passo Passo incremento mecânico no rotor. Pode ser sentido nos dedos cada passo do motor, pois há engrenagem mecânica em repouso para isso Normalmente o motor é classificado pelo número de passos. Ex. 200 passos Se um motor tem 200 passos, em cada rotação (360º), significa que cada passo possui 1,8º. Modos de Operação PASSO COMPLETO MEIO-PASSO MICROPASSO
Modos de Operação Motor-de-passo PASSO COMPLETO Nesta condição, supondo que o motor tenha 200 passos por revolução, cada passo possui 1,8º de resolução. Apenas um enrolamento é acionado por vez *. MEIO-PASSO Meio-passo significa que o motor de passo gira a 400 passos por rotação. Nesse modo, um enrolamento é energizado e, em seguida, dois enrolamentos são energizados de forma alternada, fazendo com que o rotor gire pela metade da distância, ou seja, 0,9. Embora produza aproximadamente 30% menos torque, o modo meio-passo gera um movimento mais suave que o modo de passo completo. * Vide exceção posteriormente
Motor-de-passo Modos de Operação Observação Existe, ainda, uma variabilidade no modo de operação normal, onde dois enrolamentos são acionados por vez AO MESMO TEMPO. Não há variação de velocidade, mas o torque é aumentado significativamente. Óbvio que a corrente de consumo e a dissipação de potência no mesmo dobram.
Motor-de-passo Modos de Operação MICROPASSO O micropasso é uma tecnologia que controla a corrente no enrolamento do motor a um determinado grau que chega a subdividir o número das posições entre os pólos. Há necessidade de acionadores especiais (circuito especial) que são capazes de dividir um passo completo (1,8 ) em 256 micropassos, o que resulta em 51.200 passos por rotação (0,007 /passo). Normalmente, o micropasso é utilizado em aplicações que exigem posicionamento exato e movimentos suaves em uma grande variedade de velocidades. Também produz 30% menos torque que o modo de passo completo.
Motor-de-passo Sequência de acionamento dos enrolamentos
Controlador de micropasso Motor-de-passo
Controlador de micropasso Motor-de-passo
Servo-motor É um motor DC realimentado em malha fechada - Alta exatidão no controle - Torque alto - Alta velocidade Micro
Servo-motor É um motor DC realimentado em malha fechada
Servo-motor
Servo-motor Utiliza-se um PWM para controle de posição
Servo-motor Utiliza-se um PWM para controle de posição
Servo-motor Utiliza-se um PWM para controle de posição
Servo-motor - Aplicações Automatic Tinder Finger
1ª Experiência de Laboratório Projetar uma fechadura eletrônica para cofres, conforme a figura
1ª Experiência de Laboratório Especificação -Deverá possuir LCD, teclado matricial, buzzer sonoro e acionador eletromecânico baseado em motor-de-passo -O usuário deverá gravar duas senhas padrão de 04 dígitos na memória de programa. -Uma mensagem texto deverá aparecer apresentando o produto personalizado. -O teclado deverá conter, pelo menos, 0-9, ESC e ENTER -Ao digitar a senha, deve aparecer apenas * na tela, ao mesmo tempo que um beep sonoro curto deve soar a cada pressionar de tecla. Após digitar a senha, validar com ENTER. -Caso erre a senha, ou desista da operação, tecle ESC
1ª Experiência de Laboratório Especificação -A validação deverá ser visual no LCD com mensagens de senha correta ou incorreta. Caso senha esteja correta, um beep de 01 segundo deve soar e o motor-de-passo deverá acionar um mecanismo indicando a movimentação da lingueta de uma fechadura (acionador mecânico por conta da equipe). -Este mecanismo deverá ficar acionado por 03 segundos e posteriormente deverá recolher automaticamente à posição original. -Um beep sonoro indicando que a senha está correta deve ser acionado concomitantemente. -Caso o usuário digite a senha errada, um beep sonoro diferenciado de 02 segundos indicará senha incorreta. O mecanismo não deve ser acionado.
1ª Experiência de Laboratório Especificação -A cada tentativa de inserção de senha errada, o sistema deve ficar inerte por aproximadamente 03 segundos, voltando a automático após este tempo. -O teclado não deve possuir bounce -Caracteres estranhos no LCD idem. -Pode utilizar buzzer com oscilador interno