gbm
Cos'è il ponte ad H e come si costruisce
Tutorials -
Giovedì 17 Marzo 2011 06:13
Scritto da gbm

Con questo tutorial vorrei chiarire come pilotare un motore DC in modo bi-direazionale con 4 porte digitali di arduino (che possono essere ridotte a 2 con l'aggiunta di 2 ulteriori transistor), con un circuito composto da 4 transistor (di cui 2 NPN e 2 PNP) e 4 diodi. Come ben sapete i motori elettrici hanno bisogno di una "centralina" per essere comandati. Questo componente spesso è composto (se si parla di motori dc) da 4 transistor e 4 diodi (molto spesso sono presenti anche dei condensatori e resistenze), quindi una cosa realizzabile senza problemi in casa in pochi minuti. 

 

Lista dei componenti

  1. 2x BD177 transistor
  2. 2x BD178 transistor
  3. 4x IN4007 diodo

I transistor sono i componenti fondamentali e attivi del sistema. Ci sono due tipologie di transistor quelli NPN e quelli PNP. La differenza tra i due è che gli NPN funzionano permettendo alla corrente positiva di attraversarli (cioè corrente in arrivo da + e in uscita dal transistor verso motore) solo se il polo base è connesso al +, invece PNP permettono alla corrente in arrivo dal motore di attraversali e andare verso la massa, solo se la base è connessa al -.

 

 PNP NPN

 

In cosa consiste

Il ponte ad H è cosi' chiamato per la forma dello schema, è formato da 4 transistor e 4 diodi che hanno il ruolo di permettere o no il flusso di corrente in un dato senso all'interno del sistema. Questi verranno accesi a coppie per ruotare il motore in un senso o nell'altro, gli altri due saranno opportunamente chiusi per evitare corti circuiti. In poche parole grazie a 4 switch è possibile decidere la direzione della corrente all'interno del motore e quindi trasformarla in movimento in un dato senso di rotazione. Ecco uno schema semplice di cosa si ottiene:

 

 transistor1  transistor2  transistor3  transistor4 Risultato sperimentale
1 0 0 1  Rotazione in senso orario
0 1 1 0  Rotazione in senso antiorario 
0 0 0 0  Motore libero
0 1 0 1  Frenata elettromagnetica
1 0 1 0  Frenata elettromagnetica


Tutto ciò consiste in un Ponte ad H davvero minimale.

E' pensato per pilotare motori DC da 3 a 36v con un assorbimento massimo di 3A continui e 7A pulsati. L'architettura del sistema è pensata per ridurre il più possibile le possibilità di baking di componenti (bruciare tutto per errore di wiring). I Transistor consigliati sono enormi ed è impossibile bruciarli con una batteria da 6 volt in qualsiasi combinazione proviate.

 

ponteadh

Come potete vedere il circuito è molto semplice. Fate molta attenzione al wiring dei transistor, controllate sui datasheet linkati sopra la referenza dei pin e connettetela come spiegato. Testate prima il funzionamento di un singolo transistor delle due tipologie. Dopo aver chiarito i collegamenti di entrambi, iniziate con metodo a duplicare e specularizzare lo schema ; ). Dopo aver fatto il wiring come mostrato qui sopra, collegate le basi dei 4 transistor alle porte digitali  2 3 4 5 di Arduino e caricate lo sketch seguente:

int motorPin1 =  2;    
int motorPin2 =  3;    
int motorPin3 =  4;    
int motorPin4 =  5;    

void setup()   {                
  pinMode(ledPin1, OUTPUT);     
  pinMode(ledPin2, OUTPUT);     
  pinMode(ledPin3, OUTPUT);     
  pinMode(ledPin4, OUTPUT);            
}

void loop()                     {
  digitalWrite(ledPin1, HIGH);  //gira in senso orario per 1 sec
  digitalWrite(ledPin2, LOW);   
  digitalWrite(ledPin3, LOW);    
  digitalWrite(ledPin4, HIGH);  
  delay(1000);
  digitalWrite(ledPin1, LOW);   //gira in senso antiorario per 1 sec
  digitalWrite(ledPin2,HIGH);   
  digitalWrite(ledPin3, HIGH);    
  digitalWrite(ledPin4, LOW);   
  delay(1000);                  //l'uso di delay è deprecato, è solo un esempio ;)
}

Dopo aver alimentato il motore e caricato lo sketch dovreste ottenere 1 secondo di rotazione in un senso e 1 secondo di rotazione nel senso opposto. Questo è solo un piccolo esempio delle incredibili funzionalità di questo sistema, che permette di pilotare qualsiasi motore dc applicato alla robotica amatoriale senza avere problemi.

In questo caso per l'esempio ho utilizzato un motore delle amate MINI4WD e un alimentatore da 6v 1A.

 

 

Prossimamente realizzero' un tutorial per dimostrare come si comandano i transistor tramite pulsazione PWM e quindi come si possono realizzare accelerazioni e decelerazioni. Chiaramente il tutto sarà applicato insieme ai concetti posti nel tutorial modifica servomotori a rotazione continua parte III, cioè nell'integrazione rispetto al tempo della tensione percepita nel circuito di alimentazione per poter stimare lo spazio percorso e il movimento effettuato.

 

Gioblu Robotics © 2010 - 2012 · Sitemap · privacy

gioscarab@gmail.com

Gioblu BOTServer è online dal 10 Aprile 2010 - 319.232 Visite - 1.027.175 Pagine visualizzate - 182.309 Visitatori unici - 536 utenti attivi