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)

chip_ 24 marzo 05 19:23

Ho scritto queste line di codice con PicbasicPro:

start:

pulsout 0,150
pause 18
pulsout 0,120
pause 18
goto start

In sostanza voglio che il mio servo,hs311 hitec, collegato a RB0 del Pic 16f84A vada avanti e indietro o a qualsiasi posizione specificata nel codice,invece va solo in una direzione e per farlo ritornare al punto di partenza devo riprogrammare il Piccon un nuovo data ad esempio pulsout 0,300.

grazie
chip_
Soluzione?

CantZ506 24 marzo 05 19:39

Citazione:

Originally posted by chip_@24 marzo 2005, 18:23
Ho scritto queste line di codice con PicbasicPro:

start:

pulsout 0,150
pause 18
pulsout 0,120
pause 18
goto start

In sostanza voglio che il mio servo,hs311 hitec, collegato a RB0 del Pic 16f84A vada avanti e indietro o a qualsiasi posizione specificata nel codice,invece va solo in una direzione e per farlo ritornare al punto di partenza devo riprogrammare il Piccon un nuovo data ad esempio pulsout 0,300.

grazie
chip_
Soluzione?


Se la coppia di istruzioni pulsout-pause rappresenta tutto l'impulso(semionda positiva e negativa), la durata totale deve essere sempre uguale.
Vado a memoria: la durata di un canale è di 2msec, lo zero corrisponde ad 1msec e la larghezza dell'impulso va da 0,5 a 1,5 msec; quando l'imp. è 0,5, la pausa deve essere 1,5 e viceversa.

chip_ 25 marzo 05 00:33

Citazione:

Originally posted by CantZ506@24 marzo 2005, 18:39
Se la coppia di istruzioni pulsout-pause rappresenta tutto l'impulso(semionda positiva e negativa), la durata totale deve essere sempre uguale.
Vado a memoria: la durata di un canale è di 2msec, lo zero corrisponde ad 1msec e la larghezza dell'impulso va da 0,5 a 1,5 msec; quando l'imp. è 0,5, la pausa deve essere 1,5 e viceversa.


Non ho capito molto bene.. cmq, grazie.
chip_

CantZ506 25 marzo 05 00:47

Citazione:

Originally posted by chip_@24 marzo 2005, 23:33
Non ho capito molto bene.. cmq, grazie.
chip_

Hai presente com'è fatta un'onda quadra? Ha una semionda positiva ed una negativa.
Quando al servo arriva un segnale in cui le due semionde hanno la stessa durata rimane fermo al centro; se la semionda positiva diventa più corta o più lunga della negativa, il servo ruota da una parte o dall'altra. La durata totale delle due semionde rimane, però, sempre la stessa.
Se le istruzioni pulseout e pause rappresentano le due semionde, la somma dei valori ad esse associati deve essere sempre uguale: 150 e 50, 120 e 80 etc...
E' più chiaro?

estense 25 marzo 05 00:55

Citazione:

Vado a memoria: la durata di un canale è di 2msec, lo zero corrisponde ad 1msec e la larghezza dell'impulso va da 0,5 a 1,5 msec; quando l'imp. è 0,5, la pausa deve essere 1,5 e viceversa
perfetto

la durata della semionda positiva (impulso) determina la posizione del servo
la somma della semionda positiva e della semionda negativa (durata del canale) deve essere 2 msec
la larghezza della semionda positiva deve essere compresa tra 0.5 e 1.5 msec, pena il superamento dei fondocorsa del servo

CantZ506 25 marzo 05 01:00

Citazione:

Originally posted by estense@24 marzo 2005, 23:55
perfetto

la durata della semionda positiva (impulso) determina la posizione del servo
la somma della semionda positiva e della semionda negativa (durata del canale) deve essere 2 msec
la larghezza della semionda positiva deve essere compresa tra 0.5 e 1.5 msec, pena il superamento dei fondocorsa del servo

Mi rimane il dubbio sul tempo che deve intercorrere tra un impulso e l'altro, se DEVE esistere.
In pratica, il tempo in cui funzionano gli altri canali presenti sulla radio.
In definitiva, se la radio avesse un solo canale, gli impulsi si susseguirebbero immediatamente o ci deve essere una pausa... di riflessione? :)

estense 25 marzo 05 01:06

Se il comando pause 18 si riferisce ai 18 msec di intervallo fra gli impulsi omologhi per quel dato canale all' interno del treno di onde, allora, premesso che pulseout deve essere > 0.5 msec e < 1.5 msec, manca l' informazione relativa alla parte negativa della semionda (2 - x)
e gli impulsi sono distanziati di 20 msec come da manuali vari

estense 25 marzo 05 01:11

Citazione:

ci deve essere una pausa... di riflessione?
sicuro
20 msec é la durata del pacchetto completo: canali, pausa e picco di sincronizzazione del demultiplexer

editato:
Citazione:

se la radio avesse un solo canale, gli impulsi si susseguirebbero immediatamente
no
mettiamo il caso di avere una rx a 6 canali e una tx a 4. e tutto funziona tranquillamente perché ogni canale ha il suo spazio, che sia realmente presente o meno, sia nella tx che nella rx

CantZ506 25 marzo 05 01:14

Citazione:

Originally posted by estense@25 marzo 2005, 00:06
Se il comando pause 18 si riferisce ai 18 msec di intervallo fra gli impulsi omologhi per quel dato canale all' interno del treno di onde, allora, premesso che pulseout deve essere > 0.5 msec e < 1.5 msec, manca l' informazione relativa alla parte negativa della semionda (2 - x)
e gli impulsi sono distanziati di 20 msec come da manuali vari

Infatti dovrebbe essere qualcosa del genere:
pulseout 0,150
pause 0,150
pause 18
etc.
etc.

estense 25 marzo 05 01: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 !!!!!


Tutti gli orari sono GMT +2. Adesso sono le 15:53.

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