- Messaggi: 376
- Ringraziamenti ricevuti 38
Creare isteresi su lettura ADC
12 Anni 6 Mesi fa #1
da Matteo Garia
Creare isteresi su lettura ADC è stato creato da Matteo Garia
Salve a tutti
sto realizzando una sorta di controller per led RGB con pic16 in cui vi è la possibilità di pilotarli tramite potenziometro (ruotandolo cambia i colori)
effettuo la lettura del potenziometro con l'adc usandolo a 10 bit
quello che mi servirebbe è un'idea su come implementare l'isteresi a questo comando
mi spiego meglio:
il mio controller ha diverse modalità di controllo per i led, tra cui una è il potenziometro. Non vi è una priorità su quale sia la modalità più o meno importante, semplicemente l'ultimo comando ricevuto è quello che vale.
essendo la lettura dell'adc piuttosto traballina sui bit meno significativi, il comando tramite potenziometro spesso interferisce con il resto.
inizialmente ho strutturato una cosa di questo tipo:
leggo adc -> confronto con lettura precedente -> se diverso calcolo nuovi colori
ma tale sistema è piuttosto impreciso
provando a fare il confronto eliminando i bit meno significativi le cose migliorano, ma affinchè venga preso un nuovo comando deve per forza esserci una variazione nell'ultimo bit che prendo in considerazione.
Per spiegarmi con un esempio, se elimino 2 bit, la variazione minima che il programma prende in considerazione è di 8.
Quello che vorrei implementare è una funzione di isteresi che al superamento della soglia si "disinserisca" finchè vi è variazione del valore letto, per poi reinserirsi quando il valore rimane stabile per un certo tempo
Idee?
grazie mille
Matteo
sto realizzando una sorta di controller per led RGB con pic16 in cui vi è la possibilità di pilotarli tramite potenziometro (ruotandolo cambia i colori)
effettuo la lettura del potenziometro con l'adc usandolo a 10 bit
quello che mi servirebbe è un'idea su come implementare l'isteresi a questo comando
mi spiego meglio:
il mio controller ha diverse modalità di controllo per i led, tra cui una è il potenziometro. Non vi è una priorità su quale sia la modalità più o meno importante, semplicemente l'ultimo comando ricevuto è quello che vale.
essendo la lettura dell'adc piuttosto traballina sui bit meno significativi, il comando tramite potenziometro spesso interferisce con il resto.
inizialmente ho strutturato una cosa di questo tipo:
leggo adc -> confronto con lettura precedente -> se diverso calcolo nuovi colori
ma tale sistema è piuttosto impreciso
provando a fare il confronto eliminando i bit meno significativi le cose migliorano, ma affinchè venga preso un nuovo comando deve per forza esserci una variazione nell'ultimo bit che prendo in considerazione.
Per spiegarmi con un esempio, se elimino 2 bit, la variazione minima che il programma prende in considerazione è di 8.
Quello che vorrei implementare è una funzione di isteresi che al superamento della soglia si "disinserisca" finchè vi è variazione del valore letto, per poi reinserirsi quando il valore rimane stabile per un certo tempo
Idee?
grazie mille
Matteo
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Matteo Garia
- Autore della discussione
- Moderator
Riduci
Di più
12 Anni 6 Mesi fa #2
da Ale_Pic
Risposta da Ale_Pic al topic Re: Creare isteresi su lettura ADC
Forse non è quello che cerci, ma non sarebbe più facile fare 8 letture e calcolarne la media? Si tratta solo di sommare e poi fare uno shift di 3 posizioni.
In questo modo ottieni una migliore stabilità rispetto ad una sola lettura
In questo modo ottieni una migliore stabilità rispetto ad una sola lettura
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Ale_Pic
- Junior Member
Riduci
Di più
- Messaggi: 38
- Ringraziamenti ricevuti 2
12 Anni 6 Mesi fa #3
da Pinna
Chi vola vale, chi vale vola, chi non vola è un vile
Risposta da Pinna al topic Re: Creare isteresi su lettura ADC
Ciao. se vuoi un valido, anzi, validissimo esempio di isteresi per pic16, vai sul sito del nostro socio Giovanni Bernardo (www.settorezero.com). Se già non lo sei ti iscrivi e ti studi tutto il validissimo corso per pic 10-12-16 da lui magistralmente tenuto, con tanto di esempi e sorgenti che potrai liberamente scaricare come iscritto. La lezione che ti interessa è la n°11, parte prima e seconda. Spero di esserti stato di aiuto.
Chi vola vale, chi vale vola, chi non vola è un vile
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Pinna
- Moderator
Riduci
Di più
- Messaggi: 1010
- Ringraziamenti ricevuti 107
12 Anni 6 Mesi fa #4
da Matteo Garia
Risposta da Matteo Garia al topic Re: Creare isteresi su lettura ADC
Vi ringrazio entrambi per le risposte, proverò le due soluzioni al più presto
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Matteo Garia
- Autore della discussione
- Moderator
Riduci
Di più
- Messaggi: 376
- Ringraziamenti ricevuti 38
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.