Newsgroup: it.hobby.elettronica.digitale
Titolo: Secondo voi...... perché?

Ciao,
in attesa che mi arrivi il buon YAPP3 che mi permetterà di usare il buon PIC
16F628 e il suo PWM, sto cercando di pilotare un servomotore con un 16F84
programmato con il misero Ludipipo......
La domanda è perché il servo motore non funziona?
Ho una bella scheda basic stamp che programmo in PBasic e il servomotore
viaggia che è una meraviglia, se uso il mio circuitino con un quarzo a 4Mhz
e il 16F84 programmato con il PICC della Hi-Tec il servo non funziona!!!!
Per la temporizzazione uso le routine dei file delay.h e delay.c in questo
modo:
void main( void )
{
 TRISB3 = 0; //setto RB3 ad uscita (Servo)
 TRISB4 = 0; //setto RB4 ad uscita (LED di test)
 while( 1 )
 {
  RB4 = 1;
  RB3=1;
  DelayMs(1);    // Posizione 0°
  RB3=0;
  RB4=0;
  DelayMs(250); // Attesa di posizionamento
  DelayMs(250);
  RB4 =1;
  RB3=1;
  DelayMs(1); // Posizione 90°
  DelayUs(250);
  DelayUs(250);
  RB3=0;
  RB4=0;
  DelayMs(250); // Attesa di posizionamento
  DelayMs(250);
  RB4 = 1;
  RB3=1;
  DelayMs(2); // Posizione 180°
  RB3=0;
  RB4=0;
  DelayMs(250); // Attesa di posizionamento
  DelayMs(250);
  RB4 = 1;
  RB3=1;
  DelayMs(1);  // Posizione 0°
  RB3=0;
  RB4=0;
  DelayMs(250); // Attesa di posizionamento
  DelayMs(250);
 }
}
Su RB3 c'è il servo motore e su RB4 un LED che uso come test per vedere a
occhio, se il PIC lavora o no.......
Naturalmente ho definito l'utilizzo del quarzo a 4Mhz.
Consigli?
Ciao
W@lt

 void main( void )
I servi devono essere controllati con un treno di implusi compresi tra 1 e 2
ms ripetuti ogni 15/30 ms e non ogni 500 ms come fai nel tuo programma.
Bye

 ha scritto nel messaggio
news:wdV3c.33695$O31.1...@news4.tin.it...

Lo so che funziona cosě.... il servo che uso č digitale e basta un solo
impulso nei 20 msec per portarlo nella posizione richiesta. L'attesa di
500ms č per il movimento..... comunque ripeto che con un programma analogo
in PBasic funziona tutto.... mistero!
Grazie
W@lt

 e il 16F84 programmato con il PICC della Hi-Tec il servo non funziona!!!!
Un servo, normale o digitale, ha bisogno di un impulso ogni circa 20ms.
Se mandi un singolo impulso e poi aspetti 250 o 500ms, il servo non sa
cosa fare, e si ferma. Devi continuare a mandare lo stesso impulso
finchè il servo arriva nella posizione nella quale ne genera uno uguale,
e solo allora si ferma.
Ciao.
Giuliano
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 in PBasic funziona tutto.... mistero!
No se dai un solo impulso il servo digitale non va da nessuna parte perchè
la logica interna lo interpreta come una mancanza di segnale e si ferma
subito.
Mi posti la parte in pic basic che genera gli impulsi così ti dico subito
dove stà l'inghippo, ho già una mezza idea ma senza vedere il programma non
posso convalidarla.
Bye


Eccola:
' This program Control a ServoMotor with continous movement
'{$STAMP  BS2}        'STAMP directive (specifies a BS2)
Again:
  PULSOUT 13,750    ' 1.5ms
  PAUSE 500
  PULSOUT 13,500    ' 1ms
  PAUSE 500
  PULSOUT 13,750    ' 1.5ms
  PAUSE 500
  PULSOUT 13,1000   ' 2ms
  PAUSE 500
GOTO Again    ' Repeat endlessly.
Come vedi la temporizzazione non è rispettata eppure il servo lavora
bene....
Mah!
Grazie ancora
W@lt

 programmato con il misero Ludipipo......
Un programmatore per 16F84 funziona anche sul 16F628 visto che sono 
anche compatibili come pin
ciao


Purtroppo no.... credo che sia un problema di alimentazioni....
Ho due tipi di Ludipipo, uno alimentato e l'altro no.... con entrambi
programmo in scioltezza il 16F84, ma con nessuno dei due riesco a fare il
16F628.... è così....
Ciao
W@lt


io invece il ludipipo lo uso senza problemi con il 16F628 e per di più con
IC-Prog sotto win2K!!!

 16F628.... č cosě....
Il 628 č si compatibile pin to pin, ma diversi pin hanno funzioni
aggiuntive/alternative che possono essere MOLTO insidiose. Prima fra
tutte, il low voltage programming (LVP). Devi disabilitarlo impostando
i fuses, poi mettere un pull down su RB4, altimenti non si lascia
programmare nel solito modo. Questo č solo un esempio, controlla bene
il datasheet!
A presto,
Eugenio.

 ha scritto nel messaggio
news:a1d23af9.04031...@posting.google.com...

Ecco qua due motivi per cui non ci riuscivo.... a intuito attivavo il LVP
pensando che il Ludipipo potesse funzionare meglio :o)
Ora riprovo...
Ciao e Grazie
W@lt


Per la cronaca oggi finalmente ho risolto tutto!
Ho fatto un bel PWM con il 16F628 e il modulo CPP e finalmente tutto va alla
grande, anche i piccoli passi di 1° sono precisissimi...... vi chiederete
quale era il problema, semplicissimo: l'alimentazione del PIC e quella del
Motore non avevano la massa di riferimento a comune!!!!
Ciao a tutti e grazie
W@lt