Autor Tópico: Contrôle de motores com PIC16F628A  (Lida 64306 vezes)

Description:

0 Membros e 2 Visitantes estão vendo este tópico.

Offline robedany

  • Hobby
  • ****
  • Posts: 357
  • Sexo: Masculino
Re: Contrôle de motores com PIC16F628A
« Resposta #75 Online: 06 de Julho de 2010, 19:26 »
O 12F675 é igual o 12F629 com entrada A/D e usa os mesmos pinos do 12C671

Offline aguizan

  • Fuso
  • **
  • Posts: 158
  • Sexo: Masculino
  • GUIA-CNC
Re: Contrôle de motores com PIC16F628A
« Resposta #76 Online: 06 de Julho de 2010, 20:27 »
O 12F675 é igual o 12F629 com entrada A/D e usa os mesmos pinos do 12C671

É uma outra boa opção.

Offline aguizan

  • Fuso
  • **
  • Posts: 158
  • Sexo: Masculino
  • GUIA-CNC
Re: Contrôle de motores com PIC16F628A
« Resposta #77 Online: 06 de Julho de 2010, 21:02 »
ESTOU MIGRANDO DO 12C671 PARA O 16F628A E NESTE ÚLTIMO NÃO ENCONTRO O CONVERSOR A/D VERIFIQUEI QUE RA0 E RA1 SÃO ENTRADAS ANALÓGICAS(COMPARADORES ). COMO FAÇO PARA LER SINAIS ANALÓGICOS E TRANSFORMÁ-LOS EM DIGITAIS ?


Encontrei no registrador especial CMCON. No caso específico preciso usar DUAS entradas analógicas, concordam ? Sendo assim, vou configurar o registrador com os três primeiros bits em 100 (resulta em dois comparadores independentes )
« Última modificação: 06 de Julho de 2010, 21:17 por aguizan »

Offline C N C N o w !

  • CNCMASTER
  • ******
  • Posts: 6300
  • Sexo: Masculino
Re: Contrôle de motores com PIC16F628A
« Resposta #78 Online: 07 de Julho de 2010, 07:03 »
COMO FAÇO PARA LER SINAIS ANALÓGICOS E TRANSFORMÁ-LOS EM DIGITAIS ?

Há muitas maneiras de fazer a conversão ... uma delas é utilizando a tensão de referência (Vref) variável e os comparadores.

Supondo que seu  interesse seja tb dominar os PICs e não apenas o projeto do ROV, sugiro:

A bíblia de quem lida com PICs:

PICmicro Mid-Range Reference Manual

http://ww1.microchip.com/downloads/en/devicedoc/33023a.pdf

Sugiro tb um longo passeio pelo site da Microchip para familiarizar-se com a documentação existente. Além das data sheets, as notas de aplicação ajudam muito e são muito interessantes e divertidas. É possível encontrar código pronto pra quase tudo que possa precisar.


Há alguma literatura em português, os livros abaixo são dos mais populares:

Desbravando o PIC - Ampliado e Atualizado para PIC 16F628A

http://www.editoraerica.com.br/buscafinal.asp?cod=8674


Microcontroladores PIC - Técnicas Avançadas

http://www.editoraerica.com.br/buscafinal.asp?cod=7279

Se o inglês não for prob pra vc, prefira o site da Microchip, todos os livros que pude ver são baseados nas informações lá disponíveis, recompiladas, mas tem lá seu valor didático, mas afinal a Microchip é a fonte primária de referência. As mandrakarias mais interessantes vc vai encontrar em sites por aí, raramente em livros.

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re: Contrôle de motores com PIC16F628A
« Resposta #79 Online: 07 de Julho de 2010, 12:12 »

Entendi que iria usar o PIC16F877 no ROV e na unidade de comando, que possui mais pinos, entradas analógicas, porta serial,..... Desistiu?

Seria um PIC só dos dois lados, padronizando melhor o software...

Offline aguizan

  • Fuso
  • **
  • Posts: 158
  • Sexo: Masculino
  • GUIA-CNC
Re: Contrôle de motores com PIC16F628A
« Resposta #80 Online: 07 de Julho de 2010, 18:49 »

Entendi que iria usar o PIC16F877 no ROV e na unidade de comando, que possui mais pinos, entradas analógicas, porta serial,..... Desistiu?
Não desisti não. O que estou fazendo por enquanto é pesquisa e estudo. Estou utilizando o material que já tenho para me familiarizar com microcontroladores e como havia comprado o livro desbravando o pic - PIC16F628A estou trabalhando com este componente.
[/quote]

Seria um PIC só dos dois lados, padronizando melhor o software...

Sim, a idéia é utilizar somente um. Para atender as necessidades básicas do projeto o 628 serve.'

Offline aguizan

  • Fuso
  • **
  • Posts: 158
  • Sexo: Masculino
  • GUIA-CNC
Re: Contrôle de motores com PIC16F628A
« Resposta #81 Online: 07 de Julho de 2010, 19:02 »

Supondo que seu  interesse seja tb dominar os PICs e não apenas o projeto do ROV, sugiro:
A bíblia de quem lida com PICs:

Jorge,
Já baixei o Manual de referência e achei EXCELENTE, tenho um bocado de diversão pela frente. O Desbravando o PIC eu já tenho e estou utilizando bastante. Grato pelas dicas.

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re: Contrôle de motores com PIC16F628A
« Resposta #82 Online: 07 de Julho de 2010, 19:24 »

Para atender as necessidades básicas do projeto o 628 serve.'

Mas não possui conversor A/D, apesar de ter comparadores. Um conversor A/D é diferente dos comparadores, inclusive para implementar várias entradas analógicas (o 628 não possui MUX analógico, software seria bem +complexo)...

Não entendi onde usaria o 628 no projeto.

Offline aguizan

  • Fuso
  • **
  • Posts: 158
  • Sexo: Masculino
  • GUIA-CNC
Re: Contrôle de motores com PIC16F628A
« Resposta #83 Online: 07 de Julho de 2010, 20:00 »
Mas não possui conversor A/D, apesar de ter comparadores. Um conversor A/D é diferente dos comparadores, inclusive para implementar várias entradas analógicas (o 628 não possui MUX analógico, software seria bem +complexo)...

Não entendi onde usaria o 628 no projeto.

Esta mudança de microcontrolador foi orientada por um fornecedor (na época ele me informou que o projeto original com 16F84A era coisa ultrapassada e que poderia substituir pelo 628). O projeto ficou parado por dois meses e agora estou retomando as atividades. A orientação que vc está me passando realmente me conforta pois estava complicado para entender como fazer a conversão A/D.
Neste caso então posso alterar o que já fiz para o 877 como havíamos falado. Esse é o componente certo para esse tipo de aplicação ? O que acha ? Sou iniciante nessa área mas com um empurrãozinho consigo dar andamento ao projeto.

Offline C N C N o w !

  • CNCMASTER
  • ******
  • Posts: 6300
  • Sexo: Masculino
Re: Contrôle de motores com PIC16F628A
« Resposta #84 Online: 07 de Julho de 2010, 20:44 »
Esse é o componente certo para esse tipo de aplicação ?

Não há propriamente o certo, a escolha de um microcontrolador não é uma receitinha de bolo, é sempre espinhosa, há muitas opções, particularmente para projetos comerciais, onde cada centavo conta, cada milímetro cúbico conta, cada grama conta ... como não é este o caso, eu compartilho da opinião do Gil, acho que o 16F877 é uma boa opção, muito flexível, vai facilitar muito os estágios iniciais e permitir expansões significativas no futuro próximo. E não vai custar um rim, tá disponível no nosso mercado a baixo custo.

Offline aguizan

  • Fuso
  • **
  • Posts: 158
  • Sexo: Masculino
  • GUIA-CNC
Re: Contrôle de motores com PIC16F628A
« Resposta #85 Online: 07 de Julho de 2010, 21:08 »
Esse é o componente certo para esse tipo de aplicação ?
, eu compartilho da opinião do Gil, acho que o 16F877 é uma boa opção, muito flexível, vai facilitar muito os estágios iniciais e permitir expansões significativas no futuro próximo.

Sendo assim já estou trabalhando com esse novo componente e preparando as alterações no código. A propósito, verifiquei no Manual de Referência a seguinte informação:

BSF STATUS, RP0            ; Select Bank1
CLRF ADCON1                 ; Configure A/D inputs
BSF PIE1, ADIE               ; Enable A/D interrupts
BCF STATUS, RP0           ; Select Bank0
MOVLW 0xC1                 ; RC Clock, A/D is on, Channel 0 is selected
MOVWF ADCON0            ;
BCF PIR1, ADIF              ; Clear A/D interrupt flag bit
BSF INTCON, PEIE          ; Enable peripheral interrupts
BSF INTCON, GIE           ; Enable all interrupts
;
; Ensure that the required sampling time for the selected input
; channel has elapsed. Then the conversion may be started.
;
BSF ADCON0, GO          ; Start A/D Conversion
:                               ; The ADIF bit will be set and the GO/DONE
:                               ; bit is cleared upon completion of the
:                               ; A/D Conversion.


Posso utilizar como minha rotina de conversão A/D e ao retornar carrego o valor convertido em "W"

Offline C N C N o w !

  • CNCMASTER
  • ******
  • Posts: 6300
  • Sexo: Masculino
Re: Contrôle de motores com PIC16F628A
« Resposta #86 Online: 07 de Julho de 2010, 22:07 »
Posso utilizar como minha rotina de conversão A/D e ao retornar carrego o valor convertido em "W"

É por aí ...

Observe certas coisinhas ...

Vc deveria usar cristal para o clock, já que vai precisar de comunicação serial. Não é absolutamente necessário, mas é recomendável, pode poupar algumas enxaquecas ... neste caso nada justifica não usar ...

Cuidado com o tratamento das interrupções ... são utilíssimas, mas dão surra em gente grande ... saber usá-las adequadamente é o que separa os homens dos meninos ...  ;D

Uma coisa que eu acho chatíssima nos PICs é a comutação dos bancos ...

Offline aguizan

  • Fuso
  • **
  • Posts: 158
  • Sexo: Masculino
  • GUIA-CNC
Re: Contrôle de motores com PIC16F628A
« Resposta #87 Online: 07 de Julho de 2010, 22:45 »

NO TRECHO DO CÓDIGO:

BSF STATUS, RP0            ; Select Bank1
CLRF ADCON1                 ; Configure A/D inputs
BSF PIE1, ADIE               ; Enable A/D interrupts

A CONFIGURAÇÃO DESTE REGISTRADOR ESTÁ SENDO FEITA TODA EM ZEROS CORRETO, ENTÃO:
VERIFICANDO NO DATASHET ESSE BYTE ASSUMIRÁ QUE TODAS AS ENTRADAS SERÃO ANALÓGICAS, ISTO ESTÁ CORRETO ? É ASSIM QUE DEVO ANALIZAR ?

Posso utilizar como minha rotina de conversão A/D e ao retornar carrego o valor convertido em "W"

Offline aguizan

  • Fuso
  • **
  • Posts: 158
  • Sexo: Masculino
  • GUIA-CNC
Re: Contrôle de motores com PIC16F628A
« Resposta #88 Online: 07 de Julho de 2010, 23:25 »
Esse é o componente certo para esse tipo de aplicação ?
, eu compartilho da opinião do Gil, acho que o 16F877 é uma boa opção, muito flexível, vai facilitar muito os estágios iniciais e permitir expansões significativas no futuro próximo.

Sendo assim já estou trabalhando com esse novo componente e preparando as alterações no código. A propósito, verifiquei no Manual de Referência a seguinte informação:

BSF STATUS, RP0            ; Select Bank1
CLRF ADCON1                 ; Configure A/D inputs
BSF PIE1, ADIE               ; Enable A/D interrupts
BCF STATUS, RP0           ; Select Bank0
MOVLW 0xC1                 ; RC Clock, A/D is on, Channel 0 is selected

ALTERANDO ESSA LINHA PARA:
MOVLW 0x81                 ; 20 MHZ Clock, A/D is on, Channel 0 is selected
ESTÁ CORRETA ESSA FREQUÊNCIA ???

MOVWF ADCON0            ;
BCF PIR1, ADIF              ; Clear A/D interrupt flag bit


Offline C N C N o w !

  • CNCMASTER
  • ******
  • Posts: 6300
  • Sexo: Masculino
Re: Contrôle de motores com PIC16F628A
« Resposta #89 Online: 08 de Julho de 2010, 06:55 »
VERIFICANDO NO DATASHET ESSE BYTE ASSUMIRÁ QUE TODAS AS ENTRADAS SERÃO ANALÓGICAS, ISTO ESTÁ CORRETO ? É ASSIM QUE DEVO ANALIZAR ?

Sim, não esquecendo que outros bits do registrador tem outras funções e exigem atenção.

ALTERANDO ESSA LINHA PARA:
MOVLW 0x81                 ; 20 MHZ Clock, A/D is on, Channel 0 is selected
ESTÁ CORRETA ESSA FREQUÊNCIA ???



[warning]0x81 = 10000001b

ADCON0 <ADCS1:ADCS0>  = 10

ADCON1 <ADCS2> 0 ==> Fosc/32

ADCON1 <ADCS2> 1 ==> Fosc/64[/warning]

[info]21.5  Selecting the A/D Conversion Clock   

The A/D conversion time per bit is defined as TAD. The A/D conversion requires 9.5 TAD per 8-bit conversion. The source of the A/D conversion clock is software selected. The four possible options for TAD are:

   •  2TOSC
   •  8TOSC
   • 32TOSC
   • Internal RC oscillator

For correct A/D conversions, the A/D conversion clock (TAD) must be selected to ensure a minimum TAD time of 1.6 µs for all devices, as shown in parameter 130 of the devices electrical specifications.[/info]
Não cabe aqui falar em frequência (no que se refere à conversão), mas de tempo de amostragem ( tempo de aquisição + tempo de conversão ) ...

A configuração e consequentemente o tempo de conversão vai depender da fonte de clock do ADC e sua frequência.


« Última modificação: 08 de Julho de 2010, 08:10 por C N C N o w ! »

 

/** * */