Citazione:
|
Originalmente inviato da DDV1982 Ok, il problema del circuito l'ho risolto inserendo dei darlington...
Ora il problema è il firmware....il motorino non gira come pensavo...va avanti poi si si blocca poi ritorna indietro, poi ripearte per un tot di passi....e così via....
il firm scritto è elementare (in C) . Ho fatto delle simulazioni e sembra andare...in realtà non è così....
void main(){
unsigned char dato;
unsigned int i;
INTCON = 0;
TRISB=0x00;
dato=0x01;
/*
PORTB=dato;
DelayMs(60);*/
for(;;){
PORTB=0x01;
DelayMs(5);
PORTB=0x02;
DelayMs(5);
PORTB=0x04;
DelayMs(5);
PORTB=0x08;
DelayMs(5);
/*
dato=dato<<1;
PORTB=dato;
DelayMs(60);
if(dato==0x08) {
dato=0x01;
DelayMs(60);
**
*/
**
**//fine main
Secondo me il problema è che il motorino non si muove con i passi
0001
0010
0100
1000
0001, ovvereo si muove così ma non mettendo le fasi del motore in configurazione A/B/C/D....secondo me dovrei trovare l'ordine esatto delle fasi, ma non so come fare .....ho trovato quali sono le 4 fasi (bianco-rosso, rosso, verde, biancoverde) ma non so in che ordine metterli per fare girare il motorino in un verso con il codice
0001
0010
0100
1000 (wavemode)
Attendo risposte, ciao a tutti |
Ciao, ma non sarebbe meglio, più semplice, e meno incasinato usare un software del genere??
void main (void)
{
int i;
TRISA=0;
while(1)
{
PORTA=1;
delay_ms(5);
PORTA=2;
delay_ms(5);
PORTA=4;
delay_ms(5);
PORTA=8;
delay_ms(5);
**
**
// non so perchè mette gli asterischi...comunque i due asterischi sono parentesi graffe chiuse.
più semplice di così??!!