Iniciado por Ricardo Guerra. Última resposta de mineirin RV 11 Mar, 2019. 1 Resposta 0 Curtiram isto
Olá..., Estou estudando sobre programação de PIC em linguagem C. Estou tentando programar um timer que o ajuste de tempo de 0 até 2 segundos é feito pela entrada analógica através de um…Continuar
Iniciado por Rafael Schiavon Guido. Última resposta de Rafael Schiavon Guido 4 Out, 2015. 5 Respostas 0 Curtiram isto
Prezados...estou precisando de ajuda para finalizar um programa e estou encontrando dificuldades, o progrma consistem em um gerador de sinais através do PIC18f4550 que irá conectado a uma EEPROM e a…Continuar
Iniciado por Rafael Leandro. Última resposta de Rafael Leandro 19 Ago, 2015. 6 Respostas 0 Curtiram isto
Comecei a juntar um material e componentes p/ estudar.Queria saber onde comprar o PIC 18F84Continuar
Tags: loja, 18F84, componente, PIC
Iniciado por Rodrigo Nogy Pereira 31 Maio, 2015. 0 Respostas 0 Curtiram isto
Olá pessoal.Estou fazendo uns testes com a o Pic 18F4550 usando o barramento RS232 programando no CCS e usando o gravador Pickit2.O meu problema é que não aparece as mensagens na interface UART Tool…Continuar
Comentar
PACMAN,
Eu uso o PicBasic Pro Compiler 2.47 da microEngineering Labs, Inc., que tem resolvido, facilitado e agilizado muito todos os projetos que já desenvolvi. Sei que existe muito preconceito em relação ao Basic, devido ao passado, onde era usado como linguagem interpretada, e também no passado existiu um compilador que criava um arquivo .exe muito grande. Mas o PicBasic é muito diferente do que se viu ou aconteceu no passado. Já deu para perceber que sou um defensor desta linguagem para PIC.
Mudando de assunto, dei uma olhada rápida no seu blog, gostei muito, parabéns !
Enio,
Por falta de tempo demorei a responder, desculpe-me.
Suas dicas são importantes e já estão anotadas, assim que arrumar um tempinho vou por em prática, ando muito ocupado, mas assim que fizer alguma coisa postarei os resultados e dúvidas se for o caso.
Muito obrigado !
Oi Pessoal, estou chegando agora e já pedindo licença pra participar destes comentários sobre linguagens de programação pra PIC... vejo vocês falando muito de Basic, C ...
Em relação ao tamanho de código gerado a resposta correta é: Depende...
Depende do teu compilador, depende da função que vc usa... depende de como o compilador trata os eventos (interrupções) do MCU, varia muito.
Um compilador C que eu gosto muito mas que gera um lixo tremendo é o CCSC para PIC... ele funciona direitinho, tira um monte de dor de cabeça no controle de dispositivos principalmente na parte de configuração e conhecimento profundo do Datasheet... seria o equivalente a um ambiente RAD para PIC. Já usei em muitos projetos e não me arrependo.
Existem compiladores melhores para C e PIC... sim existem ... posso citar o MicroC ... mas no final das contas... CCSC acaba resolvendo 99.9% dos problemas que não vale realmente a pena perder tempo com isso.
Compilador Basic para PIC tem o MicroBasic... que na teoria gera o mesmo código do MicroC ... ele tem uma etapa de meta-código e no final gera em linkedição um código assembler muito parecido como do MicroC ... não fiz muitos testes neste sentido ... mas já ouvi falarem muito disso.
Agora na real... nunca nenhuma linguagem de programação de "alto nível" vai gerar um código tão rápido e compacto quanto quando você programa direto em Assembler... o que no final das contas nem é tão complicado assim ... principalmente se tratando de PIC...
Edson,
o problema normalmente não esta no codigo, mas no hardware.
Lembre-se que o A/D não mede a tensão diretamente , mas mede uma relação entre a tensão de entrada e a referencia de tensão. se sua referencia é a fonte , BINGO , a flutuação da fonte aparecerá na leitura do A/D.
Muitas vezes a flutuação aparece no terra do PIC em relação a tensão que vc quer medir.
Deve-se obedecer todas as boas tecnicas de instrumentação , de modo a garantir que a tensão de referencia do A/D no PIC seja estavel , da mesma maneira , a tensão que chega no A/D tem que ter seu terra independente dos outros terras de potência , para que correntes em outros circuitos não introduzam pequenas variações no terra e consequentemente na tensão a ser medida. Outro ponto importante é o tempo de aquisição do Sample & Hold.
Já tive problemas porque deixei este tempo muito pequeno , e não dava tempo de carregar o capacitor interno do pic introduzindo erros de leitura e flutuações intermitentes.
A maneira mais robusta é se usar referencia de tensão externa ( Hi e LO ) vc pode usar um LM336 que é baratinho , e tem em qualquer lugar , tem de 5v e 2,5V , eu prefiro de 2,5V a leitura fica uma rocha , e não varia nem a pau com a temperatura , a tensão da fonte pode chacoalhar a vontade que a leitura está lá garantida !
Abração
Enio.
Enio,
Quando comecei a lidar com os A/D dos pics, segui todos os passos sugeridos nos Data Sheets e do site da Microchip, incluí as rotinas em assembler nos programas e sempre houve instabilidade, tentei algumas fontes de alimentação, lineares e chaveadas, iclusive testei com pilhas na alimentação e na entrada A/D ( fiz isto para tirar a dúvida das fontes ) e sempre acontecia as mesmas instabilidades. Fiz testes alterando a velocidade do clock, etc. E a única solução que encontrei foi a média aritimética e usar tensão de referência externa. Na época procurei informação em todo lugar, em fóruns onde todos relatavam os mesmos problemas e nunca ninguém tinha solução, em livros sobre PIC em inglês, de onde tirei exemplos, e também sempre os mesmos problemas. Peço-lhe um favor, se você puder nos fornecer mais informações sobre as suas soluções, inclusive as linhas de código, soluções de fonte, etc, tudo o que possa nos ajudar. Eu e outros que pretendem usar os A/D, ficaremos muito agradecidos a você. Eu sou só um aprendiz ! Desde já lhe agradeço ! Felicidades !
Edson eu também usava médias aritiméticas mas, imagine se por algum motivo durante a sua leitura você tenha um ruído de valor muito maior ou menor a sua média será alterada.
Com a mediana, você terá que ordenar de forma crescente ou decrescente suas leituras e depois você pega o valor do meio como sua leitura válida. Assim. se você tiver um ruído (um valor alto ou baixo), este será ordenado e descartado.
Não sei se me fiz entender mas, no (nosso pai) Google tem definições melhores que a minha, além de algorítimos que poderão te auxiliar na construção do código.
Espero ter ajudado...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de PIC para adicionar comentários!