Invertendo PWM em C (PONTE H)

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Invertendo PWM em C (PONTE H)

Mensagempor ricks_and » 07 Dez 2009 07:59

Galera, como faço para inverter o PWM em C ???

Seria apenas esta idéia?

(unsigned char)

periodo_pulso = X - 1024;


(PWM invertido será usado para controle de uma ponte H com HIP4081)


O que é complemento de 2? Seria para programação em ASM ??

Obrigado!!

Ricardo.
ricks_and
Bit
 
Mensagens: 15
Registrado em: 17 Mar 2007 01:55

Mensagempor fabim » 07 Dez 2009 08:09

bom, tu fala em lógica inversa,?
Por exemplo.

O valor para Ton deveria ser 100, logicamente Toff 155.

Tu quer inverter de forma que Ton fique com 155 e toff 100 ?


char pediodo_pulso = 100;

periodo_pulso =~ periodo_pulso;

Ele vai fazer um conpf, e inverter o valor.

é isto ?

Abraços
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor ricks_and » 07 Dez 2009 08:18

Sim, por exemplo:

Quando minha saída for 30% de 1024, ou seja, 307 (307 on e 717 off). Com a lógica invertida eu terei na mesma idéia, (717 on e 307 off).

Montei um circuito utilizando um HIP4081, que por sinal é muito bom, quem quiser o circuito é só pedir... está faltando apenas definir o PWM invertido mesmo, o resto está funcionando perfeitamente!

Acha que funciona assim como disse?



fabim escreveu:bom, tu fala em lógica inversa,?
Por exemplo.

O valor para Ton deveria ser 100, logicamente Toff 155.

Tu quer inverter de forma que Ton fique com 155 e toff 100 ?


char pediodo_pulso = 100;

periodo_pulso =~ periodo_pulso;

Ele vai fazer um conpf, e inverter o valor.

é isto ?

Abraços
ricks_and
Bit
 
Mensagens: 15
Registrado em: 17 Mar 2007 01:55

Mensagempor Jozias del Rios » 07 Dez 2009 09:01

Então "1024 - X" vai funcionar sim

mas vc precisa lembrar que 1024 não "cabe" em um "unsigned char"

coloque "unsigned short"...

certo pessoal? ou precisa ser "int" mesmo?

Vou olhar o HIP4081.
Qual o custo disso? To acostumado com o caro L298N
Os vencedores são aqueles que sabem o que fazer se perderem.
Os perdedores são aqueles que não sabem o que fazer se ganharem.
Avatar do usuário
Jozias del Rios
Byte
 
Mensagens: 279
Registrado em: 31 Out 2009 03:36
Localização: SJCampos-SP

Mensagempor Jozias del Rios » 07 Dez 2009 09:09

Vish, não é uma H-bridge, é um N-FET driver hehe...
qual os FET que vc usa nisso? Abs.
Os vencedores são aqueles que sabem o que fazer se perderem.
Os perdedores são aqueles que não sabem o que fazer se ganharem.
Avatar do usuário
Jozias del Rios
Byte
 
Mensagens: 279
Registrado em: 31 Out 2009 03:36
Localização: SJCampos-SP

Mensagempor ricks_and » 07 Dez 2009 09:38

Verdade. Testei e funcionou sim, ainda não testei na placa, mas via software fico ok.

Obrigado!



Jozias del Rios escreveu:Então "1024 - X" vai funcionar sim

mas vc precisa lembrar que 1024 não "cabe" em um "unsigned char"

coloque "unsigned short"...

certo pessoal? ou precisa ser "int" mesmo?

Vou olhar o HIP4081.
Qual o custo disso? To acostumado com o caro L298N
ricks_and
Bit
 
Mensagens: 15
Registrado em: 17 Mar 2007 01:55

Mensagempor ricks_and » 07 Dez 2009 09:40

Então amigão, estou usando IRF540... essa placa vai controlar um motor 24Vcc/10A, já alimentei ele diretão sem controle, tipo, apenas mandando as digitais e funciona legalzin...

Se quiser eu posto o circuito pra vc´s...

(qdo chegar em casa, agora estou no trampo, rs)

Abração!


Jozias del Rios escreveu:Vish, não é uma H-bridge, é um N-FET driver hehe...
qual os FET que vc usa nisso? Abs.
ricks_and
Bit
 
Mensagens: 15
Registrado em: 17 Mar 2007 01:55

Mensagempor Jozias del Rios » 07 Dez 2009 09:41

Então.. e o custo dessas pecinhas?
Os vencedores são aqueles que sabem o que fazer se perderem.
Os perdedores são aqueles que não sabem o que fazer se ganharem.
Avatar do usuário
Jozias del Rios
Byte
 
Mensagens: 279
Registrado em: 31 Out 2009 03:36
Localização: SJCampos-SP

Mensagempor ricks_and » 07 Dez 2009 09:49

Rapaz, paguei no driver HIP4081 R$ 45,00 o mais caro... os FET´s são baratin, baratin... ai tem algumas coisinhas a mais na parte de potência junto com o FET, tipo, capacitores, resistores e zener, mas tudo que não implicaria em dificuldade para montar a eletrônica.

Comprei tudo na Sta Efigênia, Sampa... !!!

Cara, vale a pena, alguns me disseram que poderia montar a ponte H diretão com o PIC, mas achei legal o HIP pq ja tem proteções internas contra "shoot-through", então não preciso me preocupar isso com a lógica no PIC.

Abrax



Jozias del Rios escreveu:Então.. e o custo dessas pecinhas?
ricks_and
Bit
 
Mensagens: 15
Registrado em: 17 Mar 2007 01:55

Mensagempor Djalma Toledo Rodrigues » 07 Dez 2009 09:55

Não há necessidade de Cálculo

basta apenas o XOR (Ou Exclusivo)

Em ASM:
Código: Selecionar todos
            movlw 0b00010000    ; d4 será o Bit a ser invertido
            xorwf Portx,1


Em C é o operador Lógico ^


Complemento de Dois (Complemento para Dois, seria o mais correto )

Inverte tudo --- (Olha o XOR aí) e Soma 1
Xor com ele mesmo: 00111010 Xor 00111010 = 11000101

11000101 + 1 = 11000110 este é o Copl. de 2

A finalidade primeira éra transformar a Subtração em Soma

00111010 + 11000110 = 00000000


DJ
Editado pela última vez por Djalma Toledo Rodrigues em 07 Dez 2009 23:23, em um total de 1 vez.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor ricks_and » 07 Dez 2009 10:36

Hummm entendi... mas do jeito que foi proposto tb deu certo...

X = 1024 - Y;

Vou testar na placa e jaja posto aqui o resultado, dai mando o circuito pra galera...

Abrax


Djalma Toledo Rodrigues escreveu:Não há necessidade de Cálculo

basta apenas o XOR (Ou Exclusivo)

Em AMS:
Código: Selecionar todos
            movlw 0b00010000    ; d4 será o Bit a ser invertido
            xorwf Portx,1


Em C é o operador Lógico ^


Complemento de Dois (Complemento para Dois, seria o mais correto )

Inverte tudo --- (Olha o XOR aí) e Soma 1
Xor com ele mesmo: 00111010 Xor 00111010 = 11000101

11000101 + 1 = 11000110 este é o Copl. de 2

A finalidade primeira éra transformar a Subtração em Soma

00111010 + 11000110 = 00000000


DJ
ricks_and
Bit
 
Mensagens: 15
Registrado em: 17 Mar 2007 01:55

Mensagempor Djalma Toledo Rodrigues » 07 Dez 2009 23:40

Djalma Toledo Rodrigues escreveu: ... Complemento de Dois
Inverte tudo --- (Olha o XOR aí) e Soma 1
Xor com ele mesmo: 00111010 Xor 00111010 = 11000101

11000101 + 1 = 11000110 este é o Copl. de 2

Ops! Retificação

Para inverter todos os Bits
00111010 Xor 11111111 (0xFF) = 11000101

DJ
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x