collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: PIC18F4331  (Lida 5678 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline beirao

  • Mini Robot
  • *
  • Mensagens: 1.531
PIC18F4331
« em: 07 de Março de 2011, 12:03 »
Alguém daqui tem um PIC 18F4331 para vender/oferecer?

Obrigado!
« Última modificação: 07 de Março de 2011, 21:32 por beirao »
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.649
    • Electronic Gear for Musicians
Re: [URGENTE] PIC18F4331
« Responder #1 em: 07 de Março de 2011, 21:27 »
pshé pá... que referência tão complicada!  :o  :D

É por causa do PWM e QEI?

Offline beirao

  • Mini Robot
  • *
  • Mensagens: 1.531
Re: [URGENTE] PIC18F4331
« Responder #2 em: 07 de Março de 2011, 21:32 »
complicada? nao :D hehe

yap, é para controlar 5 servos... assim usamos as 4 saídas PWM para as rodas (do módulo pcpwm que o PIC tem) e um módulo CCP para um outro servo que vamos precisar ;) para além de que com este pic podemos ter frequências baixas (para os servos, 50Hz) nas saídas PWM, o que não dá com todos os modelos

por acaso ia mesmo agora dizer que já arranjei este PIC ;) (também acho que era dificil alguém daqui ter, visto ser um PIC pouco usado)

P.S. - QEI só há em dsPIC, certo?
« Última modificação: 07 de Março de 2011, 21:34 por beirao »
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.649
    • Electronic Gear for Musicians
Re: PIC18F4331
« Responder #3 em: 07 de Março de 2011, 21:45 »
É o tal projecto que me falaste?

Esse PIC tem QEI, vai lá ver bem ;)


É um PIC bastante menos usado do que os outros "mais comuns", daí o seu preço tb não ser o mais convidativo.
O que em projectos série fazemos, é escolher um PIC que tenha as capacidades de processamento e periféricos mínimos, e o mais baixo preço.

Nesse caso com tantos PWM, eu teria optado por um 12F/16F com USART/SPI/I2C, e punha os PWM neste PIC, tendo tudo por interrupções. Visto que têem frequências tão baixas, a resolução é enorme, e o tempo de IDLE do CPU também...


Para verificar o vosso tempo de IDLE, liguem um LED num pino livre.
Activem o LED qd saiem de uma função/interrupções, desactivem qd entram.
Vão ficar espantandos qt tempo o vosso PIC passa sem fazer nada :)

Acaba por ser um bom exercício, optimizar o sistema.

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: PIC18F4331
« Responder #4 em: 07 de Março de 2011, 22:59 »
Em relação ao controlo dos servos, estes não aceitam sinais com frequências mais altas supostamente!?

Offline FET_Destroyer

  • Mini Robot
  • *
  • Mensagens: 213
    • Fet Destroyer
Re: PIC18F4331
« Responder #5 em: 07 de Março de 2011, 23:15 »
Boas
Tenho esse pic ligado a uns 5 servos mas n consigo obter frequências de 50Hz, tenho frequencias prai de 100Hz, também serve, actualiza o servo mais vezes do que devia mas penso que esse método não é bom para controlar servos pk perde-se mta resoluçao pk mesmo que de uma freq de 50Hz, so vais usar o dutycicle nos 1 ou 4% para controlar servos e fica-se com uma resolução de caca.

Cumps

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.649
    • Electronic Gear for Musicians
Re: PIC18F4331
« Responder #6 em: 07 de Março de 2011, 23:21 »
Já tinha dito ao Beirão, implementem PWM por interrupções, é muito simples! podem ter (quase) todos os pinos do PIC para PWM !!

Já pús algum código p isso, se quiserem mais dicas apitem.

Offline beirao

  • Mini Robot
  • *
  • Mensagens: 1.531
Re: PIC18F4331
« Responder #7 em: 08 de Março de 2011, 13:37 »
asena: tem razão sim senhor, o PIC tem QEI :) Quanto à escolha do PIC, aqui nota-se a única desvantagem que tem o facto de podermos pedir samples com fartura. Ou seja, na cadeira de microprocessadores usamos PIC18F, podemos pedir samples dos PIC´s que quisermos, logo não temos noção do preço de cada um. Contudo, tendo em conta que o projecto não é para ser produzido, é apenas para fazer aquela unidade, e não pagamos a sample, então isso não é nenhum inconveniente!

Quanto ao uso de interrupções ao invés do PWM, não digo que não. É simples de se fazer sem dúvida! Mas, FET_Destroyer, eu consigo ter frequências de 50Hz neste PIC... Tendo frequências de 50Hz, e conseguindo variar o duty-cycle de 0 a 99% (habitualmente eles não gostam que se meta duty-cycle a 100%), onde está a falta de resolução que falas? Claro que com interrupções é mais preciso, mas se tens uma gama de 100% tens resolução suficiente.. digo eu!
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

Offline FET_Destroyer

  • Mini Robot
  • *
  • Mensagens: 213
    • Fet Destroyer
Re: PIC18F4331
« Responder #8 em: 08 de Março de 2011, 15:18 »
A falta de resolução é que só vais usar o duty-cycle prai até 4% no máximo, 50Hz sao 20ms de perido, e tu queres no máximo 2ms para os servos, ou seja, 10bits (1024) são para pwm de 100%, para 4% ficas com 41bits de resolução para o servo, ou seja mto pouca resolução.

asena: tem razão sim senhor, o PIC tem QEI :) Quanto à escolha do PIC, aqui nota-se a única desvantagem que tem o facto de podermos pedir samples com fartura. Ou seja, na cadeira de microprocessadores usamos PIC18F, podemos pedir samples dos PIC´s que quisermos, logo não temos noção do preço de cada um. Contudo, tendo em conta que o projecto não é para ser produzido, é apenas para fazer aquela unidade, e não pagamos a sample, então isso não é nenhum inconveniente!

Quanto ao uso de interrupções ao invés do PWM, não digo que não. É simples de se fazer sem dúvida! Mas, FET_Destroyer, eu consigo ter frequências de 50Hz neste PIC... Tendo frequências de 50Hz, e conseguindo variar o duty-cycle de 0 a 99% (habitualmente eles não gostam que se meta duty-cycle a 100%), onde está a falta de resolução que falas? Claro que com interrupções é mais preciso, mas se tens uma gama de 100% tens resolução suficiente.. digo eu!

Offline beirao

  • Mini Robot
  • *
  • Mensagens: 1.531
Re: PIC18F4331
« Responder #9 em: 08 de Março de 2011, 16:10 »
Então se usar uma frequência de 500Hz já tenho a resolução dos 10bits... Logo, já não há nenhum incoveniente em usar o PWM, certo?

P.S. - Não quero ser teimoso e insistir em usar o módulo PWM em vez das interrupções, quero é perceber todas as vantagens entre as duas opções!
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein

Offline Sérgio_Sena

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.649
    • Electronic Gear for Musicians
Re: PIC18F4331
« Responder #10 em: 08 de Março de 2011, 18:36 »
Aqui resta saber que tipo de frequência estamos a falar. Se é a frequência de trabalho do servo, se é a frequência de actualização do servo. (Não esquecer que o duty-cycle é sempre de ~50%, pois só temos q mudar o período para o Servo)

#
Se for a frequência de trabalho, então tem q se garantir pelo menos de 1 ms a 2 ms, se se tiver apenas 180 graus de rotação, com 1.5ms nos 90º/0º/centro

1 ms / 180º = ~5,55 us / 1º -> é esta a resolução q se pretende. Sendo 2ms=500Hz e 1ms=1000Hz, então temos uma variação de 500Hz.

No modulo CCP em PWM, é o PR2 que controla a frequencia.
Logo, só temos 8 bits em todo o curso de PR2. E menos ainda porque não o vamos usar todo.

Para Fcy de 1MHz (Fosc 4MHz), prescaler de 16, PR2 de 0xFF têm-se Fpwm ~250Hz
Quanto maior a Fcy, menor a resolução. Que clock estão a usar ?

Para Fpwm de ~1000Hz, então PR2 = 64

Usem o osciloscópio para vos ajudar a tirar medições do PWM resultante.





#
Se for a frequência de actualização, ... então depende do trabalho q é preciso fazer. E pode usar-se o TMR2 à mesma, como temporizador de actualização do servo. Tirando pulsos do Postcaler com interrupções TMR2IF, se não me falha a memória.


Offline beirao

  • Mini Robot
  • *
  • Mensagens: 1.531
Re: PIC18F4331
« Responder #11 em: 08 de Março de 2011, 19:40 »
De acordo. Mas neste caso não tou a usar o módulo CCP, estou a usar o modulo pcpwm (penso que se chama assim), onde tenho realmente os 10 bits e não os  8bits do PR2.

Mas sim, asena, concordo com tudo o que disseste :D
"O único lugar onde o sucesso vem antes do trabalho, é no dicionário" - Albert Einstein