MOTORE AVANTI INDIETRO CON  INTEGRATO 298

 

Il progetto si basa su una scheda con integrato L298 che è un ponte H, che permette l’inversione delle polarità di uno o due motori in CC. In realtà lo scopo della realizzazione era quello di provare la scheda in un progetto reale controllato da microcontrollore, nel caso specifico il CUBLOC della COMFILE.

 

Scheda con L298

 

La scheda permette il controllo dei due motori  tramite i relativi connettori a 4 pin posti al lato del connettore di alimentazione, come mostrato in figura: Ognuno dei due connettori controlla il relativo motore (il connettore di sinistra controlla il motore di sinistra) e il comportamento del motore dipende dallo stato logico (livello TTL) che si imposta sui tre segnali  secondo la tabella sotto riportata:

 

 

Funzionamento

Il motore del carrello di una vecchia stampante va avanti e indietro. Quando ,a fine corsa,il carrello ,urtando ,fa scattare i microinterruttori arriva il segnale al microcontrollore che inverte il moto.

 

Apparecchiatura di controllo

 

L’apparecchiatura di controllo è stata realizzata in un contenitore di un alimentatore per PC riciclato allo scopo. Alla scatola di controllo pervengono :

mentre al microcontrollore vanno:

 

Quando i finecorsa sono premuti le uscite OUT DIG1 oppure OUT DIG 2 vanno HIGH. Se il motore è AVANTI  ed uno dei segnali dei finecorsa va HIGH a commuta in INDIETRO e viceversa.

 

 

IL CUBLOC,LA SCHEDA CON L293 , la stampante

 

 

I “fine corsa”

Lo schema

 

 

Le uscite digitali OUT DIG1 e OUT DIG 2 della apparecchiatura di controllo  vanno agli ingressi delle porte P0 e P1 del CUBLOC

I segnali di uscita delle porte P5 e P6 del CUBLOC vanno agli ingressi INPUT1A ed INPUT1B della scheda L298.

 

 

IL LISTATO

 

 

Const Device = CB280

Dim a As Byte

Dim b As Byte

Dim n As Integer

Dim d As Byte

Dim apre As Byte

Dim chiude As Byte

Debug CLR

apre=1

Out 5,1

Out 6,0

Do

Debug Goxy,1,1

If apre=1 Then Debug "apre  "

If apre=0 Then Debug "chiude"

a=In(0)

b=In(1)

If (a=1) Or (b=1) Then

If apre=1 Then

apre=0

Out 5,1

Out 6,0

Else

apre=1

Out 5,0

Out 6,1

Endif

Endif

Loop