[OT] richiesta di aiuto per programmino x Accordatore

Ciao Leo

Il mio programma non ha attese fra una impostazione e la successiva.

A questo proposito mi avevi suggerito di inserire alla riga 59 un ritardo

Ma il programma era una bozza, doveva servirti per poterti permettere di lavorarci sopra in autonomia. Mi sembra di capire però che di programmazione sei messo maluccio, quindi non hai sviluppato niente in più giusto?

Le mie capacità come programmatore sono pari ZERO :blush: :blush: :blush:

Se mi dici come si deve comportare il programma, potremmo vedere di modificarlo. Puoi inserire uno o due pulsanti, sul tuo circuito? Ne potremmo usare uno per avviare/far ripartire la procedura d’accordatura, ad esempio.

Sicuramente possiamo utilizzare un paio di pulsanti, direi di collegarli agli ingressi analogici A3 e A4.

Ricapitoliamo il tutto:

  1. leggere i due segnali con range 0 - 5v su A1 e A2
  2. applicare la formula di calcolo del ROS
  3. se valore ROS <= del valore impostato, non fare nulla
  4. se valore ROS > al valore impostato, attivare le uscite “L” per inserire in serie all’antenna delle induttanze, dopo ogni inserimento di una uscita, inserire piccolo ritardo al solo scopo di visualizzare al meglio il funzionamento del sistema, deve essere rifatta la lettura ed il calcolo del ROS, fino al reggiungimento del miglior valore di ROS possibile
  5. quando all’inserimento dell’ultima combinazione di relè il valore di ROS sale, invece che scendere, si deve tornare alla combinazione precedente.

finito di attivare le uscite “L” si passa alle uscite “C” ma direi che della cosa ne possiamo parlare più avanti, il procedimento è lo stesso salvo fare una scelta, se attivare o meno un’uscita, una volta inserito il primo scalino.

Campa1957

Domani ci penso su.

Mi permetto di aggiungere ancora una cosa a quanto detto sopra.

La versione finale dovrebbe essere pensata per 8 uscite "L" + 8 uscite "C" + 1 uscita selezione punto inserimento condensatori + 1 uscita Accordo OK.

Arduino UNO rev.3 redo che permetta di utilizzare come uscite anche una parte degli ingressi anaogici ?!?

Campa1957

Usando l'Arduino la cosa si complica perché le uscite PB6 e PB7, che permetterebero di manipolare direttamente le porte del microcontrollore, sono occupate dal risonatore. Andrebbe rivisto il codice rispetto a quello che è ora.

Non voglio assolutamente incasinare troppo il lavoro, andiamo avanti così, come siamo partiti!

Campa1957

In allegato il programmino rivisto.
Ho spostato alcune cose sui pin, anche in risposta allo spostamento su A1/A2 che mi hai detto tu degli ingressi analogici che usi per leggere il ROS. Il led è su A0, ora. Poi metti un pulsante su A3 collegati a massa, non usare resistenze di pull-u che attivo quella interna al pin.

La logica è questa. All’avvio, lampeggia il led in attesa della pressione del pulsante per avviare l’accordatura.
Premuto il pulsante, fa l’accordatura con gli induttori, ad intervallo di 1 secondi tra un’attivazione e l’altra. La scansione è scandita dal lampeggio del led. Quando trova l’accordatura giusta, fa 3 lampeggi veloci ed esce e passa all’accordatura con i condensatori. Se vuoi saltare questo passaggio, commenta la chiamata dell’accordatura con i condensatori. Terminata la procedura, torna all’inizio.

PROGRAMMA NON TESTATO, non ho breadboard libere :sweat_smile:
Dimmi se funziona e se fa cosa dovrebbe. Se vuoi usare 8 induttori, possiamo invertire i pin usati, quello non è un problema.

accordatore_antenna.ino (3.75 KB)

Primissima verifica di funzionamento:

senza nuovo led e pulsante, appena caricato il SW parte, arriva ad un punto di accordo, aspetta un paio di secondi e ripete il cilclo.

Nel pomeriggio cerco un pulsante e un led e li collego per continuare le prove.

Campa1957

Inserito Led, sempre senza pulsante collegato.

confermo che quando arriva a quello che vede come punto di accordo si ferma, il led lampeggia ad un'altra frequenza, e dopo un paio di secondi resetta le uscite e riparte da ZERO. Quando ha trovato il primo punto 'di accordatura' [u]non[/u] deve disabilitare le uscite ma lascire tutto come ha calcolato fino a quel momento, e poi passare ad inserire i condensatori.

Adesso provo a spiegare la mia idea su cosa dovrebbe fare quando ha sistemato la parte "L"

1) leggere i due segnali in ingresso e calcolare il nuovo ROS e memorizzarlo 2) inserire il primo scalino della serie "C" 3) una volta attivata la prima uscita della serie "C" leggere e calcolare il nuovo valore di ROS 4) attivare un'uscita che non fa' parte di nessuno dei due gruppi "L" e "C" 5) Verificare se ultimo valore di ROS dopo l'inserimento della nuova uscita è sceso oppure salito 6) se è sceso lasciare inserita l'uscita e fare lo stesso giro di calcoli con la serie "C" 7) se è salito disabilitare nuova uscita e fare lo stesso giro di calcoli con la serie "C"

Spero di essere stato almeno comprensibile nelle mia descrizione.

ciao

Campa1957

Lo sketch precedente aveva una parte del vecchio 1.0 che non avevo cambiato e che di dovrebbe aver dato quei problemi iniziali.
Vediamo se così ora va la logica. Parte, lampeggia ed aspetta il pulsante. Premendolo, inizia la taratura con gli induttori. Trovata la taratura, aspetta la pressione del pulsante mentre lampeggia il led.

Se così va bene, poi passiamo al resto delle tue richieste.

accordatore_antenna.ino (2.32 KB)

Ho caricato il SW sulla scheda di Arduino, il comportamento è sempre uguale, una volta raggiunto il valore 'di accordo' resetta le uscite. Non deve farlo!

Per chiarezza spiego come faccio le prove 'in bianco', senza RF. 1) trimmer multigiri collegato fra 0V e +5V con cui imposto la tensione per la misura della potenza diretta, quella che va in antenna. 2) partitore resistivo con il quale all'inserire delle varie uscite, relè che aprono il loro contatto, la tensione della potenza riflessa scende.

Campa1957

Proverò a casa simulando sulla seriale.

x Leo72

Dimmi se funziona e se fa cosa dovrebbe. Se vuoi usare 8 induttori, possiamo invertire i pin usati, quello non è un problema.

mi era sfuggita questa parte del tuo messaggio, l'deale sarebbe 8L+8C oppure anche 7+7 però se la cosa incasina particolarmente il lavoro, non c'è probema, andiamo avanti così. Sempre ricordando che oltre alle uscite L e C ci deve essere una uscita per la selezione di dove inserire i condensatori e una uscita che segnala il raggiungimento dell'accordo, direi, Led fisso valore di ROS ottenuto, Led lampeggiante veloce valore di ROS non raggiunto,e Led lampeggiante lento durante le prove di accordo.

Campa1957

x iscrizione

Testato: x iscrizione

Test, una domanda seria, ho imparato anchio ad usare i replies, almeno in prima battuta o quando ho poco tempo, ora però ci sono dei Topic verso i quali nel tempo ho perso interesse, attualmente li lascio per ultimi e poi li segno come già letti, sai se c'è un modo per non farli più uscire? Ovviamente non voglio eliminare tutti i miei post in questi Topic, non sarebb nemeno corretto.

Ciao Michele,

spero tu non abbia perso interesse verso questo Topic :) :) :)

salutoni

Campa1957

@campa: oggi sono a lavoro, vedrò se ho del tempo libero di darci un'occhiata.

PS: mi sono accorto che lo sketch che ti ho allegato per ultimo non è la versione 1.2 ma nuovamente la 1.0 :astonished:

Vabbè, comunque, ora lo rivedo e poi te lo ripasso.

Un piccolo chiarimento,

  • il PRG si avvia per un valore di ROS superiore ad una soglia pre impostata ???

  • Il PRG si ferma per il raggiungimento del miglior valore possibile di ROS oppure per aver raggiunto il valore di soglia pre impostato ???

  • per la prima domanda penso di essere sicuro che il ciclo inizi se il calcolo fatto con la prima lettura è maggiore del valore impostato.

  • per la seconda domanda, a mio avviso, il PRG dovrebbe sempre cercare il miglior valore di ROS, fermasi dopo i vari tentativi lasciando inserite tutte le uscite che ha inserito nei suoi calcoli, e con il Led che abbiamo inserito in questa ultima parte di lavoro segnalare accordato non accordato.

L'ultima versione (che tu non hai) faceva una lettura prima di avviare l'accordatura: se il ROS era giusto ovviamente non avviava la procedura.

Ah, stavo rifacendo i conti dei pin. Li abbiamo finiti e resta fuori qualcosa.. 8+8 per condensatori e induttori, poi 2 analogici per le letture, poi 1 led, poi un'uscita ed un pulsante. 21 in tutto su 20 disponibili. O si elimina il pulsante oppure devi rivedere lo schema ed usare magari una coppia di ULN2803 comandati da una coppia di 74HC595.

O si elimina il pulsante oppure devi rivedere lo schema ed usare magari una coppia di ULN2803 comandati da una coppia di 74HC595.

Direi di eliminare il pulsante, comunque i 2803 li ho già usati anche in questo schema per i 74HC595 se servono posso studiare il loro funzionamento, sicuramente il loro utilizzo potrebbe pormettere futuri sviluppi "futuribili" di questo progetto, (vedi un cambio banda utomatico). Se rititeni che il loro utilizzo non complichi troppo la parte SW, per me andrebbe bene.

La cosa potrebbe funzionare così: 1) partenza all'accensione o al reset, senza nessun pulsante di start 2) calcolo della "L" 3) calcolo su dove inserire "C" 4) calcolo della "C" 5) temporizzazione se in un numero definito di secondi non accorda si ferma, Led lampeggia veloce, lascia inserite tutte le uscite comunque per il miglior ROS, in questa condizione non è arrivato all'accordo ma la situazione per il TX è sicuramente meglio di prima! 6) se il ROS varia, possono essere vari i motivi, compreso un cambio banda, si riparte dall'inizio. Questo lo deve fare sempre!

Campa1957