![]() |
Citazione:
Verifica su Amazon.it WINGONEER MB102 Tagliere 3.3V/5V modulo di alimentazione 3.3V/5V per Arduino https://www.amazon.it/dp/B01DCZIY2U/..._r5ZhzbEASTM7J |
Citazione:
:yeah: |
Citazione:
Per quel poco di programmazione che mi hanno fatto vedere durante gli studi il fatto di nominare le variabili u8cnt, u16cnt proprio non l'avevo mai sentita. In un codice semplice potrebbe anche andare ma in in listato lungo e complesso non potrebbe disorientare?? |
Citazione:
Le specifiche dell'alimentatore (sempre compreso nel full kit) sono queste: INPUT 100/240V AC 50/60Hz OUTPUT 9V DC 1A Prima o poi mi faccio un alimentatore decente :) |
Citazione:
A questo punto il motorino potrebbe assorbire più di 0.7A.....fai questa prova: collega in SERIE al motore DC un tester e misura l'assorbimento di corrente...da ON -> OFF potresti leggere un valore alto di corrente per via dello spunto, ma a te serve sapere più che altro quando è a regime (il massimo) |
Citazione:
Un altro aspetto da considerare per scrivere un buon codice è non infarcire di righe il loop di programma inserendo li il codice stesso, molto meglio creare funzioni e chiamarle dal loop principale, ad esempio nel programmino per dex: Loop LeggiADC(); Media(ADC); DisplayData(); end loop Questo consente di avere una visone chiara delle funzioni del programma di isolare più facilmente i bugs e di ottimizzare le funzioni chiamate in maniera autonoma. Se interessa potrei suggerire anche un sistema RTOS molto semplice ma assai efficace per scrivere programmi puliti e veloci. A chi interessato consiglierei di scaricarsi dalla rete il manuale del "MISRA C" sono le indicazioni per scrivere codice sicuro e testabile alle quali bisognerebbe attenersi se si lavora in automotive, ferroviario, marino etc. non è specialistico ma insegna molto ed è estremamente utile. Usare buone regole di scrittura è assai utile quando si deve riprendere in mano un programma dopo 10 anni... :wink: :yeah: |
Citazione:
|
Citazione:
|
Citazione:
Aforismi a parte, se si inizia da subito ad essere precisi, metodici ed ordinati nella scrittura del codice quando sorgeranno difficoltà maggiori si avranno i mezzi e le conoscenze per superarle in autonomia; la grammatica e le lingue è bene impararle da piccoli se no poi si fa fatica. Ad esempio se dal main loop chiamo la funzione CalcAdc ed oggi la funzione è scritta come la tua ma domani decido di implementare la media mobile e un singolo cast, mi basterebbe lavorare sulla funzione e non sul main, cosa assai più facile. Per esperienza so che le richieste delle funzioni di un programma sono come le ciliege, tutti mangiano la prima ma poi si ingurgitano tutto cesto.... quindi i programmi sono destinati a crescere quasi all'infinito ed a complicarsi in poco tempo, pertanto meglio cominciare bene. IMHO :yeah: |
Citazione:
|
Dividere un problema complesso in tanti problemi semplici, è il consiglio migliore che mi abbiano mai dato... |
Citazione:
|
Citazione:
grazie, appena mi arrivano i display mi metto a sperimentare. |
Citazione:
Citazione:
ho gia capito come cambiare i colori delle varie scritte,ma non come mettere i valori medi. un grazie e poco. ciao |
Citazione:
Codice: #define sclk 13 2 channels voltmeter /--------------------------------------------\ V1 0.00 V Vmax 0.00V Vmin 0.00V V2 0.00 V Vmax 0.00V Vmin 0.00V \--------------------------------------------/ Caution max voltage 55vdc Se le scritte sono decentrate o non allineate correggi tu in base a quello che vedi su display agendo su tft.setTextSize(), tft.setCursor() e tft.drawRoundRect() |
Citazione:
nel frattempo ho cercato qualche tutorial per capire meglio sia arduino che come impostare questo display. ce ne molto da studiare. hai qualche consiglio? sono in debito. grazie ancora. |
1 Allegato/i Citazione:
In allegato ti ho messo un pdf che ho trovato su internet un po' di tempo fa. Non l'ho mai letto, ma dandoci uno sguardo veloce mi pare un buon inizio per uno che è alle prime armi...ovviamente non è completo per quanto riguarda la programmazione ma rende bene l'idea di come muoversi in questo ambiente. Per il display basta cercare in rete. Non è il "classico" LCD per cui trovi molti esempi, ma sicuramente otterrai le info necessarie se trovi la lista delle istruzioni e realative funzioni svolte. |
buondi. caricato,in sostanza funziona ma ho dovuto ridurre i caratteri,altrimenti l'indicazione del voltaggio saltava la riga. pero il V2 non mi rileva niente,ho provato a studiare lo sketc,ma non ho capito dove sta il problema. Codice: #define sclk 13 |
Citazione:
:yeah: |
Citazione:
L'errore è dovuto ad una lettura errata negli array dove sono salvati i valori delle tensioni (sia quelli mediati che quelli di max/min). Nella funzione Print_V2, vado a leggere e stampare i valori nella 3° posizione dei rispettivi array quando in realtà questi sono lunghi 2 "celle": tft.print(f32_AVvolts[2] * Dv2, 1); -> tft.print(f32_AVvolts[1] * Dv2, 1); tft.print(f32_V_max[2] * Dv2, 1); -> tft.print(f32_V_max[1] * Dv2, 1); tft.print(f32_V_min[2] * Dv2, 1); -> tft.print(f32_V_min[1] * Dv2, 1); Anche in Print_V1 c'era una lettura errata, gli indici degli array vanno tutti a "[0]". Gli array/puntatori sono bestiacce :lol: Ecco il codice corretto: Codice: #define sclk 13 |
@aero330: devo dire che saresti stato un ottimo allievo..... :wink: Questo piccolo bug conferma che scrivere codice ben strutturato e rispettoso di alcune regole sintattiche e grammatiche facilita la risol}uzione dei problemi. void ADC_Reading(){ while (u8_Scount < NSAMP) { // sample each channel A0 to A1 for (u8_cnt1 = 0; u8_cnt1 < N_CH; u8_cnt1++) { u16_sum[u8_cnt1] += analogRead(A0 + u8_cnt1); } u8_Scount++; delay(10); } A livello estetico e grafico, ma questa è una mia fissazione e non regola, io preferisco avere le parentesi graffe sempre su riga singola anche per i cicli: " Codice: void ADC_Reading()perchè in molti editor le parentesi vengono meglio evidenziate e si capisce al volo dove sono le istruzioni eseguite da un while/for/switch.... ma questa è una mia mania come usare solo 2 spazi per le indentazioni. :yeah: } |
Citazione:
Sarò sincero, sono fresco di laurea ma tutto quello che so sulla programmazione è merito di una buona istruzione all'istituto tecnico. Per le parentesi/indentazioni noto che ognuno ha la sua "filosofia" :wink: |
ottimo,funziona alla grande. ho pure capito come spostare i vari testi. pero nel codice che io avevo postato non ti sei accorto che avevo tolto la cornice bianca,che era pure doppia e fastidiosa.:D grazie ancora. |
Citazione:
Ottimo che tu l'abbia levata perchè ridondante.:wink: |
ciao mi e arrivato il tutto e ho fatto esperimenti. ho tolto il delay,ho fatto male? si impallera? venerdì li provo sul posto per dove li ho realizzati e vedremo. ciao e grazie |
Citazione:
Il problema può presentarsi durante le multiple acquisizioni del segnale analogico tramite i diversi ADC (convertitori analogici/digitale) interni in quanto caratterizzati da un tempo di conversione (100us) di gran lunga superiore alla tempistica di acquisizione di ogni singolo canale...ma ci pensa la CPU stessa a controllare il tutto correttamente |
|
Citazione:
|
Citazione:
|
Citazione:
|
| Tutti gli orari sono GMT +2. Adesso sono le 21:15. |
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