BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   servo (https://www.baronerosso.it/forum/circuiti-elettronici/6337-servo.html)

Naraj 25 marzo 05 01:37

Per non confondere le idee forse è meglio non parlare di semionde negative.

L'onda quadra (in realtà rettangolare) è sempre positiva, infatti và dallo zero Volt a + 5 Volt. ( in certi trasmettitori và da + 5 Volt a Zero Volt).

Per ogni canale c'è un'onda quadra e il numero di canali del trasmettitore formano un "treno" di onde.

Questi treni di onde sono separati da un breve intervallo di tempo senza nessuna onda e si ripetono con una certa frequenza costante.

Il segnale completo è composto da un treno di onde quadre (che sono i vari canali del TX) conpreso una pausa tra due serie di onde.

Anche se i tempi delle onde quadre vengono modificati dal comando del TX, la durata dall'inizio della prima onda fino a comprendere la pausa della fine del treno onde, rimane sempre costante. (in alcuni TX è il primo fronte di salita del segnale che dà lo start del nuovo treno di impulsi).

Spero di non aver confuso le idee ai lettori.

Ciao a tutti. Naraj.

CantZ506 25 marzo 05 01:46

Citazione:

Originally posted by estense@25 marzo 2005, 00:33
sto facendo ipotesi, perché non conosco il picbasicpro

secondo me dovrebbe essere

pulsout= 0,7
pause=2-pulsout
pause=18

ma se il pulsout non varia da 0,5 a 1,5 il servo parte, ma poi resta fermo alla posizione 0,7

non so che comandi corrispondano (se esistono) a "per pulsout che va da 0,5 a 1,5 ..... ecc." e se c'é un incremento automatico o no tipo "step" o qualcosa di simile.

Ragazzi sono 15÷20 anni che ho mollato il basic !!!!!

Giusto, ma quello è solo un ciclo che va ripetuto, cambiando ogni volta il valore.
Ora che ci penso è ovvio che non gli funziona: lui fa il loop, ma sempre con lo stesso valore
start:
pulseout 0,150
...
...
goto start

va cambiato in:

L = 0
start:
pulseout 0,150 + L
pause 0,150 - L
pause 18
qui va una funzione che assegna il valore ad L (positivo o negativo)
goto start

estense 25 marzo 05 01:47

Citazione:

Per non confondere le idee forse è meglio non parlare di semionde negative.


si, mi é scappata una ca.. ehem ... inesattezza, ma oggi sto tribolando con la 220.

chip_ 25 marzo 05 19:34

Citazione:

Originally posted by estense@25 marzo 2005, 00:33
sto facendo ipotesi, perché non conosco il picbasicpro

secondo me dovrebbe essere

pulsout= 0,7
pause=2-pulsout
pause=18

ma se il pulsout non varia da 0,5 a 1,5 il servo parte, ma poi resta fermo alla posizione 0,7

non so che comandi corrispondano (se esistono) a "per pulsout che va da 0,5 a 1,5 ..... ecc." e se c'é un incremento automatico o no tipo "step" o qualcosa di simile.

Ragazzi sono 15÷20 anni che ho mollato il basic !!!!!



vediamo se ci riesco,dal manuale del PicBasicPro:

PULSOUT

PULSOUT Pin,Period

Generates a pulse on Pin of specified Period. The pulse is generated by toggling the pin twice, thus the initial state of the pin determines the polarity of the pulse. Pin is automatically made an output. Pin may be a constant, 0 - 15, or a variable that contains a number 0 - 15 (e.g. B0) or a pin name (e.g. PORTA.0).

The resolution of PULSOUT is dependent upon the oscillator frequency. If a 4MHz oscillator is used, the Period of the generated pulse will be in 10us increments. If a 20MHz oscillator is used, Period will have a 2us resolution. Defining an OSC value has no effect on PULSOUT. The resolution always changes with the actual oscillator speed.

' Send a pulse 1mSec long (at 4MHz) to Pin5
PULSOUT PORTB.5,100
PWM

estense 25 marzo 05 20:05

Faticosamente .... qualcosa comincia a schiarirsi
Citazione:

The pulse is generated by toggling the pin twice, thus the initial state of the pin determines the polarity of the pulse
quindi per prima cosa, all' inizio, per avere impulsi positivi, bisogna forzare a 0 questo pin
Citazione:

Send a pulse 1mSec long (at 4MHz) to Pin5

allora, se il clock é a 4 Mhz, Period deve variare tra 50 e 150
Citazione:

Pin is automatically made an output. Pin may be a constant, 0 - 15, or a variable that contains a number 0 - 15 (e.g. B0) or a pin name (e.g. PORTA.0).

non riesco a capirci granché, comunque dovrebbe essere l' assegnazione dell' output

mindstorm 13 aprile 05 10:58

Grazie e voi ho ricavato questo codice *funzionante alla grande*, provato ieri sera su 16F84A@4MHz :D

' su PORTB.5 e' collegato il servo
PORTB.5=0 ' forzo uscita bassa
loop:
POSIZ=150 '<-- 100=0°, 150=center, 200=180°
PULSOUT PORTB.5,POSIZ
PAUSEUS (2000-POSIZ*10)
PAUSE 18
goto loop


Prima di leggervi ho provato a seguire le specifiche *cannate* di qualcun'altro che mi ha fatto bruciare il servo... :angry:
bel lavoro gente !!!!

A proposito del mio servo bruciato. Da alcuni test ho notato che il motore non gira piu' in senso orario,mentre il potenzionetro sembra funzionare. Smontando il servo ci sono giusto quattro componenti in croce: il motorino, 2/3 condensatori, qualche condensatore e resistenza DIL il potenziometro e un paio di integrati (forse i comparatori???). Qualcuno di voi ha mai affrontato il problema?

Bye, Mind

CantZ506 13 aprile 05 12:06

Citazione:

Originally posted by mindstorm@13 aprile 2005, 09:48
Grazie e voi ho ricavato questo codice *funzionante alla grande*, provato ieri sera su 16F84A@4MHz :D

' su PORTB.5 e' collegato il servo
PORTB.5=0 ' forzo uscita bassa
loop:
POSIZ=150 '<-- 100=0°, 150=center, 200=180°
PULSOUT PORTB.5,POSIZ
PAUSEUS (2000-POSIZ*10)
PAUSE 18
goto loop


Ma così posizioni al centro il servo e basta; se vuoi farlo muovere, devi cambiare POSIZ ad ogni loop. O sbaglio?
Citazione:

....
A proposito del mio servo bruciato. Da alcuni test ho notato che il motore non gira piu' in senso orario,......
Qualcuno di voi ha mai affrontato il problema?

Bye, Mind

Che significa? Gira al contrario o non gira proprio?
Non ancora; ho un servo fuori uso(và a fondo corsa), ma non ho ancora cercato di ripararlo.

mindstorm 13 aprile 05 13:06

Citazione:

Originally posted by CantZ506+13 aprile 2005, 09:56--><div class='quotetop'>QUOTE(CantZ506 @ 13 aprile 2005, 09:56)</div><div class='quotemain'>Ma così posizioni al centro il servo e basta; se vuoi farlo muovere, devi cambiare POSIZ ad ogni loop. O sbaglio?
[/b]



Non sbagli. L'intenzione era quella di mettere a disposizione del codice funzionante riguardo ai timing.
Se ricompili con POSIZ=200 vedrai il servo posizionarsi all'estremita'.


<!--QuoteBegin-CantZ506
@13 aprile 2005, 09:56
Che significa? Gira al contrario o non gira proprio?
[/quote]

Significa che quando deve girare in un senso lo fa correttamente (via telecomando o circuito di test che sia), viceversa non c'e' verso di farlo girare dall'altro.
Tant'e' che se giro la levetta a sinistra il servo ci va, ma quando mollo la levetta non torna al centro.


Bye, Mind

mindstorm 13 aprile 05 13:58

Citazione:

Originally posted by mindstorm@13 aprile 2005, 08:48
...un paio di integrati (forse i comparatori???)

Ecco cosa c'e' dentro, casomai a qualcuno potesse servire:
http://www.teamkiss.com/antweight.html

Bye, Mind

CantZ506 13 aprile 05 16:12

Citazione:

Originally posted by mindstorm@13 aprile 2005, 12:48
Ecco cosa c'e' dentro, casomai a qualcuno potesse servire:
http://www.teamkiss.com/antweight.html

Bye, Mind

Ho provato a cercare i data sheet dei due integrati, ma non li ho trovati.
Azzardo l'ipotesi che sia il secondo ad aver problemi; il comparatore sembra che faccia il suo lavoro, comandando la rotazione, ma il ponte sembra non commuti le polarità al motore.
Non credo sia facile trovare dei sostituti pin to pin.


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

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