Go Down

Topic: Controllare H bridge (Read 470 times) previous topic - next topic

Ciao a tutti.
Sto realizzando un progettino per un riscaldatore ad induzione.
Devo pilotare un ponte H attraverso arduino. Non riesco  a capire come è possibile gestire attraverso il codice due pin PWM in modo tale che siano l'uno l'inverso dell'altro (01010101 e 10101010) e sopratutto come fare in modo che fra una fase e l'altra ci sia una piccolo periodo in cui entrambi i pin siano a 0. questo per evitare che vada in corto l'intero ponte a causa del ritardo di spegnimento dei mosfet.
Potete darmi qualche dritta pratica?
Grazie

uwefed

Non credo che Ti serva un segnale PWM e il suo invertito perché cosí la somma é sempre 100% indipendentemente dal rapporto PWM.

Non so se un pilotaggio di un inverter per alimentare un trasformatore sia fattibile con Arduino in programmazione C (non assembler)

Ciao Uwe

Etemenanki

Usa un paio di inverter per pilotare i segnali a zero, ed un paio di resistenze verso il positivo per pilotare quelli ad uno (ponte con mosfet N e P, ovviamente), cosi con un segnale solo fai tutto.

Se vuoi per forza metterci una sicura contro il cross-driving, puoi usare un mosfet di potenza sulla linea negativa del ponte, che "spegni" un'attimo prima della commutazione e riaccendi un'attimo dopo ...

Come alternativa ci sono integrati gia previsti per pilotare ponti H, ma non sono molto economici ...
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

uwefed

Se vuoi fare un Push-pull converter per qualche centinaio di W non é cosí semplice come pensi. Non basta collegare un trasformatore a un ponte H.

http://en.wikipedia.org/wiki/Push%E2%80%93pull_converter

Ciao Uwe

Ciao
Purtroppo non sono cosi ferrato per muovermi liberamente. Ho visto soluzioni su internet che utlizzano un solo integrato e qualche resistenza per fare muovere un ponte full bridge IGBT. Purtroppo dubito di trovare detti componenti e di saperli implementare.
Al che mi sono ricordato della scheda arduino Leonardo e speravo di poterla utilizzare.
Ho buttato giu questo codice


void setup()
{
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
}
void loop()
{
digitalWrite(10, 0);
delayMicroseconds(15);// Approximately 10% duty cycle @ 1KHz
  digitalWrite(9, 254);
  digitalWrite(9, 0);
  delayMicroseconds(15);// Approximately 10% duty cycle @ 1KHz
   digitalWrite(10, 254);
}

che mi genera piu o meno quel che mi serve ad una frequenza di circa 17.99KHZ testato con l'oscilloscopio.
La cosa piu irritante (ma sarà naturale per qualcuno piu pratico) è che le fasi a 0 graficamente sono molto piu lunghe di quelle a 254. cosi dovrei essere sicuramente sicuro che il ponte non si brucia ma forse non rende bene come dovrebbe. Il mio scopo e generare un campo abbastanza forte da causare induzione elettromagnetica su materiali ferrosi
Purtroppo non posso inserirvi lo screen dell'oscilloscopio..:(

Probabilmente dovrei usare le liberie Timer1 e i registri, ma per quanto legga, non capisco un H

uwefed

Non hai le basi Ti consiglio di laschia stare. Ti manca non solo le basi del elettronica ma anche le basi di programmazione.

Cosa fa la funzione digitalWrite(9, 254); ???
un suggerimento: di sicuro non una PWM di 490Hz con duty cicle di 245/255.

Già l'idea di dover avere materialei ferrosi per indurre una tensione é sbagliata. Induci una tensione in qualsiasi conduttore.

Ciao Uwe


Go Up