Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Progetto arduino spot welder...ma non ne vengo fuori.

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[41] Re: Progetto arduino spot welder...ma non ne vengo fuori.

Messaggioda Foto UtenteFabiano71 » 14 lug 2018, 21:07

Ma si tratta di una questione di stile o di correttezza procedurale? Perché purtroppo mi mancano i fondamentali, la “grammatica” di base per cogliere queste differenze... quello che ho capito è che sono intervenuto a gamba tesa per ottenere un risultato quando esiste un modo più elegante proprio della programmazione. Mi suggerisci quindi di fare qualche nuova prova modificando lo sketch. Va bene, lo faccio molto volentieri, ma potresti commentare i define che mi suggerisci cosicché possa provare a capire cosa sto facendo? :mrgreen: grazie
Avatar utente
Foto UtenteFabiano71
40 1 4
Frequentatore
Frequentatore
 
Messaggi: 158
Iscritto il: 3 lug 2018, 15:04

0
voti

[42] Re: Progetto arduino spot welder...ma non ne vengo fuori.

Messaggioda Foto Utentexyz » 14 lug 2018, 22:28

Semplificando nel linguaggio di programmazione usato dalle API di Arduino è possibile creare oggetti in base a dei parametri. Questi parametri possono essere espliciti, ci devono essere per forza o impliciti, se manca viene preso un valore di default.

Quello che hai fatto è modificare il valore di default negli include di una libreria esterna, se viene aggiornata o se viene compilato il sorgente in un ambiente che non ha questa modifica il codice continua a non funzionare.

Specificare il valore desiderato durante la costruzione dell'oggetto rende il tutto più corretto e pulito.

Se vuoi un commento al define il primo che mi è venuto in mente simile a quelli presenti nella libreria:

Codice: Seleziona tutto
...
#define SPN 4       // use stepsPerNotch = 4
...
...
encoder = new ClickEncoder(A1, A0, A2, SPN);
...


Se non ti piace "SPN" poi usare qualsiasi altro nome non usato da nessuna altra parte, ad esempio "STEPS_PER_NOTCH" (per convezione i define sono maiuscoli).
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[43] Re: Progetto arduino spot welder...ma non ne vengo fuori.

Messaggioda Foto UtenteFabiano71 » 14 lug 2018, 22:46

Grazie sei stato chiarissimo! Ho capito perché modificare la libreria non è corretto, è solo un escamotage momentaneo. Più tardi, se non mi si addormenta il cervello, applico le modifiche allo sketch come mi hai suggerito :ok:
Buona serata :-)
Avatar utente
Foto UtenteFabiano71
40 1 4
Frequentatore
Frequentatore
 
Messaggi: 158
Iscritto il: 3 lug 2018, 15:04

0
voti

[44] Re: Progetto arduino spot welder...ma non ne vengo fuori.

Messaggioda Foto UtenteFabiano71 » 14 lug 2018, 23:30

Perfetto! Avevi ragione. Come sempre. :D
Appena ho un attimo rimetto in piedi la breadboard con il progetto del controller dello spot welder, sperando che in quello sketch si possano applicare le stesse soluzioni che abbiamo trovato qui senza generare errori di compilazione! Incrocio le dita.
ciao
Avatar utente
Foto UtenteFabiano71
40 1 4
Frequentatore
Frequentatore
 
Messaggi: 158
Iscritto il: 3 lug 2018, 15:04

4
voti

[45] Re: Progetto arduino spot welder...ma non ne vengo fuori.

Messaggioda Foto UtenteFabiano71 » 15 lug 2018, 11:43

ciao a tutti, volevo aggiornarvi riguardo l'applicazione di ciò che abbiamo scoperto in questi giorni applicandolo al progetto originario dello spot welder.
Diciamo che in prima battuta, giusto per capire se l'idea di base della modifica del valore StepsPerNotch fosse il mio problema, ho modificato il valore direttamente dalla libreria...
Quando però mi son messo a leggere per bene le righe di codice dello sketch, mi sono balzate agli occhi queste righe:
    // less likely one may want to change these, but here they are
    // pin assignments
    # define WELDBUTTON 2
    # define WELDLED 11
    # define OPTO 12
    # define ENCBUTTON A1
    # define ENCLEFT A2
    # define ENCRIGHT A3

Sono subito andato a rivedere lo schema pubblicato dall'autore in cui riporta le connessioni tra Arduino e i vari componenti. J2 è il nostro encoder, che nel suo caso incorpora il led collegato al pin D11 che io ho invece separato. Potrete vedere che i pin menzionati sullo schema qua sotto (A0, A1 e A2) sono diversi da quelli dichiarati nello sketch (A1, A2 e A3):

Immagine

Quindi ho riportato al valore corretto il StepsPerNotch della libreria e ricollegato secondo quanto appreso e...funziona tutto correttamente. Chiaramente ora mandero un messaggio privato all'autore per capire se la cosa era stata notata o meno, soprattutto a beneficio di chi arriverà a leggere il suo progetto dopo di me e dovesse incappare nello stesso scoglio.
A questo punto è probabile che tra le righe del codice (non saprei quali) sia già presente la correzione che mi proponevo di applicare, altrimenti non mi spiegherei come, con la stessa libreria, l'encoder abbia questo comportamento così diverso.

In conclusione direi: qualche volta seguire pedissequamente delle istruzioni non è la scelta migliore. Quando poi si crede di aver trovato la soluzione (tutte le nostre prove con lo sketch di prova della libreria) si scopre che invece è un briciolo di sana diffidenza a dare il miglior aiuto! :D
Se avessi letto con piu attenzione lo sketch forse mi sarebbe saltato agli occhi prima questa incongruenza (lucaking credo che me lo direbbe :-) ) ma forse non avrei avuto l'occasione di conoscere alcune persone molto gentili e disponibili di questo forum.

Se la cosa non vi dovesse annoiare cercherò di tenervi aggiornati su come procede il resto del progetto (e magari approfittare della vostra competenza se dovessi trovarmi di nuovo nei guai...).
O_/
Avatar utente
Foto UtenteFabiano71
40 1 4
Frequentatore
Frequentatore
 
Messaggi: 158
Iscritto il: 3 lug 2018, 15:04

0
voti

[46] Re: Progetto arduino spot welder...ma non ne vengo fuori.

Messaggioda Foto Utentepusillus » 16 lug 2018, 6:23

Bravo!
Avatar utente
Foto Utentepusillus
3.207 3 6 11
Master
Master
 
Messaggi: 1031
Iscritto il: 5 mar 2016, 15:19
Località: Latina

Precedente

Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 21 ospiti