Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Circuito da termistore a led

Circuiti, campi elettromagnetici e teoria delle linee di trasmissione e distribuzione dell’energia elettrica

Moderatori: Foto Utenteg.schgor, Foto UtenteIsidoroKZ, Foto UtenteEdmondDantes

1
voti

[91] Re: Circuito da termistore a led

Messaggioda Foto UtenteAldebaran78 » 18 mag 2021, 22:28

drGremi ha scritto:No, niente di fondamentale, era per capire più o meno se potessero esserci particolari criticità. Ma non credo.


Allego la foto anche se non so quanto chiara sia.

drGremi ha scritto:Bisognerebbe individuare la causa della morte di arduino (se è morto per colpa di un corto, per via di una sovralimentazione o per via "naturale"). Hai provato ad alimentarlo a 5V dai pin 5V (o a 3.3V, non mi ricordo la tensione di quello specifico atmega, anzi credo proprio esista in entrambe le versioni)? Così capiamo (forse, mica è detto, è una prova del menga) se è morto il regolatore di tensione interno o il processore?


Appena ho un attimo provo, comunque la scheda sembra funzionare, male ma funziona. Il led rosso va, restituisce 3,5 volt sulle uscite digitali usate e 1,5 sulle altre. Solo il led blu è morto, e con esso la possibilità di caricare un qualsiasi sketch ( ah, il PC lo rileva).


drGremi ha scritto:Comunque io mi procurerei un nuovo cinesone e un regolatore di tensione esterno aggiuntivo per protezione (se il regolatore interno è ciofegoso, almeno si protegge), va bene o un L7812CV, ma anche il classico LM317 con un paio di resistori e capacità.


Ho preso un paio di 328 e vedrò di prendere tutto quanto possa servire per pulire il segnale... Ormai è una questione di principio
Allegati
Screenshot_20210518_222244_com.google.android.apps.docs.jpg
Ultima modifica di Foto UtenteAldebaran78 il 18 mag 2021, 22:40, modificato 1 volta in totale.
Avatar utente
Foto UtenteAldebaran78
35 4
 
Messaggi: 31
Iscritto il: 11 apr 2021, 9:36

2
voti

[92] Re: Circuito da termistore a led

Messaggioda Foto UtentedrGremi » 18 mag 2021, 22:37

Static può essere molto utile per non lavorare con variabili globali. In pratica la variabile è pre allocata e non viene distrutta e creata ad ogni chiamata a funzione. Oltre a quello (che però con le classi del c++ diventa superfluo) ottieni un piccolo miglioramento a livello di prestazioni (ma molto molto piccolo) perché non si trovano nello stack.

stefanopc ha scritto:Venendo dal basso come dicevo sono più portato a lavorare a basso livello magari sui registri direttamente ma mi manca molta parte del conoscenze dei livelli superiori.

Ovviamente la prima cosa da farsi è divertirsi :ok: La seconda cosa è scrivere codice che funzioni. Il codice "bello", se non "balla" è inutile :lol:
Poi cercare il pelo nell'uovo anche serve a poco.

stefanopc ha scritto:Ignoro quali siano le scelte corrette per limitare la complessità del codice.

Eh... bella parola. Non è facile. Sicuramente tra le prime cose (come dicevo anche a Foto Utentelemure64) è usare librerie già pronte (insomma non reinventare la ruota), nel caso non ci siano funzioni crearsi le proprie, possibilmente in file esterni (da includere nel progetto).
Poi non pensare subito all'ottimizzazione. Cioè non partire subito con le variabili globali (ma anche con la label static). Infatti, tralasciando possibili bug (magari una funzione che modifica una variabile globale quando non dovrebbe) rende molto più arzigogolata la lettura del codice (lanci una funzione, ti aspetti ritorni un risultato e invece modifica un valore). Piuttosto usare un puntatore (ma ha senso su grandi oggetti, come gli array).
Tra l'altro la riusabilità delle funzioni viene meno (perché deve esserci quella variabile globale). Dal wiki dello standard iso del C++ viene spiegato come è bene usare una variabile globale: dichiararla con un "//" davanti https://isocpp.org/wiki/faq/coding-stan ... lobal-vars :D
Questo sta per dire che meno si usano e meglio è.

stefanopc ha scritto:mi manca molta parte del conoscenze dei livelli superiori

Quello che si tende oggi è ad astrarre il più possibile. Poi ad ottimizzare ci pensa il compilatore (e decide lui cosa fare in base a quello che conviene, magari una funzione invece di eseguirla come funzione se è breve ce la incolla proprio, vai a capire), cambia l'ordine di esecuzione di alcune parti e molto, molto altro.
Al massimo lavoro di più sul compilatore affinché il codice compilato sia migliore, ma spesso lavorare a basso livello è contro producente (altre volte è l'unica strada). Infatti se dai istruzioni a basso livello il compilatore poco può fare.

stefanopc ha scritto:Ignoro quali siano le scelte corrette per limitare la complessità del codice.

Anche non fare scelte doppie (cioè nel caso specifico imporre degli stati a soglia e poi analizzare gli stati, che tra l'altro non avendo un nome non si sa cosa siano), meglio decidere ed agire subito.
L'ultima cosa è far fare meno cose al codice :oops: Ma alla fine è quello che ho fatto, il sort lo ho proprio dimenticato (non ho scartato i valori massimi e minimi campionati), però già si fa la media, poi (forse non ho visto il datasheet di quel micro) si potrebbe giocare con il prescaler dell'ADC (o mi sa su questo non è possibile). Anche quello è stato un taglio di una 40ina di linee di codice.

E poi alla fine fregarsene di tutto e scrivere. Sai quanta robaccia (molto brutta) ho scritto? E chissà quanta ne scriverò :-)
Avatar utente
Foto UtentedrGremi
1.620 1 4 9
Master EY
Master EY
 
Messaggi: 948
Iscritto il: 20 nov 2019, 19:49

0
voti

[93] Re: Circuito da termistore a led

Messaggioda Foto Utentelemure64 » 19 mag 2021, 9:07

Sono sempre stato d'accordo sul fatto di non reinventare la ruota. Ma su 10 librerie che provo a usare, tra Arduino e desktop, me ne funzionano in media due, forse tre. Di queste, ottimisticamente, tre, almeno una è troppo complessa (una per tutte: boost). Il motivo di questi ostacoli è che o sono sviluppate per Linux e controllate poco e male su windows, oppure richiedono visual studio, sempre la versione che non ho dato che la fortuna è cieca eccetera e ho installate tutte quelle prima delle quali MS obbliga all'account, passo la mano anche su quello. Dato che io uso GCC e vorrei la libertà di non dover linkare staticamente ecco qua un'ulteriore limitazione. Quando va bene, ma molto bene, il compilatore che uso (8 e qualcosa, non è che sono ancorato alla tradizione vetusta...) non è mai quello con cui la libreria è stata sviluppata e se va bene warning come se piovesse.

Le rare volte che va bene, si è creata una dipendenza da una specifica versione di libreria sotto specifica versione di compilatore e tante altre cose. E questo è proprio l'opposto del senso di utilizzare librerie. Ncurses non mi ha mai compilato, la libreria Poco (malissimo documentata ma proprio quello che desideravo) non compila con GCC in Win, i vari workarounds in rete prevedono di mettere le mani nel codice e questa è una cosa che per principio non farò mai (BTW: ci ho provato e non ha compilato lo stesso perché voleva GCC 6, se ricordo bene).

Quindi nello specifico caso di uno come me, dilettante della programmazione, che usa GCC in windows e non sa usare visual studio o qualsiasi altra cosa che non sia a linea di comando, è tagliato fuori dalla possibilità di sviluppare tante cose che devono incastrarsi tutte tra loro. Lo so, ci si dovrebbe aggiornare, gli IDE sono comodissimi eccetera. Ma informaticamente sono nato che erano in uso le schede perforate e anche il più semplice IDE invece di sollevarmi dai problemi non fa altro che impedirmi di pensare per la confusione che vedo sullo schermo. Ho una mente rigida se vuoi, abitudinario e tutti i difetti che si vuole, ma non essendo la programmazione la mia professione, se trovo la libreria che funziona la uso, se non la trovo ed è possibile re-inventare una ruota almeno di scorta lo faccio (per esempio mi sono scritto un'astrazione del filesystem: boost ce l'ha ma boost è la classica ruspa per uccidere la mosca e ci ho messo più tempo a cercare di capire quella sezione di quanto ce ne sia voluto per scrivere da zero), se vedo che è un gioco che non vale la candela, allora coltivo altri miei hobby.

Forse qualcuno ricorderà del mio progettino che sto portando avanti su arduino. Se posso dirlo sta crescendo benino e di proposito ho scelto un'area applicativa dove le uniche cose che servono sono il tempo in millisecondi, e lettura e scrittura dei PIN. Queste tre funzionalità sono state accuratamente wrappate e isolate in un folder del progetto in cui proliferano #ifdef e simili, nella speranza di aver creato un'infrastruttura che renda facile eventuale porting. Mi sarebbe piaciuto incorporare funzionalità ricorrenti per la temporizzazione ma non voglio toccare gli interrupt, questo per dire quando rifuggo dalla dipendenza da uno specifico contesto :D

Ormai, data la forsennata voglia di cambiare ogni cosa, sempre, e a scadenze sempre più frequenti e l'avvicendamento di complilatori e versioni librerie, usare una libreria quando l'obiettivo è avere qualcosa di stabile è roba solo per professionisti o comunque persone molto più capaci di me. E questo è parte di un discorso più ampio, lo stesso problema all'origine del "fallimento" del concetto del Web. Invece di perseguire la stabilità e la compatibilità si fa l'opposto e questo ha distrutto la "middle class" della popolazione informatica. Stanno rimanendo u-tonti e professionisti capaci, con sempre meno figure intermedie. Tra parentesi considero questo trend generalizzato l'origine dei mali del mondo, e lo si vede non solo nella piega che sta prendendo l'economia mondiale ma anche in queste piccole cose.
Avatar utente
Foto Utentelemure64
680 3 6
Stabilizzato
Stabilizzato
 
Messaggi: 386
Iscritto il: 23 giu 2020, 12:26

0
voti

[94] Re: Circuito da termistore a led

Messaggioda Foto UtentedrGremi » 19 mag 2021, 11:45

Aldebaran78 ha scritto:Allego la foto anche se non so quanto chiara sia.

Poco perché hai fatto lo screen da smartphone e se faccio lo zoom vedo i pixel :D

Aldebaran78 ha scritto:Appena ho un attimo provo, comunque la scheda sembra funzionare, male ma funziona. Il led rosso va, restituisce 3,5 volt sulle uscite digitali usate e 1,5 sulle altre. Solo il led blu è morto, e con esso la possibilità di caricare un qualsiasi sketch ( ah, il PC lo rileva).

Mhhh, mi sa è andata

Aldebaran78 ha scritto:Ho preso un paio di 328 e vedrò di prendere tutto quanto possa servire per pulire il segnale... Ormai è una questione di principio

Ma è switching? Non ho capito quale sia, lm328? Non lo trovo.

lemure64 ha scritto:Il motivo di questi ostacoli è che o sono sviluppate per Linux e controllate poco e male su windows

Non ho capito il problema. Mica le devi compilare per windows, ma per arduino. Il compilatore gcc non si dovrebbe fare troppi problemi. Forse ti riferisci ad altri programmi?

lemure64 ha scritto:vorrei la libertà di non dover linkare staticamente

Questa è la prassi che si usa sempre più spesso. Con tutti gli enormi difetti che si porta, ma ti evita un sacco di casini.

lemure64 ha scritto:data la forsennata voglia di cambiare ogni cosa, sempre, e a scadenze sempre più frequenti e l'avvicendamento di complilatori e versioni librerie, usare una libreria quando l'obiettivo è avere qualcosa di stabile è roba solo per professionisti o comunque persone molto più capaci di me

Purtroppo a volte si usano comunque le vecchie versioni (a me è capitato di farlo) perché ancora non mi ero studiato le api della nuova libreria (che avevano cambiato rompendo tutto). Ad alcuni piace cambiare ed è un grosso problema (molto sentito in ambito enterprise), per questo si fa la porcata spesso di compilare tutto statico e va******, eseguibile gigante, ma almeno funziona ovunque. https://lore.kernel.org/lkml/CAHk-=whs8 ... gmail.com/
Avatar utente
Foto UtentedrGremi
1.620 1 4 9
Master EY
Master EY
 
Messaggi: 948
Iscritto il: 20 nov 2019, 19:49

0
voti

[95] Re: Circuito da termistore a led

Messaggioda Foto Utentelemure64 » 19 mag 2021, 12:17

Sì, mi riferisco alle librerie in generale. Di solito guardo sempre il nome del subforum per tarare la mia risposta e mi pareva che il discorso fosse a sua volta a carattere generale. Poi sono entrato nello specifico, avendo fatto prima la premessa del perché per il mio personale contesto una libreria è essenzialmente una specie di desiderio astratto e non qualcosa che posso usare in un numero decente di occasioni.

Purtroppo anche quella della compilazione statica sta diventando una pessima cosa. L'installer di Skype prende 120 e passa MB, il tutto per ricreare quell'orrore di odierne interfacce flat senza bordi alle finestre, a colori piatti e dal design troppo semplificato e triste che mi rende inviso win 10. Mentre con molto meno, almeno sul mio windows 7, poteva usare le widget native e difatti i precedenti installer erano una manciatina di MB. Però capisco i grossi vantaggi della compilazione statica, al SO si richiedono assai meno cose.
Avatar utente
Foto Utentelemure64
680 3 6
Stabilizzato
Stabilizzato
 
Messaggi: 386
Iscritto il: 23 giu 2020, 12:26

1
voti

[96] Re: Circuito da termistore a led

Messaggioda Foto Utentestefanopc » 19 mag 2021, 12:39

drGremi ha scritto:L'ultima cosa è far fare meno cose al codice :oops: Ma alla fine è quello che ho fatto, il sort lo ho proprio dimenticato (non ho scartato i valori massimi e minimi campionati), però già si fa la media, poi (forse non ho visto il datasheet di quel micro) si potrebbe giocare con il prescaler dell'ADC (o mi sa su questo non è possibile). Anche quello è stato un taglio di una 40ina di linee di codice.

E poi alla fine fregarsene di tutto e scrivere. Sai quanta robaccia (molto brutta) ho scritto? E chissà quanta ne scriverò :-)


Be se per una causa qualsiasi arriva un valore molto diverso dai precedenti è giusto secondo me fare in modo che il micro decida di scartare il valore " sospetto ".
Magari invece di fare ordinamento dell'array si può semplicemente fare coi relativi puntatori.
Alla fine hai una tabella con l'elenco dei puntatori.
A quel punto fai la media di quello che ti interessa tralasciando il resto.
Potrebbe essere un approccio diverso.

Riguardo le librerie statisticamente funzionano bene.
Io ho provato per lo più quelle che servono per interfacciare i display e altre piccole periferiche.
Ce ne sono tante basta scegliere quella che si adatta meglio alle tue esigenze.
Il problema è se non c'è nessuna libreria e devi gestire un chip che parla solo se gestisci correttamente il Crc 15 che va mandato al termine di ogni comando.

In questo caso basta avere quei cinque o sei mesi da dedicarcisi tutte le sere.
Ecco l sei chip di cui parlo alloggiati sulle rispettive schede.
20191128_235926_resized.jpg



Ciao
600 Elettra
Avatar utente
Foto Utentestefanopc
5.558 2 7 12
Master
Master
 
Messaggi: 1741
Iscritto il: 4 ago 2020, 9:11

0
voti

[97] Re: Circuito da termistore a led

Messaggioda Foto Utentenicsergio » 19 mag 2021, 14:03

stefanopc ha scritto:se per una causa qualsiasi arriva un valore molto diverso dai precedenti è giusto secondo me fare in modo che il micro decida di scartare il valore " sospetto ".
Magari invece di fare ordinamento dell'array si può semplicemente fare coi relativi puntatori.
Alla fine hai una tabella con l'elenco dei puntatori.
A quel punto fai la media di quello che ti interessa tralasciando il resto.


quando devo mantenere le cose semplici di solito faccio una media mobile, nessun array e nessuna iterazione, ma leggo un valore ad ogni ciclo e tengo aggiornata la media mobile


drGremi ha scritto:ti conviene usare un altro editor per il codice


per Arduino mi sto trovando abbastanza bene con Visual Studio Code e PlatformIO, si riescono anche a congelare versioni di librerie per un determinato progetto in maniera indipendente dagli altri
♫♪♫ ƎlectroYou ♫♪♫
⊲∎⊳ ━❍────── ∞
VOLUME : ▁▂▃▅▆▇ 100%
Avatar utente
Foto Utentenicsergio
3.459 1 9 13
Master
Master
 
Messaggi: 509
Iscritto il: 1 gen 2020, 16:42

0
voti

[98] Re: Circuito da termistore a led

Messaggioda Foto UtenteAldebaran78 » 19 mag 2021, 15:11

Aldebaran78 ha scritto:Ho preso un paio di 328 e vedrò di prendere tutto quanto possa servire per pulire il segnale... Ormai è una questione di principio


drGremi ha scritto:Ma è switching? Non ho capito quale sia, lm328? Non lo trovo.


Mi riferivo all'arduino, basato su atmega328.... per il regolatore sto pensando seriamente di prendere un modulo già bello e pronto tipo questo

https://www.arduiner.com/it/prodotto/l7 ... r-arduino/
Avatar utente
Foto UtenteAldebaran78
35 4
 
Messaggi: 31
Iscritto il: 11 apr 2021, 9:36

2
voti

[99] Re: Circuito da termistore a led

Messaggioda Foto UtenteAldebaran78 » 6 giu 2021, 18:49

Rispolvero il tred per dire che col circuito rettificatore prima dell'arduino va tutto a meraviglia.
La cosa più interessante, però, è che sono riuscito a risolvere il dilemma della rottura del primo Arduino.
In pratica, la freccia destra anteriore ha un contatto, probabilmente all'interno del bulbo. La variazione di tensione che si propaga a tutto l'impianto si può misurare addirittura col tester, senza scomodare l'oscilloscopio. L'ho scoperto per caso, probabilmente perché la situazione si è aggravata col tempo.... Attualmente, quando metto la suddetta freccia si nota un lampeggiare in sincrono di tutte le altre luci, un po' come si vede in qualche Panda degli anni 80 :D :D :D
Avatar utente
Foto UtenteAldebaran78
35 4
 
Messaggi: 31
Iscritto il: 11 apr 2021, 9:36

0
voti

[100] Re: Circuito da termistore a led

Messaggioda Foto Utentestefanopc » 6 giu 2021, 22:32

Ottimo sono contento che funzioni bene.
L' anomalia delle luci che "fanno come i fanali dietro delle golf panda anni '80" ecc. è un problema di massa magari ossidata o difettosa morsetto allentato.
Controlla il percorso del cavo di massa dal portalampada della freccia fino al punto dove si collega probabilmente ad un comune (con le altre lampade ) e poi va al telaio.
Il guasto dovrebbe essere tra il comune delle masse e il punto di fissaggio sul telaio.
Ciao
600 Elettra
Avatar utente
Foto Utentestefanopc
5.558 2 7 12
Master
Master
 
Messaggi: 1741
Iscritto il: 4 ago 2020, 9:11

Precedente

Torna a Elettrotecnica generale

Chi c’è in linea

Visitano il forum: Nessuno e 29 ospiti