Ecco di seguito metto online lo schema da me seguito e il firm scritto cosi vediamo se riusciamo a risolvere il problema .
il firm è scritto solo per fare muovere il motore cioe in un verso con un solo piu proprio perche è a scopo didattico poi affinata questa parte a fare cambiare direzione non penso ci voglia tanto.
program passopasso
const movimento as byte[4]=(16,64,32,128)
dim k as byte
cmcon=7 \\ comando per impostare le porta in analogico \\
trisb.4=0 \\ impostazione dei vai pin in entrate ed uscita\\
trisb.5=0
trisb.6=0
trisb.7=0
trisb.0=1
trisb.1=1
inizio:
k=0 \\ azzera k\\
portb=movimento[k] \\eccita la prima bobina\\
rotazione:
while true \\comando che crea un loop infinito \\
if (Portb.0=0) and (k<3) then \\ questa è la riga che riceve l'impulso \\
k=k+1
while portb.0=0 \\comando che se non stacca l'impulso non va avanti \\
wend
end if
risultato:
portb=movimento[k] \\ transla il passo \\
if (portb.0=0) and (k=3) then \\azzera k qualora fosse al'ultimo pin\\
k=0
portb=movimento[k] \\ ricomincia il ciclo\\
end if
wend
end.
Ho cercato di commentare il piu possibile per cercare di capire dove sbaglio. il listato provato su demoboard funziona perfetto non sbaglia un colpo. unica differenza che nella demoboard do un impuolso positivo mentre qui è settato che lo riceva nagativo perche dall'uln2008 esce il negativo .
Ovviamente nello schema non ho messo il regolatore di tensione di 5 volt per il segnale generato dall'uln2008 e per il funzionamento del pic . uso l'oscillatore interno del pic .
Spero di essere stato piu chiaro possibile .
Ogni suggerimento è ben accetto
Grazie ancora a tutti
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login