stefano_ Inserito: 8 novembre 2004 Segnala Share Inserito: 8 novembre 2004 (modificato) Con il seguente programmino faccio riesco a comandare un motore passo passo tramite pic16f84.Questo prg mi serve solo per prendere un pò di pratica con la programmazione dei pic, per essere il primo prg funzia discretamente.Il funzionamento è semplice ho collegato 4 "interruttori" a RA0 RA1 RA2 e RA3.Se chiudo l'interruttore RA0 ho un ritardo di 250 msSe chiudo l'interruttore RA1 ho un ritardo di 100 msSe chiudo l'interruttore RA2 ho un ritardo di 50 msSe chiudo l'interruttore RA3 ho un ritardo di 5 mse quindi riesco a far girare il motore a 4 velocita differenti, il problema è che cambiando lo stato degli ingressi ( e quindi chiudendo l'interruttore RA3 per esempio ) la velocità del motore non cambia subito ma dopo 6 / 8 secondi !!!! Come mai ? Non dovrebbe cambiare immediatamente ?? #include <pic.h> #include "delay.c" unsigned char asp; main(void) { TRISA = 0b11111111; TRISB = 0b00000000; PORTA = 0b00000000; while (1) { DelayMs(3); // un po di pausa non fa mai male a nessuno !! switch (PORTA) { case 1: asp = 100; break; case 2: asp = 50; break; case 4: asp = 25; break; case 8: asp =5; break; } PORTB = 0b00000001;DelayMs(asp); PORTB = 0b00000010;DelayMs(asp); PORTB = 0b00000100;DelayMs(asp); PORTB = 0b00001000;DelayMs(asp); } } Grazie a tutti !!!!!!!!! Modificato: 8 novembre 2004 da Gabriele Corrieri Link al commento Condividi su altri siti More sharing options...
wnc Inserita: 8 novembre 2004 Segnala Share Inserita: 8 novembre 2004 Domanda: hai disabilitato il watch-dog? Link al commento Condividi su altri siti More sharing options...
stefano_ Inserita: 8 novembre 2004 Autore Segnala Share Inserita: 8 novembre 2004 si, ho disabilitato il watch-dog ed ho selezionato XT visto che il tutto è gestito da un quarzo da 4Mhz ma nulla da fare forse sbalio il collegamento ??Mi spiego inizialmente RA0,1,2, e 3 non sono collegati se voglio mandare il motore alla massima velocita ( RA3 attivo ) prendo un filo e lo collego da un capo a +5 V e l'altro capo al pin RA3 del pic. Faccio bene ?grazie ancora Link al commento Condividi su altri siti More sharing options...
wnc Inserita: 9 novembre 2004 Segnala Share Inserita: 9 novembre 2004 No, non fai tanto bene.Collega tutti gli ingressi tramite R (10k) all'alimentazione e tramite pulsante o selettore a GND. Quando premi il pulsante o selettore desiderato l'ingresso va a GND mentre gli altri sono a +5V. Bypassa l'alimentazione con C al tantalio da .1u se no l'oscillazione del quarzo la ritrovi sui pin. Ciao Link al commento Condividi su altri siti More sharing options...
stefano_ Inserita: 9 novembre 2004 Autore Segnala Share Inserita: 9 novembre 2004 scusa, mi sono dimenticato di dirti che di elettronica ne capisco poco potrsti spegarmi cosa intenti dire con "bypassa l'alimentazione con C al tantalio da .1u se no l'oscillazione del quarzo la ritrovi sui pin."e poi facendo come dici tu quando schiccio il pulsante il relativo pin di ingresso va a livello logico zero !!! e non 1 giusto ?grazie 1000 ancora. Link al commento Condividi su altri siti More sharing options...
Claudio F Inserita: 9 novembre 2004 Segnala Share Inserita: 9 novembre 2004 (modificato) Il bypass in oggetto e' un semplice condensatore tra + e - dell'alimentazione il piu' possibile vicino ai relativi pin del pic. Per il livello logico si, sarebbe invertito.I pin lasciati scollegati potrebbero essere la spiegazione del malfunzionamento (i livelli letti cambiano aleatoriamente in quanto non fissati a 1 o 0 dall'esterno con una resistenza di pull up o pull down).Un'altra cosa e' la resistenza su MCLR, questo pin non va mai collegato direttamente a +Vcc senza resistenza, soprattutto in presenza di circuiti elettricamente rumorosi dove vi siano rele', motori ecc...ciao Claudio F Modificato: 9 novembre 2004 da Claudio F Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 9 novembre 2004 Segnala Share Inserita: 9 novembre 2004 Metti una resistenza da 4K7 tra + e MCLR , metti resistenze di pull-up da 10K tra ingressi e + , metti dei pulsanti che collegano i rispettivi ingressi verso massa.I tuoi problemi li hai al 100% perche' gli ingressi sono fluttuanti.Ciao Link al commento Condividi su altri siti More sharing options...
stefano_ Inserita: 9 novembre 2004 Autore Segnala Share Inserita: 9 novembre 2004 grazie 1000 non so come farei senza di voi !!!comunque consolatevi ( almeno un pochino ) mi sono comprato il libro imparare l'elettronica partendo da zero,speriamo bene !!!! Link al commento Condividi su altri siti More sharing options...
stefano_ Inserita: 16 novembre 2004 Autore Segnala Share Inserita: 16 novembre 2004 ciao,un'altra cosa i diodi di ricircolo che devo inserire di che tipo sono ???Mi è stato detto che i comuni 4001 non sono buoni grazie Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 16 novembre 2004 Segnala Share Inserita: 16 novembre 2004 Il diodo va calcolato in base alla corrente , l' 1N4001 dovrebbe tirare fino ad 1ACiao Link al commento Condividi su altri siti More sharing options...
stefano_ Inserita: 16 novembre 2004 Autore Segnala Share Inserita: 16 novembre 2004 ciao,grazie per la tua risposta comunque mi è stato detto che oltre che in base alla corrente che devono sopportare i diodi devono essere veloci cioè devono passare dallo stato di commutazione a quello di non commutazioni in tempi brevissimi, ne sai qualcosa ??grazie ancora per la tua risopstaciao Link al commento Condividi su altri siti More sharing options...
wnc Inserita: 16 novembre 2004 Segnala Share Inserita: 16 novembre 2004 Si è vero. Essendo una giunzione pn esiste sempre il problema di scaricare le cariche minoritarie nella regione di carica spaziale. La serie 1N400x sono i i dodi più lenti in assoluto. Potresti utilizzare un transistore collegato come diodo. Quest'ultimi sono i diodi più veloci. Non ho molto tempo da dedicarti.....Ciao Link al commento Condividi su altri siti More sharing options...
Claudio F Inserita: 16 novembre 2004 Segnala Share Inserita: 16 novembre 2004 Va bene qualsiasi diodo fast, ultrafast o shottky, in grado di sopportare la corrente del carico e la tensione di alimentazione. Siccome sono meno diffusi dei diodi normali conviene chiedere al negoziante che tipi ha. Link al commento Condividi su altri siti More sharing options...
stefano_ Inserita: 16 novembre 2004 Autore Segnala Share Inserita: 16 novembre 2004 grazie ancora per le vostre risposteciao Link al commento Condividi su altri siti More sharing options...
stefano_ Inserita: 17 novembre 2004 Autore Segnala Share Inserita: 17 novembre 2004 ciao ragazzi,come mai se dò come tempo tra un impulso e l'altro 1ms il motore emette un sibilo ma non si muove ??è il motore che non puo girare con quella frequenza cosi elevata od è più probabile che siano i transistor che sono lenti nel commutare ? ( ho provato con i BC337 e con gli BD135 ).Grazie a tutticiao ciao Link al commento Condividi su altri siti More sharing options...
wnc Inserita: 17 novembre 2004 Segnala Share Inserita: 17 novembre 2004 Posta come hai fatto il collegamento. Il motore passo-passo deve rispettare una certa rampa di accelerazione e decelerazione per evitare di metterlo in stallo. I BC337 scordali. Già con un BD135 può fare qualcosa. Ciao Link al commento Condividi su altri siti More sharing options...
stefano_ Inserita: 17 novembre 2004 Autore Segnala Share Inserita: 17 novembre 2004 vorrei tanto poter postare lo schema ma non so proprio come fare !!Se clicco sul pulsante IMG mi chiede un URL !!!!!C'è un modo per selezionare un Jpeg ed inserirlo qui ??Grazie ancora Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora