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


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 23 luglio 14, 17:09   #1 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
Citazione:
Originalmente inviato da trabo Visualizza messaggio
allora questo è quello che ho scritto da 0... con soli 2 effetti e funziona.
Se aggiungo il 3 effetto lo salta:
Supponendo che non ci siano problemi nell'hardware, c'è sicuramente un problema sui rimbalzi dell'interruttore e su come lo utilizzi.
In pratica hai due cicli while uno dietro l'altro con la condizione di ripetizione data dallo stato del pulsante.
Adesso immagina di essere nel primo while: fino a che l'ingresso è zero continua ad eseguire il codice contenuto nel while, ma quando l'ingresso diventa 1 esegue l'istruzione while, trova l'ingresso a 1 ed esegue subito l'istruzione seguente il wend, che è un altro while e se l'ingresso è ancora a 1 lo salta ed esce subito al wend...
In pratica il cambio dell'effetto lo fa sui rimbalzi del pulsante e sfruttando i ritardi dei vari effetti.
Prova a mettere la condizione in fondo all'effetto, invece che all'inizio: non uso il mikrobasic, ma dovresti avere una struttura do ... while(condizione); in questo caso tra quando trova il pulsante chiuso e quando lo va a testare la volta successiva hai il tutto il tempo di ritardo dell'effetto che dovrebbe annullarti i rimbalzi.

Michele
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Vecchio 30 luglio 14, 12:39   #2 (permalink)  Top
User
 
Data registr.: 19-07-2014
Messaggi: 17
Citazione:
Originalmente inviato da MSchiepp Visualizza messaggio
Supponendo che non ci siano problemi nell'hardware, c'è sicuramente un problema sui rimbalzi dell'interruttore e su come lo utilizzi.
In pratica hai due cicli while uno dietro l'altro con la condizione di ripetizione data dallo stato del pulsante.
Adesso immagina di essere nel primo while: fino a che l'ingresso è zero continua ad eseguire il codice contenuto nel while, ma quando l'ingresso diventa 1 esegue l'istruzione while, trova l'ingresso a 1 ed esegue subito l'istruzione seguente il wend, che è un altro while e se l'ingresso è ancora a 1 lo salta ed esce subito al wend...
In pratica il cambio dell'effetto lo fa sui rimbalzi del pulsante e sfruttando i ritardi dei vari effetti.
Prova a mettere la condizione in fondo all'effetto, invece che all'inizio: non uso il mikrobasic, ma dovresti avere una struttura do ... while(condizione); in questo caso tra quando trova il pulsante chiuso e quando lo va a testare la volta successiva hai il tutto il tempo di ritardo dell'effetto che dovrebbe annullarti i rimbalzi.

Michele
Niente di niente...
A questo punto credo sia lo schema...
POSTO lo schema qui... se potete vedere se ho errato qualcosa
Image - TinyPic - Servizio di hosting d'immagini, condivisione immagini & hosting di video gratuito


Grazie ancora
trabo non è collegato   Rispondi citando
Vecchio 30 luglio 14, 16:16   #3 (permalink)  Top
User
 
L'avatar di MSchiepp
 
Data registr.: 21-01-2004
Residenza: Milano
Messaggi: 989
qualche ritocco sull'hardware si può fare...

- aggiungi un condensatore elettrolitico 10uF 16V all'uscita del regolatore
- aggiungi un condensatore di filtro da 47 nF tra il pin 1 e il pin 8 del micro
- il condensatore C1 non serve a molto... se vuoi filtrare il pulsante devi mettere anche una resistenza in serie (t=RC, ma se R=0...)

visto che hai già messo i transistor, lasciali, ma puoi pilotare direttamente i led dai pin del micro (con la dovuta resistenza) con correnti fino a 20mA.

Michele
__________________
__________________________________________________
The worst day flying is better than the best day working.
MSchiepp non è collegato   Rispondi citando
Vecchio 30 luglio 14, 16:37   #4 (permalink)  Top
User
 
Data registr.: 19-07-2014
Messaggi: 17
Citazione:
Originalmente inviato da MSchiepp Visualizza messaggio
qualche ritocco sull'hardware si può fare...

- aggiungi un condensatore elettrolitico 10uF 16V all'uscita del regolatore
- aggiungi un condensatore di filtro da 47 nF tra il pin 1 e il pin 8 del micro
- il condensatore C1 non serve a molto... se vuoi filtrare il pulsante devi mettere anche una resistenza in serie (t=RC, ma se R=0...)

visto che hai già messo i transistor, lasciali, ma puoi pilotare direttamente i led dai pin del micro (con la dovuta resistenza) con correnti fino a 20mA.

Michele
quindi... con queste modifiche che mi dici, credi che riesca a risolvere il problema?
E tra i programmi che ho scritto.... quale dunque mi consigli di utilizzare?
Aggiungo la resistenza??

Grazie
trabo non è collegato   Rispondi citando
Vecchio 30 luglio 14, 17:13   #5 (permalink)  Top
Adv Moderator
 
L'avatar di romoloman
 
Data registr.: 15-08-2007
Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.070
Citazione:
Originalmente inviato da MSchiepp Visualizza messaggio
qualche ritocco sull'hardware si può fare...

- aggiungi un condensatore elettrolitico 10uF 16V all'uscita del regolatore
- aggiungi un condensatore di filtro da 47 nF tra il pin 1 e il pin 8 del micro
- il condensatore C1 non serve a molto... se vuoi filtrare il pulsante devi mettere anche una resistenza in serie (t=RC, ma se R=0...)

visto che hai già messo i transistor, lasciali, ma puoi pilotare direttamente i led dai pin del micro (con la dovuta resistenza) con correnti fino a 20mA.

Michele
già che uno c'è per non complicarsi la vita può ben pensare di rimuovere il quarzo, i due condensatori e usare l'oscillatore interno. in questo caso ricordarsi di caricare la calibrazione di fabbrica dell'oscillatore interno nell'apposito registro:

asm
{
bsf _status,RP0
call 0x3FF
movwf _osccal
bcf _status,RP0
}

Il grosso vantaggio è che si liberano ben due piedini di I/O
__________________
Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo
Grazie "TRANQUILLO"
FAI 15766
romoloman non è collegato   Rispondi citando
Vecchio 30 luglio 14, 17:18   #6 (permalink)  Top
User
 
Data registr.: 19-07-2014
Messaggi: 17
Citazione:
Originalmente inviato da romoloman Visualizza messaggio
già che uno c'è per non complicarsi la vita può ben pensare di rimuovere il quarzo, i due condensatori e usare l'oscillatore interno. in questo caso ricordarsi di caricare la calibrazione di fabbrica dell'oscillatore interno nell'apposito registro:

asm
{
bsf _status,RP0
call 0x3FF
movwf _osccal
bcf _status,RP0
}

Il grosso vantaggio è che si liberano ben due piedini di I/O
credi che il quarzo esterno dia problemi?
E poi? come dovrei rifare la calibrazione... scusa sono alle prima armi
trabo non è collegato   Rispondi citando
Vecchio 30 luglio 14, 17:27   #7 (permalink)  Top
Adv Moderator
 
L'avatar di romoloman
 
Data registr.: 15-08-2007
Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.070
Citazione:
Originalmente inviato da trabo Visualizza messaggio
credi che il quarzo esterno dia problemi?
E poi? come dovrei rifare la calibrazione... scusa sono alle prima armi
Il vantaggio di usare quei micro pic si ha proprio nella presenza dell'oscillatore interno,
soprattutto nell'uso modellistico togliere il quarzo consente di ridurre ulteriormente le dimensioni del circuito.
La calibrazione la carichi con quelle righe di assembler che ti ho postato, la calibrazione viene fatta in fabbrica e normalmente non viene sovrascritta dal programmatore.
Se viene sovrascritta esiste la possibilità con il pikkit2 o il pickit3 di ricalcolarla.

Con il proton basic esiste un istruzione Set_OSCCAL che fa la stessa cosa. tuttavia non mi sembra presente nel mikrobasic, per quello ti ho postato l'assembly.
__________________
Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo
Grazie "TRANQUILLO"
FAI 15766
romoloman non è collegato   Rispondi citando
Vecchio 30 luglio 14, 21:42   #8 (permalink)  Top
User
 
Data registr.: 19-07-2014
Messaggi: 17
Citazione:
Originalmente inviato da romoloman Visualizza messaggio
Il vantaggio di usare quei micro pic si ha proprio nella presenza dell'oscillatore interno,
soprattutto nell'uso modellistico togliere il quarzo consente di ridurre ulteriormente le dimensioni del circuito.
La calibrazione la carichi con quelle righe di assembler che ti ho postato, la calibrazione viene fatta in fabbrica e normalmente non viene sovrascritta dal programmatore.
Se viene sovrascritta esiste la possibilità con il pikkit2 o il pickit3 di ricalcolarla.

Con il proton basic esiste un istruzione Set_OSCCAL che fa la stessa cosa. tuttavia non mi sembra presente nel mikrobasic, per quello ti ho postato l'assembly.

si ma questo significa che devo iniziare a studiare l'assembler.. giusto?
ho usato mikrobasic, perche a scuola lo ho studiato, quindi non sono partito completamente da 0..
Non so.. ditemi voi
trabo non è collegato   Rispondi citando
Rispondi

Bookmarks



Strumenti discussione
Visualizzazione

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 Messaggio
pic 12F629 faustog_2 Circuiti Elettronici 2 07 ottobre 13 11:52
ESC con PIC Italia Circuiti Elettronici 4 23 marzo 13 16:27
Problema con programma MPX per aggiornamento Royal PRO picman Radiocomandi 0 29 agosto 10 20:27
Programma facile per pic Orso82 Circuiti Elettronici 20 27 febbraio 05 16:44
Regolatore con PIC rapis Circuiti Elettronici 1 26 novembre 01 11:15



Tutti gli orari sono GMT +2. Adesso sono le 23:26.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2026
www.baronerosso.it - www.toymagazine.it