-
Posts
5 -
Cadastrado em
-
Última visita
Reputação
0-
PIC Pic 16f628a não executa o código corretamete
Brunomartins respondeu ao tópico de Brunomartins em Microcontroladores
Desculpe a demora, estou no trabalho e vou fazer isto hoje a noite e depois posto o que saiu. -
PIC Pic 16f628a não executa o código corretamete
Brunomartins postou um tópico em Microcontroladores
Olá, estou trabalhando em um projeto onde aperto um botão, o pic mande o sinal pra ponte h mandar um motor girar num sentido, atinge um sensor, o motor gira no outro sentido, e quando atinge o segundo sensor o motor volta por dois segundos, para e aguarda até que o botão seja pressionado novamente começando o cilclo novamente. Estou usando o pic 16f628a O ci de ponte h é o L293D Fiz um pequeno código que funciona perfeitamente no proteus, más quando montei o circuito, o pic fez algo totalmente diferente do programado ele não estava obedecendo a função "if" Estou aprendendo ainda a linguagem C. Segue o código que fiz no mikro c e o esquema no proteus. Obs.: o esquema já ta pronto pra montagem na pcb #define start RB0_bit // Define RB0_bit como start #define revert RB1_bit // Define RB1_bit como revert #define stop RB2_bit // Define RB2_bit como stop #define cc RB3_bit // Define RB3_bit como cc #define cw RB4_bit // Define RB4_bit como cw #define motor_enable RB5_bit // Define RB5_bit como motor_enable bit flagB0, flagB1, flagB2; // Configura as variaveis void main() { TRISB0_bit = 1; // Define RB0 como entrada TRISB1_bit = 1; // Define RB1 como entrada TRISB2_bit = 1; // Define RB2 como entrada TRISB3_bit = 0; // Define RB3 como saida TRISB4_bit = 0; // Define RB4 como saida TRISB5_bit = 0; // Define RB5 como saida RB3_bit = 0; // Define o valor inicial de RB3 como 0 RB4_bit = 0; // Define o valor inicial de RB4 como 0 RB5_bit = 0; // Define o valor inicial de RB5 como 0 for(;;) // Loop Infinito { if ((start == 1) && (flagB0 == 0)) // Se o botao start for pressionado, verifica se a flagB0 esta em "0" { delay_ms(50); // Delay de para reduzir o bounce if ((start == 1) && (flagB0 == 0)) // Verifica se o botao start continua pressionado e se a flagB0 continua em "0" motor_enable = 1; // Habilita o motor cc = 1; // Coloca o pino "RB3" em nivel logico alto cw = 0; // Coloca o pino "RB4" em nivel logico baixo flagB0 = 1; // Define a flagB0 em "1" flagB2 = 0; // Define a flagB2 em "0" } if ((revert == 1)&& (flagB1 == 0)) // Se o botao revert for pressionado,verifica se a flagB1 esta e "0" { delay_ms(50); // Delay para reduzir o bounce if ((revert == 1) && (flagB1 == 0)) // Verifica se o botao revert continua pressionado e se a flagB1 continua em "0" cc = 0; // Coloca o pino "RB3" em nivel logico baixo cw = 1; // Coloca o pino "RB4" em nivel logico alto flagB1 = 1; // Define a flagB1 em "1" } if ((stop == 1) && (flagB2 == 0)) // Se o botao stop for pressionado,verifica se a flagB2 esta e "0" { delay_ms(50); // Delay para reduzir o bounce if ((stop == 1) && (flagB2 == 0)) // Verifica se o botao stop continua pressionado e se a flagB2 continua em "0" cc = 1; // Coloca o pino "RB3" em nivel logico alto cw = 0; // Coloca o pino "RB4" em nivel logico baixo delay_ms(2000); // Aguarda 2 segundos cc = 0; // Coloca o pino "RB3" em niveç logico baixo motor_enable = 0; // Desabilita o motor flagB0 = 0; // Define a falgB0 em "0" flagB2 = 1; // Define a falgB2 em "1" } } } -
Já tentei colocar um sinal de vídeo nas entradas cvbs (composto) e na entrada componente más nada acontece. também iniciei uma conexão i2c com o ci e consigo enviar alguns comandos para o ci, só não sei quais informações tenho que mandar para ele ativar o cvbs adicionado 3 minutos depois E é a controladora do dvd não a controladora do display que estava queimada. São módulos separados. A controladora do display e todo seu circuito ficam na frentinha que é destacavel. Foi por ai que consegui ligar a placa e o lcd
-
Com uma nova pesquisa consegui encontrar o datasheet completo da controladora existente porém estou com algumas dúvidas quanto a conexão pois eu liguei a alimentação da placa e coloquei um sinal de vídeo na entrada composto do ci más nada aconteceu, somente o backligth da tela fica ligado. Alguém poderia me dizer se estou ligando alguma coisa de errado... datasheet tw8817.pdf
-
Olá pessoal, aqui em casa possuo um painel frontal de som de carro que esta com a controladora queimada, nele possui um display lcd colorido que eu gostaria de usa-lo em alguns projetos. Na pcb dele estão marcados algumas coisas que me chamaram um pouco a atenção, são os pinos que estão marcados como TFT-SDA, TFT-CLK, TFT-CE. Alguém saberia se tem como liga-lo na porta paralela ou serial do pc? No meu projeto mais futuro seria usá-lo em um raspbarry pi como uma central multimídia em um amplificador. Se alguém puder me ajudar eu agradeço!
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