Show Posts
Pages: 1 [2] 3 4 ... 17
16  International / Software / Re: [OT] richiesta di aiuto per programmino x Accordatore on: October 24, 2013, 08:43:39 am
Ciao Marco.. Ciao Lesto...

Hai scritto che  vuoi usare un induttore a induttanze commutate , e un condensatore variabile in aria motorizzato.
Può funzionare, ma  secondo me viene meglio se usi anche i condensatori commutati, cosi il tutto funziona alla stessa elevata velocità.
.. non mi piace l'idea di usare tanti relè.. a parte il fatto che costano, preferisco l'idea che il sistema mi segua con "continuità" allo spostarsi della frequenza... con microaggiustamenti dei servo, non con aggiustamenti "a gradini"... per quanto riguarda la velocità, tieni presente che una volta memorizzata la posizione di accordo, per quella banda, con quella antenna, il servo si porta in posizione in una frazione di secondo... quindi è comunque velocissimo....
In definitiva preferisco comunque i servomotori sui condensatori.... piuttosto che rele e condensatori fissi...


Sai come fare per "congelare" o "mettere in sleep" o  rallentare  il funzionamento del controllore ATM di arduino ?. Non vorrei che in ricezione  i disturbi del clock di arduino si infilassero nell'accordatore e disturbassero la ricezione radio dei segnali deboli.
mai provato a fare lo sleep.. ma come indicato da lesto si può fare. Per la nanna/risveglio si può usare come riferimento la presenza di Vdiretta ... se c'è --->  c'è RF quindi micro sveglio!!!! ... se non c'è ---> non c'è RF quindi micro sleep!!!!.


Per il rosmetro, ci sono tanti schemi in rete. Se ne hai uno vecchio con lo strumento a lancette, potresti  connetterti in parallelo ai segnali, e collegarti a due ingressi analogici di arduino.
si io ho fatto così per fare le prove tempo fà, come sorgente di RF usavo un vecchio RTX 27Mhz, ma il rosmetro era poco sensibile , sotto i 3 o 4 W di RF non funzionava...
l'accordatore commerciale che  uso (yaesu fc757) usa un riflettometro a toroide... sensibilissimo.. perchè vedo che accorda anche con potenza RF bassissima. ecco io vorrei replicare qualcosa di simile...

una di queste sere butto su kicad la mia idea.. poi cominciaamo a lavorarci... ciao
17  International / Software / Re: [OT] richiesta di aiuto per programmino x Accordatore on: October 23, 2013, 02:03:06 pm
Ciao Marco...

il mio script l'avevo fatto giusto per provare quella coppia di condensatori motorizzati che avevo "pescato" su ebay.. il problema è che non hanno un riferimento per fare il feedback della posizione.... contavo di applicargli sull'alberino un potenziometro ma l'alberino sporge solo di 2 o 3 mm .. quindi non saprei come innestargli qualcosa sull'asse ...

comunque la routine di "ricerca minimo" e "ricerca massimo" funziona...

a grandi linee funziona così:
se rilevo un V diretta, cè RF, qundi faccio un setup acquisendo le V diretta e V riflessa... a motori ancora fermi
aziono i motori per un tempo stabilito, fermo i motori e rilevo di nuovo Vdiretta e Vriflessa,
determino la pendenza della variazione confrontando con la lettura vecchia e ne conservo il segno
se il segno cambia, vuol dire che ho superato un punto di minimo o di massimo qundi devo invertire la rotazione.. contemporanemante dimezzo anche la velocità per fare un adattamento "fine"
tutto questo lo ripeto indefinitamente nel loop, l'accordo lo fermo quando la variazione di Vdiretta e di Vriflessa, sono entrambe minori di un valore prefissato .... quindi sono su un massimo (Vdiretta) e su un minimo (Vriflessa)..
nello script cè anche una gestione delle letture con un delay stabilito, e tiene conto anche di un tempo necessario per assorbire il gioco degli ingranaggi ogni volte che si inverte la rotazione...
il sistema funziona... ma il problema è che non cè un sistema di feedback sui condensatori ... ecco perchè vorrei farlo con i servomotori..... molto più semplice da gestire e da memorizzare .....

se volessimo fare un progettino bisognerebbe cominciare con lo schema del rosmetro da utilizzare, e lo schema dell'accordatore a pgreco.
Io vorrei farlo, naturalmente, utilizzando componentistica di basso valore, rele' come dicevi tu per la L variabile (i roller costano troppo), e come condensatori da recuperare da un accordatore manuale, di quelli senza strumenti,  che si trovano su ebay...a ochi euro, oppure aucostruirli del tipo a farfalla che sopportano tensioni ben più elevate .... e motorizzarli con un servo ...

il frequenzimetro di Menniti lo trovi su questa rivista http://www.elettronicain.it/myMain/riviste/p_rivista.asp?nrRivista=EI179 .. ma c'è anche qualche post su questo forum
ciao
18  International / Software / Re: [OT] richiesta di aiuto per programmino x Accordatore on: October 23, 2013, 11:19:11 am
Ciao Marco... 
premetto che conosco diversi dei tuoi interessanti lavori tra i quali l'antenna analyzer fatto proprio con il 328.. quindi sò che qui,  su questa materia sei un'autorità, anche se cerchi di passare inosservato ..... smiley-wink

tutto assolutamente condivisibile...
io mi sono letto tutto il post perchè pensavo di trovare un progettino bello e buono.. visto che tempo fà lo avevo approciato anche io...

perchè non ci dai una mano a mettere su un bel progettino con -
- induttanze inseribile con relè (poi vediamo che tipo di rele)
- condensatori motorizzati con servo;
- eventuale commuttatore d'antenna
momorizzazione sulla eeprom dei punti di accordo,

eventuale integrazione di un frequenzimetro, magari quel gioiello di michele menniti .. che potrebbe consentire anche lo scambio automatico della banda ...

cosa ne pensi???
ciao
Paolo
IS0CFU

che ne dici?

19  International / Software / Re: [OT] richiesta di aiuto per programmino x Accordatore on: October 22, 2013, 01:15:18 pm
Sarò antico, ma io rimango convinto che si possa fare con due condensatori variabili con due servo...  smiley-grin
se vuoi puoi rimanere convinto.....
rimane il fatto che sono convinzioni strampalate   smiley-twist

.. sbagli gingardu... paulus ha perfettamente ragione ... accoppiare un servo a ciascuno dei due variabili è un'ottima idea... giusto per avere un'idea:
io le prove le ho fatte con questo attrezzo nelle foto di seguito allegate.
Come detto prima si tratta di una coppia di condensatori (usati normalmente con potenze di 150 w, ma credo reggano anche di piu, recuperati su ebay da un antenna tuner defunto), dotati di un motore CC. Li ho usati con lo script riportato sopra e funzionano bene. L'unico prpoblema è che non hanno un sistema per rilevare la posizione di adattamento e quindi non posso memorizzare la posizione trovata. per qusto ho abbandonato il progetto almeno fino a quando non trovo il sistema di poter rilevare la posizione del condensatore.
Con un servomotore questo problema non esisterebbe: trovato l'accordo si memorizza la posizione e la prossima volta che vai su quella banda il micro in una frazoine di secondo imposta l'induttanza ed  i due condesatori ed il sistema è già bello ed adattato. La sintonia fine averrebbe con piccoli aggiustamenti dei condensatori.

io uso questo accordatore automatico yaesu fc757: http://www.universal-radio.com/catalog/hamhf/fc757ata.html, posso dirti come fà l'accordo. I due condensatori sono motorizzati come quelli della foto, solo che hanno un potenziometro da cui il micro può risalire al posizionamento del condensatore. Una volta ragiunto l'accordo su quella banda, il micro memorizza nella eeprom la posizone dei condensatori e dell'induttanza variabile, e quando torni su quella banda ci si riposizione subito sopra, I condensatori ci mettono anche 4/5 s spostarsi da una posizione all'altra (dipende se sono posizioni vicine o agli estremi dei valori del condensatore). Un servo sarebbe pressochè istantaneo. Il commuttatore per inserire togliere l'induttanza gira solo in un senso, quindi se devi passare da una posizione alla posizione precedente (devi tornare indietro) lui deve fare tutto il giro e ci mette anche oltre 110  sec.  I condensatori del 757 sono un pò più piccoli di quelli della foto e l'accordatore viene dato per 150 w, se non ricordo male.

ho anche recuperato alcuni condensatori da questo: http://www.crtelettronica.it/dettagli.php?product_id=230 che ha condensatori molto più piccoli di quelli che ti ho fotografato e sono dati per 500 w. (ma su questo ho dei dubbi anche io) ed ho anche acquistato i servi per la loro movimentazione (circa 12 € cadauno).


se l'antenna è "corta" corta rimane e il condensatore può solo "accorciare" l'antenna,   smiley-mad
questa frase non ha molto senso, almeno io non l'ho capita ... perchè anche se l'antenna è corta (rispetto alla lunghezza d'onda del segnale che l'alimenta) la si può portare a risonanza aggiungendo un induttanza in modo che la rettanza capacitiva dell'antenna raccorciata sia compensata da una pari reattanza induttiva (aggiunta),  e questo lo fa anche l'accordatore .. diverso è parlare di rendimento dell'antenna .. che se è molto più corta (rispetto alla lunghezza d'onda) sarà sempre limitato..

ciao
20  International / Software / Re: [OT] richiesta di aiuto per programmino x Accordatore on: October 21, 2013, 03:33:12 pm
ciao a tutti ....
anche a me, qualche anno  fà , mi venne in mente questo accrocchio.. ed ho anche comprato un pò di HW, ho due condensatori variabili motorizzati, acquistati su ebay dal recupero di un accordatore automatico defunto...  ho diversi condensatori variabili idonei (smontati da accordatori manuali defunti) , ed ho anche acquistato due servomotori con una coppia suffciente a movimentari i condensatori di cui sopra ...

mi pare sia chiaro ormai come dovrebbe essere questo schema:

L'accordatore tipico, con lo schema a pigreco, ha questa configurazione:
http://www.ariroma.it/docs/projects/p_greco_rev01.pdf
cioè una linea di trasmissione con due capacitè variabili ed una induttanza, anch'essa  variabile, appunto disposti a pigreco ..

per poter affetuare l'accordo, ovvero il massimo trasferimento di energia,  occorre inserire un dispositivo in grado di rilevare quando non c'è l'accordo medesimo, ovvero un dispositivo come questo:
http://fucimin.altervista.org/swrmeter.html
o questo
http://www.ariroma.it/docs/projects/ros_tor.pdf
comunemente chiamato rosmetro. Cè ne sono di diversi tipi, tutti cercano di separare la componente diretta dell'onda irradiata, dalla componente riflessa che torna indietro dopo la riflessione sul carico mal adattato.
ne esistono anche di altro tipo, a ponte di wheatstone etc... In laboratorio si usa l'accoppiatore direzionale, in grado di separare con un elevato valore di disaccopiamento le due componenti...
Se non è molto sensibile, occorrerà una potenza minima RF di 1 o 2 W affinchè le tensioni diretta e riflessa siano apprezzabili ..
se il rosmetro è a ponte di Wheatstone bastano pochi milliwatt di potenza RF per avere tensioni diretta e riflessa apprezzabili, pero ha lo svantaggio che non lo si può lasciare inserito perchè una delle R del quadrilatero del  ponte rimane inserito nella linea causando un'assorbimento di potenza... (cercate uno schema di rosmetro a ponte di Wheatstone)..
.. ma per il nostro fine basta e avanza un rosmetro anche autocostruito...

Quindi:
 avendo una linea di trasmissione terminata sul carico, normalmente un'antenna,
alimentando la linea con un segnale RF ad una determinata frequenza non siamo in grado di conoscere l'impedenza di risonanza dell'antenna,
ma possiamo desumerne il disaccordo leggendo i valori della tensione diretta e riflessa e calcolando il ROS (SWR .. in inglese).

la logica dovrebbe essere questa (sto cercando di ricordare qualcosa studiato molto tempo fa..):
- si mettono i condensatori a metà della posizione;
- cerca la posizione sull'induttanza variabile per il minimo ROS..
- quindi si affina l'adattamento ruotando il condesatore variabile lato tensione diretta per leggere il massimo valore di tensione diretta ...
- quindi  si ruota il condensatore variabile sul lato tensione riflessa per cercare il minimo valore di tensione riflessa
ma si può anche invertire l'ordine e forse un procedimento automatico lì può anche fare contemporaneamente ...
il procedimento è iterativo, ed in due o tre passaggi si ottiene l'adattamento pressochè perfetto (sempre che la possibilità di escursione delle capacità disponibili sia sufficiente per tutte le frequenze alle quali vogliamo operare ...

Gli accordatori commerciali (anche quelli automatici) hanno un'impostazione manuale che prevede l'impostazione della banda sulla quale operare
- 1.8 Mhz basso
- 1.8 Mhz alto
- 3,5 Mhz
- 7,1 Mhz
- 10 Mhz
- 14 Mhz
- 18 Mhz
- 21 Mhz
- 24 Mhz
- 28 Mhz
a ciascuno dei quali corrisponde l'impostazione dell'indutanza L via via decrescente
Alcuni accordatori automatici rilevano la banda su cui è sintonizzato l'RTX atraverso un sistema di codifica ed un cavetto di comunicazione radio<-->accordatore ...
Come si cambia la sintonia, anche di poco, l'accordatore automatico segue la radio aggiustando l'accordo "fine" muovendo i due consentori varabili all'abbisogna ...

e qui viene il primo suggerimento.. se si potesse implementare il frequenzimetro di Michele si potrebbe rilevare la frequenza ed automaticamente inserire la giusta induttanza ... lasciando l'accordo fine alla ricerca del massimo/minimo delle tensioni diretta/riflessa ....

si potrebbe, una volta trovato l'accordo, memorizzare la posizione di (induttanza, C1 e C2, associata alla frequenza), quindi con un condensatore servito da un servomotore ottenere un'accordo velocissimo, forse meglio di molti accordatori commerciali ...

comunque alcuni anni fa ho provato a codificare l'algoritmo di ricerca del massimo e del minimo di due valori .. poi ho abbandonato ma se ci lavoriamo per fare una bella cosa riprendo anche io ...

qui allego lo script che avevo scritto io.. ormai nel lontano gennaio 2011, con la IDE 022
lo script era per dei condensatori motorizzati da usarsi con un motor shield .. non con dei servomotori ...
se ho scritto castronerie grosse scusatemi....
ciao
21  International / Software / Re: TELECOMANDO DTMF on: October 20, 2013, 08:43:09 am
bravo SID...
22  International / Generale / Re: Posta inviata???? ... ma dovè??? on: October 18, 2013, 10:13:51 am
ah.. ok.. grazie... non mi ero accorto di questa opzione ...
23  International / Generale / Posta inviata???? ... ma dovè??? on: October 18, 2013, 06:41:57 am
Scusate ma tra i messaggi inviati nella mia sezione "Messages" io mi ritrovo solo i messaggi ricevuti e nessuo di quelli inviati.

Sto toppando qualcosa io .... o si tratta di un bug dello script del forum?????

cosa mi dite???

Saluti a tutti dopo molti mesi...
24  International / Hardware / Display 640 * 240 on: February 25, 2013, 03:21:59 pm
... salve ...
... ho smontato un vecchio fotocopiatore da buttare in discarica ed ho recuperato, tra le altre cose, questo display .. (visto dal lato PCB)




che si basa su questo integrato: http://www.tstonramp.com/~pddwebacc/ics_app%20notes/hitachi/HD66206.pdf

guardando un pò il pcb, per quello che riesco a capire, mi pare che sia esattamente usato con lo schema riportato a pagina 155 del datasheet
..

sul pcb ci sono 14 pin per il controllo ..

qualcuno mi sa dire se è utilizzabile con arduino e se si come??? ...

comunque datemi la vs opinione al riguardo..
grazie ciao

25  International / Software / Re: precompilazione in modo diverso di parti di codice..... on: February 13, 2013, 12:16:35 pm
grazie lesto e astro... stasera mi leggo qualcosa... ciao
26  International / Software / Re: precompilazione in modo diverso di parti di codice..... on: February 13, 2013, 03:39:02 am
grazie astro....
ed esiste qualcosa per fare un if else endif??? ... vabbè ma non è importante posso fare come dici tu.. grazie...


27  International / Software / precompilazione in modo diverso di parti di codice..... on: February 13, 2013, 02:10:49 am
scusate il titolo del topic che sicuramente è poco chiaro...

provo a spiegarmi:

dovrei compilare parti di codice in modo diverso a seconda che una variabile, già definita e valorizzata prima, abbia un valore oppure un altro ... più o meno cosi:

Code:
#define id_micro '1'         // assegno alla variabile id_micro il valore '1'
// #define id_micro '2'         // assegno alla variabile id_micro il valore '2'

poi vorrei che compilasse così

Code:
      #if(id_micro = '1') // compila  blocco istruzioni 1
      blocco istruzioni 1;
      #endif   

oppure così

Code:
      #if(id_micro = '2') // compila  blocco istruzioni 2
      blocco istruzioni 2;
      #endif   

non so se mi sono spiegato.. insomma devo mettere lo stesso codice su due micro ma deve essere compilato in modo diverso su un micro rispetto all'altro..  e la differenza la introduco attivando questa linea
#define id_micro '1'         // assegno alla variabile id_micro il valore '1'
o quest'altra
#define id_micro '2'         // assegno alla variabile id_micro il valore '2'

ogni suggeriemnto e più che gradito.. mi piacerebbe anche capire se si puo fare qualcosa tipo

     #if(id_micro = '1') // compila  blocco istruzioni 1
       ... blocco istruzioni 1
     #else if (id_micro = '2')
      blocco istruzioni 2;
      #endif   

grazie e ciao
28  International / Software / Re: convertire un intero in una stringa ... on: January 24, 2013, 08:15:05 am
Se i due pin, quello inserito dall'utente e quello memorizzato, sono entrambi numeri senza segno, non faresti prima a confrontarli direttamente come tali ?
Code:
unsigned int enteredPin = atoi(char_DTMF_buffer);
unsigned int  storedPin = ((EEPROM.read(6)) | (EEPROM.read(7)<<8));
passBool = enteredPin == storedPin

No. Il numero inserito proviene dalla decodifica di un tono audio, che costruisce i caratteri uno per uno, ricevendoli e decodificandoli char per char, che io metto in una stringa ...
mentre il PIN memorizzato in due byte di eeprom è un intero (0 - 65535),  che ricostruisco così quando lo leggo: unsigned int  storedPin = ((EEPROM.read(6)) | (EEPROM.read(7)<<smiley-cool);
anche se io lo chiamo passPIN...

potrei al contrario, fare così: unsigned int enteredPin = atoi(char_DTMF_buffer); .. ma a parte che nel  buffer cè anche altra roba, il PIN è costituito solo i primi char del buffer..

anzi forse tu intendi dire che anzicchè convertire in String il PIN memorizzato dovrei fare il contrario e trasformare in numero intero il pin ricevuto come sequenza di char dal decoder DTMF .. si potrei fare anche così ma in questo caso non potrei usare un pin composto sempre da 5 caratteri con degli zero iniziali..
insomma preferisco lavorare con le stringhe, in questa fase... non ho problemi di RAM...uso un 644

ma soprattutto che significa
Code:
intPIN = ((EEPROM.read(6)) | (EEPROM.read(7)<<8));  //legge il  PIN compreso tra 00000 e 65535 dalla eeprom;
in ogni cella della eeprom ci scrivi un byte, il numero del pin non supera certo il 255, perchè usi l'intero?
come detto sopra, uso due byte perchè ho deciso di usare un PIN composto da 5 cifre, compreso tra 0 e 65535 ... ok?

nonmmi sembra che ci siano errori di conversine di tipo di dato. .... comunque funziona bene. A parte la lettura del pin dalla eeprom che sto implementando adesso, tutto il resto sta funzionando ormai da qualche mese... prima il pin era misso in una variabile che dichiaravo all'inizio.. adesso la sto mettendo nella eeprom perchp sto implementando la fuznione che permette di cambiarla senza toccare il micro....con un comando via seriale che arriva da un'altro micro che si occupa dell'http.... ma questo è una'ltra storia.. adesso mi va benissimo che funzioni la lettura del pin dalla eeprom ed il relativo riconoscimento ..
ciao grazie..

ah tux... non ho capito bene quest'ultimo l'esempio che hai digitato per verificare errori di cast .. ma stasera appaena posso lo metto sull'IDE..
ri_ciao






29  International / Software / Re: convertire un intero in una stringa ... on: January 24, 2013, 02:23:33 am
Ciao Pablos

non sò perchè ma questo:
Es:
Serial.println("mia stringa " + (String)intA);
uscita "mia stringa 123"
invece di mia stringa ci metti 0
keyPIN = "0" + String(intPIN);

non funziona.... cioè compila, ma poi mi blocca il micro....

se faccio questo
keyPIN = "0" + String(intPIN) + "/0";
di nuovo, compila, apparentemente il micro funziona, perchè tutto il resto funziona... ma non mi funziona il riconoscimento del pin....


comunque ho risolto così:
Code:
  unsigned int  intPIN = ((EEPROM.read(6)) | (EEPROM.read(7)<<8));         // legge il  PIN compreso tra 00000 e 65535 dalla eeprom;
           char bufferPIN[6];
           String passPIN;    // PIN in formato stringa
           for (int i=String(intPIN).length(); i<5 ; i++){ passPIN += "0";} // aggiunge eventuali zero
           passPIN += (String)intPIN; // acquisisce il PIN
           // Serial.print (passPIN);

           // cerca la password nei primi passKey.length() caratteri
           passBool = (char_DTMF_buffer.substring(0, passPIN.length()) == passPIN);
questo di sopra è l'utilizzo completo di ciò di cui avevo bisogno, in particolare:

prima aggiungo gli zeri che mi servono con questa istruzione:
passPIN += "0";

poi aggiungo il PIN vero e proprio, convertendolo da intero a stringa:
passPIN += (String)intPIN;

adesso non ricordo se ho propvato anche questo:
passPIN += String(intPIN);

comunque funziona benissimo
poi faccaio il riconoscimento del codicePIN nel comando ricevuto con l'istruzoine successiva...

grazie
ciao



30  International / Software / Re: convertire un intero in una stringa ... on: January 23, 2013, 12:34:14 pm
vi chiedo scusa .. ma qui non ho com me l'ide ne il micro per fare le prove..

io converto l'intero in una stringa correttamente facendo così:
String keyPIN;
int intPIN = 123;

keyPIN = String(intPIN);

e fin qui va tutto bene..
adesso devo anteporre alla stringa keyPIN che ha assunto il valore "123" uno zero, un char '0', mettere quindi nella stessa stringa keyPIN  prima '0', poi "123" .. per ottenere questo "0123" ....

non sono riuscito a concatenare due stringhe mettendole nella stessa variabile di prima cioè vorrei fare:
keyPIN = '0' + keyPIN;
oppure
keyPIN = '0' + String(intPIN);
ma nessuna di queste due forme compila....
per adesso non devo stampare nulla devo semplicemente anteporre degli zeri davanti ad una stringa, non un vettore di char,  quando questa e composta da meno di 6 caratteri numerici.... non so me'rendo!!!

stasera dopo cena potro riprovare .. scusate se vi sto annoiando... sono fuso .....porka miseria ....
ciao






Pages: 1 [2] 3 4 ... 17