Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 13 giugno 07, 19:11   #11 (permalink)  Top
User
 
L'avatar di rivp6
 
Data registr.: 11-10-2004
Residenza: out of Verona
Messaggi: 573
l'inizializzazione del motore imposta solo le uscite.

il pattern che ti serve è

per singolo step:
const rom byte PATTERNSX [2] ={ 0x0F,0x07 ** ;
const rom byte PATTERNDX [2] ={ 0x0D,0x05 ** ;

per l'half step:
const rom byte PATTERNSXH[2] ={ 0x0B,0x03 ** ;
const rom byte PATTERNDXH[2] ={ 0x09,0x01 ** ;

devi inviare alternativamente i due byte per il movimento che vuoi, con la frequenza dell'invio decidi la velocità.
rivp6 non è collegato   Rispondi citando
Vecchio 16 giugno 07, 18:16   #12 (permalink)  Top
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
Vecchio 16 giugno 07, 18:22   #13 (permalink)  Top
User
 
L'avatar di Mrk89
 
Data registr.: 29-05-2006
Residenza: Catania
Messaggi: 2.933
Ma scusa una cosa... a che velocità lo vuoi far girare questo motorino??
potresti utilizzare il PORTB come ingresso per selezionare la velocità di rotazione...
se ti interessa posso farti e postare il software con il controllo di velocità...
ciao
__________________
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
Vecchio 19 giugno 08, 18:54   #14 (permalink)  Top
User
 
Data registr.: 19-06-2008
Messaggi: 1
Saluti a tutti
Il tuo problema DDV è che il driver del motore deve ricevere un segnale dal motore attraverso due resistenze dette Rs,, di solito di 0.5 ohm.

Se vedi il circuito di L297/L298 li puoi vedere,, queste resistenze sono indispensabili per l'azionamento del motore,, per questo dovresti per forza usare un driver come L298 oppure LMD18245 .

non so se si può risolvere il problema via il software, che sono inesperto con i microcontrollori,

Ho una domanda a voi,, io ho uno stepper di 4A/fase, adesso lo piloto in modalità halfstep via transistors, però dovrei pilotarlo in modalità microstep e l'integrato LMD18245 non può fornire più di 4A, io penso di collegare l'uscita del LMD18245 a transistori BJT con rapporti di amplificazione ben dimensionati,, questa idea è giusta ?? se si, come si misura l'hEF di un certo transistor,, poi devo rendermi conto dell'effetto della temperatura sull'hEF ??

Grazie mille
MinaFikri non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
Aiuto pic16f84 PoWeR Circuiti Elettronici 39 28 novembre 05 11:41
Giri motore Wilcomir Aeromodellismo 11 08 novembre 04 10:21
Schema per PIC16F84.... kriptor86 Circuiti Elettronici 5 11 marzo 04 18:13
Pic16F84 e seriale dexterman Circuiti Elettronici 6 01 febbraio 04 16:59
Regolatore PIC16F84 --- Motore ? flyer Circuiti Elettronici 3 22 dicembre 03 18:55



Tutti gli orari sono GMT +2. Adesso sono le 06:29.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002