![]() |
Citazione:
Ci son tanti display in giro per la rete, proprio uno con 40 pin ??? :lol: |
Citazione:
In cosa avresti bisogno nello specifico? |
Citazione:
|
Citazione:
|
Alcuni suggerimenti di valenza generale ed indipendenti dal hw o linguaggio di programmazione usato: - quando è necessario leggere una tensione (anche quella fornita da un sensore) utilizzando un AD converter, sia esso integrato nel microprocessore od anche esterno è bene usare un circuito d'ingresso (con partitore) simile a questo: http://win.wallytech.it/public/ADCIN.jpg il condensatore C1 andrebbe posto fisicamente il più vicino possibile al relativo piedino d'ingresso analogico del convertitore. L'insieme R3-C1 è un primitivo filtro bassa basso che garantisce una tensione stabile ed a bassa impedenza al convertitore AD e filtra eventuali spike. - per ottenere una buona precisione di lettura è anche consigliato usare come Vref per il convertitore AD (se è disponibile un pin dedicato del micro) quella fornita da uno 'zener' apposito, ottimo per i convertitori AD a 12 bit usarne uno da 4,096V in modo che ogni step del convertitore corrisponda ad 1mV o multipli precisi dati dal partitore d'ingresso. Questo trucco consente anche di usare interi per le conversioni e l'elaborazione dei valori ottenuti anzichè con virgola che nei piccoli micro rallenta molto il tempo d'esecuzione. Naturalmente nel caso di ingresso ratiometrico (potenziometro o sensore con uscita equivalente) va benissimo usare i +5V di alimentazione del micro. - per ottenere un dato stabile ed attendibile sul display è anche bene filtrare il segnale del ADC utilizzando una semplice media mobile su più campionamenti, se poi la media mobile è eseguita su un multiplo di 2 ci sono trucchetti (che se vi interessa dirò in altro intervento) per renderla estremamente veloce e semplice da implementare. - non vedo troppo bene per andore la regolazione 'brutale' ON/OFF della ventola, meglio sarebbe renderla proporzionale alla temperatura usando una semplice regolazione PD o PI se non proprio PID, con poche righe di codice eviteresti la continua oscillazione della stessa. :yeah: |
Citazione:
per esempio: nel progetto ci sono tre varianti, una lettura due letture quattro letture pero solo su quella a due letture ce il valore minimo e massimo letti almeno cosi mi sembra. vorrei in futuro poterla implementare anche sulle altre. a livello schematico,collegamenti partitori ecc ecc non ho problemi. |
Citazione:
Lo script funziona alla grande ma forse c'è qualcosa da modificare nel progetto, per renderlo più stabile. |
Citazione:
Per curiosità, questo modulo di alimentazione esterno com'è fatto? riesci a dare più info? tensione in uscita, corrente max fornita.... |
2 Allegato/i Citazione:
1) collega la scheda arduino al PC 2) apri l'IDE di arduino, vai su "Strumenti ->Scheda" e selezioni quella che utilizzi e poi "Strumenti -> Programmatore -> AVRISP mkII" 3) scarica i due file ZIP che ti ho messo in allegato 4) vai su "Strumenti -> Sketch -> #includi libreria -> Aggiungi libreria da file .ZIP" e cerca i due file "Adafruit_GFX.ZIP" e "Adafruit_ST7735". 5) chiudi tutto e riapri l'IDE di arduino 6) "File -> Nuovo", cancelli tutto e incolli questo: Codice: #define sclk 138)se tutto è andato a buon fine non ottieni nessun errore ma solo "caricamento "completato" 9) fatto Ho preso il codice quello completo con le 4 tensioni lette e aggiunto il calcolo dei valori massimi/minimi per ciascun canale. L'unica cosa è che non li visualizzi perchè non c'è abbastanza spazio sul display, a meno che tu non mi dica come fare (esempio: visualizzo ogni singolo canale ciclicamente con sotto il max/min relativo, oppure i 4 canali contemporaneamente ma con i valori max/min scrittti a fianco più piccoli ecc ecc) P.s. non ho il display in questione per cui sto facendo tutto al buio :lol: |
@andore: per il problema dei disturbi prova a mettere un condensatore in parallelo al motorino, meglio due: un elettrolitico da 22uF..47uF ed un altro ceramico da 10nF, od anche tre, l'elettrolitico e due da 10nF saldati fra i fili di alimentazione del motore e la carcassa dello stesso. @aero330: per mediare il valore letto dal convertitore AD è meglio usare una media mobile in potenza di 2 lavorando con interi e poi usare lo shift a destra al posto della divisione, solo alla fine fare un unico casting in float che ci sarebbe anche il modo di evitarlo (forse). Il casting in float, i calcoli in float ed i prinf sono estremamente lenti sui piccoli micro ad 8 bit come quello di arduino 1. Un altro suggerimento: è buona norma nel assegnare nomi alle variabili usare un prefisso che identifichi il formato della stessa, ad esempio: - count è meglio chiamarla u8count od u8_count se si usa un intero ad 8 bit senza segno, etc. :yeah: |
| Tutti gli orari sono GMT +2. Adesso sono le 12:37. |
Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002