BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   aumentare l'estensione dei servi (https://www.baronerosso.it/forum/circuiti-elettronici/191219-aumentare-lestensione-dei-servi.html)

marcosinatti 02 dicembre 10 13:34

Di niente, ho modificato il valore delle resistenze sul messaggio precedente...

illez 02 dicembre 10 13:38

Mi era sfuggita questa differenza tra PORTA e PORTB
Mi sembra abbastanza importante:wink:

Mrk89 02 dicembre 10 13:44

Citazione:

Originalmente inviato da marcosinatti (Messaggio 2331598)
....In alternativa, se devi usare per forza la PORTA, puoi provare a mettere una resistenza da 1K in serie al segnale della rx e una di pull-up da 4,7K tra il pin di ingresso e il +5V.

Domanda: hai provato questa soluzione ??

Ammesso e non concesso che la ricevente porti il segnale esattamente a 0V, si avrebbe un partitore con tensione all'ingresso del PIC di 5/(4.7+1)*1 = 0.88V circa... Io metterei la resistenza di pull up più grande, 5.6Kohm per esempio.:wink:

marcosinatti 02 dicembre 10 18:23

Se lo avevo provato io non dicevo a lui di provarlo, ma di farlo direttamente... :wink:
Comunque il concetto è chiaro, adesso si tratta di provare, e quindi correggere eventualmente i valori.

Mrk89 02 dicembre 10 20:38

Citazione:

Originalmente inviato da marcosinatti (Messaggio 2331992)
Se lo avevo provato io non dicevo a lui di provarlo, ma di farlo direttamente... :wink:
Comunque il concetto è chiaro, adesso si tratta di provare, e quindi correggere eventualmente i valori.

Mi ero perso il "prova"...:P

faustog_2 03 dicembre 10 12:38

ok
 
grazie marcosinatti, però voorei precisare che fronte di salita o discesa si attivavo con i bit opportuni

quinidi T0OC deve essere= 1 ovvero Counter mode, e poi x fronte di salita
T0SE = 1 , T0SE = 0 fronte di discesa , che io però non ho mai attivato.


La portb in effetti uso solo le porte 7 e 8 per la rx e tx seriale, in modo che faccio il debug, pero le altre in effetti sono libere potrei usarle.
grazie ancora appena riesco ad ottenere il primo servo extends vi comunico qui stesso vi posto il codice..

a dopo
fausto

Citazione:

Originalmente inviato da marcosinatti (Messaggio 2331598)
Credo che il problema non sia legato all'impedenza di ingresso ma dal tipo di porta.
Se ho capito bene hai usato la PORTA che ha ingressi a Trigger di Schmitt quindi riconosce il livello alto solo a 0,8xVDD quindi a 5V di VDD la soglia è a 4V per la salita e a 0,2xVDD=1v in discesa.
Se usi la PORTB invece essendo TTL legge già il livello alto a 2-2,2V e il livello basso sotto 0,8V.
In alternativa, se devi usare per forza la PORTA, puoi provare a mettere una resistenza da 1K in serie al segnale della rx e una di pull-up da 4,7K tra il pin di ingresso e il +5V.


marcosinatti 03 dicembre 10 13:05

Sul fatto che la scelta del fronte viene determinata via software, non ci sono dubbi, ma se lo stadio di ingresso non è in grado di discriminare i livelli di tensione puoi abilitare quello che vuoi, lui non lo sente!

faustog_2 03 dicembre 10 16:36

ok
 
ok quindi attivando dovremmo avere una migliore diciamo sensibilità o meglio un impedenza più bassa tale da permettere l'uso delle nostre riceventi in aeromodellismo.

comunque bello poter coniugare aeromodellismo con elettronica.. molto affascinante, ci sto battendo da poco tempo , però mi rendo conto che molto interessante a presto
fausto

Citazione:

Originalmente inviato da marcosinatti (Messaggio 2332924)
Sul fatto che la scelta del fronte viene determinata via software, non ci sono dubbi, ma se lo stadio di ingresso non è in grado di discriminare i livelli di tensione puoi abilitare quello che vuoi, lui non lo sente!


marcosinatti 03 dicembre 10 19:23

Nooo :axe:
:lol::lol::lol:
L'impedenza non c'entra niente, il problema è sulle soglie di tensione e basta.
Poi sicuramente avranno anche impedenze diverse, ma comunque talmente alte che non influiscono di certo sulla tensione dei segnali provenienti dalla rx.

faustog_2 06 dicembre 10 12:22

ci sono riuscito
 
ciao marcosinati..

come in oggetto ci sono riuscito , attualmente il servo extends lavora su un 25, 30% di escursione in più ..
quello che ho ottenuto , come volevo è un semplice algoritmo, che non facesse uso dei timer, per motivi di didattica, devo spiegare a dei ragazzi di 3 industriale, che ne pensi?

Il cuore dell'algoritmo è la seguente formula

HALF = 118 + (ATTESA/2)

DOVE ATTESA E IL TEMPO TRASCORSO DA DOPO IL PRIMO MILLISECONDO DAL SEGNALE IN INGRESSO,
ATTESA VARIA DA circa 34 A 201 CIRCA, HO USATO UN HITEC OPTIMA7 2,4 GHz

quindi da un estremo half vale 135... dall'altro 228, mentre il tempo medio si sa è di 178

se hai un idea migliore fammi sapere.. anche perchè questa soluzione non offre un parametro tale che se applicato si può aumentare o diminuire l'escursione.


ecco il sorgernte

;-----------------------------------------------------
; EXTENDS.ASM - Dimostrativo di semplice estensione escursione servocomando
;
; created by Fausto Giudice
; www.openflight.it
;-----------------------------------------------------
PROCESSOR 16F628
RADIX DEC
INCLUDE "P16F628.INC"
__CONFIG 11110100010000B

ATTESA EQU 32
CL EQU 33
HALF EQU 34
H_COUNT EQU 35
L_COUNT EQU 36

#DEFINE PULSEIN PORTB,5
#DEFINE PULSEOUT PORTB,0

ORG 0

BSF STATUS,RP0 ; ** GO TO BANK 1

MOVLW b'00000000'
MOVWF TRISA

movlw b'11110010'
movwf TRISB

BCF STATUS,RP0 ; ** RETURN BANK 0
;
; _________________________________________
;
; START PROGRAM
; ------------------------------------
;
LOOP BTFSS PULSEIN ; FINCHE NON LEGGE 1 RIMANE QUI
GOTO $-1

CALL PP ; ATTENTE UN MILLI SECONO

YY BTFSS PULSEIN ;
GOTO SHOW
INCF ATTESA,F ; INCREMENTA COUNT
GOTO YY

SHOW MOVF ATTESA,W
MOVWF HALF
BCF STATUS,C
RRF HALF,F
MOVLW 118
ADDWF HALF,F

CALL PULSE_OUT ; ATTESA
CALL DELAY_20 ; IMPULSO ESTESO
CLRF ATTESA ; RESETTA COUNT
GOTO LOOP ; TORNA A LEGGERE DALLA PORTA DI INGRESSO
; _________________________________________
;
; END PROGRAM
; ------------------------------------
; _________________________________________
;
; GENERA UN IMPULSO PIU ESTESO SU PORTA1 RISPETTO A QUELLO ENTRANTE IN PORTA0
; ------------------------------------
;
; 900 + 5 * ATTESA = da 900uS se ATTESA è = 0 , a max 2000uS se ATTESA = 200

PULSE_OUT BSF PULSEOUT
movf HALF,W ; 1uS |
movwf CL ; 1uS | 4uS
goto $+1 ; 2uS |

goto $+1 ; 2uS |
decfsz CL,F ; 1uS | 5uS * (178 - 1) = 885uS
goto $-2 ; 2uS |

nop ; 1uS

movf ATTESA,W ; 1uS
movwf CL ; 1uS
btfsc STATUS,Z ; 1uS nel caso in cui ATTESA = 0 allora salta alla fine
RETURN ; 2uS

goto $+1 ; 2uS

goto $+1 ; 2uS |
decfsz CL,F ; 1uS | 5uS * (ATTESA - 1) =
goto $-2 ; 2uS |
BCF PULSEOUT

RETURN
;
; _________________________________________
;
; GENERA UN RITARDO DI 1 mS
; ------------------------------------
;

PP MOVLW 178 ; 1uS |
MOVWF CL ; 1uS | 4uS
GOTO $+1 ; 2uS | ****** ATTESA DI 0.9 mS ******
GOTO $+1 ; 2uS |
DECFSZ CL,F ; 1uS | 5uS * (177 - 1) = 885uS + 4 + 2 = 891 uS circa
GOTO $-2 ; 2uS |
RETURN
;
; _________________________________________
;
; GENERA UN RITARDO DI 20 mS
; ------------------------------------
;

DELAY_20 movlw 20
movwf H_COUNT
movlw 10
movwf L_COUNT
decfsz L_COUNT,F
goto $-1
decfsz H_COUNT,F
goto $-3

RETURN

END


Citazione:

Originalmente inviato da marcosinatti (Messaggio 2333447)
Nooo :axe:
:lol::lol::lol:
L'impedenza non c'entra niente, il problema è sulle soglie di tensione e basta.
Poi sicuramente avranno anche impedenze diverse, ma comunque talmente alte che non influiscono di certo sulla tensione dei segnali provenienti dalla rx.



Tutti gli orari sono GMT +2. Adesso sono le 07:25.

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