Visualizza messaggio singolo
Vecchio 16 giugno 07, 18:16   #12 (permalink)  Top
Mrk89
User
 
L'avatar di Mrk89
 
Data registr.: 29-05-2006
Residenza: Catania
Messaggi: 2.933
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ì??!!
__________________
Il filo attaccato all'antenna non mente mai....Troppo vento, si torna a casa....
I miei circuiti elettronici autocostruiti: Postbruciatore per ventole intubate ; Circuito luci per aeromodello-elimodello ; Rallenta servo con protezione da corto circuito
Mrk89 non è collegato   Rispondi citando