Go Down

Topic: UTFT Analog Clock (Read 572 times) previous topic - next topic

karafasta


Buonasera.

Anzitutto  tengo a precisare che apro questo topic in questa sezione perché la mia domanda verte sia sul Hardware che sul Software.

Allora….nella sezione Software avevo chiesto lumi su di un progetto Oled analog clock che alla fine è stato risolto con mia grande soddisfazione grazie alla collaborazione degli utenti che mi sono venuti in aiuto.

Tra un intervento e l'altro mi è stata suggerito un altro progetto di tipo"orologiaio":UTFT_Analog_Clock reperibile sempre sul sito di Rinky-Dinky.

Ci sono andato e ho scaricato le librerie URTouch.zip,UTFT.zip ,DS1307.zip  che ho inserito nell'IDE e naturalmente
il codice zippato UTFT_Analog_Clock.zip che ho estratto e da pde convertito in .ino come insegnatomi.

Ora arrivo al dunque.

Ho preso il mio Elegoo UNO R3 2.8 Inches TFT Touch Screen con SD Card Socket e l'ho inserito sul Mega nell'unico modo in cui i pin combaciavano esattamente.L'RTC 1307 l'ho collegato al Mega così: GND al GND del Mega
       VCC al VCC del Mega
       SDA  al pin  20 del Mega
      SCL    al pin 21 del mega.

La scelta di questa configurazione può essere troppo semplicistica ma non me ne viene in mente un'altra.


In ogni caso la verifica va ok ,il caricamento si completa ma il display resta bianco.

Temo che il mio quesito sia pretenzioso ma ho sempre avuto trovato persone che hanno fatto il possibile per aiutarmi.

Grazie
P.S.Non invio il codice perchè ho provato a mandarlo  ma il messaggio eccede i 9000 caratteri.
in caso lo mando poi.


«A parità di fattori la spiegazione più semplice è da preferire»

gpb01

#1
Mar 15, 2019, 03:24 am Last Edit: Mar 15, 2019, 03:24 am by gpb01
Ma, ho capito male io, o ... sa stai cercando di usare lo stesso progetto fatto per il piccolo display OLED con un display TFT ? ? ? :o :o :o

Perché in tal caso ... NON va bene!  La libreria di Rinky-Dink Electronics per l'OLED NON è adatta al display TFT che richiede tutt'altra libreria.

Guglielmo
Search is Your friend ... or I am Your enemy !

karafasta

Buon giornooo.
Sempre in sella! In effetti sì....
http://www.rinkydinkelectronics.com/p_utft_analog_clock.php


Required hardware:
   Arduino Mega or Arduino Mega 2560
   A display module compatible with UTFT like these, or some of these. You will need a display with a minimum resolution of 320x240.
   A shield or something similar to connect the display module to the Arduino
   A DS1307 module
I would highly recommend using the Arduino Mega / Chipkit MAX32 Screw Shield with TFT and RTC from AquaLEDsource for this project as it makes it easy to connect your display module to the Arduino, and it already has a DS1307 on board. In addition you also have all the unused pins broken out to easy-to-use screw terminals.
Required software:
   UTFT library
   URTouch library
   DS1307 library

Questo è quello che ho scaricato.
«A parità di fattori la spiegazione più semplice è da preferire»

gpb01

#3
Mar 15, 2019, 07:44 am Last Edit: Mar 15, 2019, 07:45 am by gpb01
Si, scaricato va bene, ma ti sei studiato la documentazione della libreria UTFT (si trova all'interno della catella della libreria)?

Quella libreria supporta decine di display diversi e, per ciscuno, occorre cambiare delle impostazioni!  Devi quindi conoscere l'uso dei pin del tuo display e trovarne poi la giusta configurazione per la libreria.

I display TFT e la UTFU sono delle "brutte bestie" e richiedono parecchio studio ed attenzione ... tutto sono meno che plug-and-play :D :D :D

Guglielmo

P.S.: Il display della ELOGO ti è arrivato con la sua documentazione? Puoi trovare il suo pin-out?
Search is Your friend ... or I am Your enemy !

karafasta

#4
Mar 15, 2019, 10:22 am Last Edit: Mar 15, 2019, 10:33 am by karafasta
Ahi ,ahi....mi sembrava troppo facile!

Allora il datasheet ce l'ho sul cd che era allegato al display e si riferisce al ILI9441 ma in quelle 249 pagine non so cosa mi è utile e cosa no.

Sempre sul cd ho trovato queste immagini che allego

Per quanto riguarda la libreria UTFTcpp ho trovato questo:

#endif
#ifndef DISABLE_ILI9341_S4P
#include "tft_drivers/ili9341/s4p/initlcd.h"
#endif
#ifndef DISABLE_ILI9341_S5P
#include "tft_drivers/ili9341/s5p/initlcd.h"
#endif
#ifndef DISABLE_ILI9341_8
#include "tft_drivers/ili9341/8/initlcd.h"
#endif
#ifndef DISABLE_ILI9341_16
#include "tft_drivers/ili9341/16/initlcd.h"

che si riferisce al mio display.


Guarda che ti mando queste informazioni, senza tuo impegno,solo così per curiosità  sapendo che nessun santo potrebbe aiutarmi.

Comunque sentite grazie
Fulvio
P.S: avevo inviato un'altra immagine ma non so perchè sembra esserci verificato un errore nell'upload?
Magari dopo ci riprovo






«A parità di fattori la spiegazione più semplice è da preferire»

gpb01

Se guardi nella documentazione della UTFT, nel manualetto "UTFT_Supported_display_modules_&_controllers.pdf" trovi anche il tuo controllere e le relative note.

Guglielmo
Search is Your friend ... or I am Your enemy !

karafasta

There was a problem during the uploading of TFT 2.PNG.
Your post has been made, however the above attachment was not attached. Please use the Back button to edit your post and submit any required changes.
Your attachment has failed security checks and cannot be uploaded. Please consult the forum administrator.
«A parità di fattori la spiegazione più semplice è da preferire»

gpb01

#7
Mar 15, 2019, 10:54 am Last Edit: Mar 15, 2019, 10:54 am by gpb01
There was a problem during the uploading of TFT 2.PNG. ...
Con certe immagini succede ... NON chiedermi perché ... ::)

Guglielmo
Search is Your friend ... or I am Your enemy !

karafasta

#8
Mar 15, 2019, 12:35 pm Last Edit: Mar 15, 2019, 12:39 pm by karafasta
Si lo so:«Se qualcosa può andar male, andrà male.»Legge di Murphy.

Comunque sono andato sul manuale dei display supportati e ho trovato questo che devo,spero,mandarti in allegato.
Ma la cosa diventa sempre più complicata per me.


Ancora una cosa ....se non ce la fai a starmi dietro fatti dare il cambio.  :)
«A parità di fattori la spiegazione più semplice è da preferire»

gpb01

Hai trovato la giusta pagina .... ora ... non ti resta che studiare e capire le impostazioni per far funzionare quel display :)

Quindi, guardare come è fatto il "costruttore" della classe UTFT, vedere che parametri vuole, capire cosa passargli e così via ... 

Se vuoi coltivare questa passione, purtroppo devi studiare un sacco di cose perché, contrariamente a quello che si dice in giro, con il copia/incolla al massimo di fa lampeggiare un LED, per tutto il resto ... bisogna dedicare un sacco di tempo a studiare e capire :)

Guglielmo
Search is Your friend ... or I am Your enemy !

karafasta

Ancora una cosa cosa intendi per Costruttore?
«A parità di fattori la spiegazione più semplice è da preferire»

gpb01

#11
Mar 15, 2019, 03:10 pm Last Edit: Mar 15, 2019, 03:11 pm by gpb01
Ancora una cosa cosa intendi per Costruttore?
... terminologia del C++ ... quando "istanzi" una classe e crei un "oggetto" ... non per nulla ti dicevo che tocca studiare ... un buon manuale di C/C++ :D

Nel tuo caso quando nel codice, ad esempio, scrivi ...

Code: [Select]
UTFT myGLCD(ITDB32S,38,39,40,41);
... viene "istanziata" la classe UTFT e creato l' "oggetto" myGLCD ed automaticamente chiamto il suo "costruttore".

Guglielmo

P.S.: ... io ODIO il C++ ed al 90% scrivo solo codice 'C', ma ... alcune basi tocca saperle ;)
Search is Your friend ... or I am Your enemy !

karafasta

#12
Mar 15, 2019, 03:16 pm Last Edit: Mar 15, 2019, 03:19 pm by karafasta
dove posso trovare un testo o un sito o altro per il C++
Grazie.
Hai notato la mia età....prima di imparare 'ste cose sarò morto!
«A parità di fattori la spiegazione più semplice è da preferire»

gpb01

#13
Mar 15, 2019, 03:20 pm Last Edit: Mar 15, 2019, 03:20 pm by gpb01
... ce n'è veramente un'infinità, testi, corsi on-line, tutorials, ecc. ecc.

Prova a cercare con Google "Corsi C++" o "Introduzione al C++" ... e così via ...

Guglielmo

P.S.: Ma intanto perché non ti studi le basi sia di Arduno che della sua programmazione? QUESTO è un buon testo !
Search is Your friend ... or I am Your enemy !

maubarzi

Diciamo che definisci una serie di variabili che ti servono per un certo scopo.
Prevedi una serie di funzioni (che nel mondo ad oggetti si chiamano metodi perchè fa figo dare sempre nomi diversi alle stesse cose per far intendere che siano cose totalmente diverse anche se non lo sono ;) ) che lavorano principalmente su queste variabili e che saranno l'unico modo per manipolare queste variabili così da evitare tutto sotto controllo.
Metti tutto assieme in un file per avere tutto assieme e non disperso in giro per l'intero programma.
Ecco che hai usato un approccio ad oggetti.
A questo sono state teorizzate e implementate regole e sintassi in modo da automatizzare tutta una serie di funzionalità aggiuntive su cui per ora soprassediamo ed ecco che si ottiene la programmazione ad oggetti.
Si tratta, supersemplificando, di una struttura dati con funzioni di manipolazione annesse.
Ora, quando vuoi creare una di queste strutture la istanzi (altro termine nuovo che fa figo per dire "crei").
Una delle regole su cui abbiamo soprasseduto prima è che quando crei una di queste strutture (che sempre per lo stesso motivo hanno chiamato "oggetti"), viene richiamato in automatico un metodo con un nome standard su cui è comodo mettere tutta la logica di inizializzazione della struttura dati. Questo metodo o funzione che dir si voglia, si chiama "costruttore" appunto perchè è funzionale alla costruzione iniziale dell'oggetto.

Questo modo di strutturare il codice in variabili e metodi specializzati è il sunto della programmazione ad oggetti a cui sono state aggiunte tutta una serie di astrazioni per "facilitare" (in teoria) tutta una serie di compiti come l'ereditarietà, le interfacce, l'overloading, ecc. ecc. ecc. tutti nomi da fighetti ;) per definire cose tipiche della programmazione ad oggetti.

Ora, si possono ottenere risultati simili con la normale programmazione, perchè alla fine si tratta solo di un modo differente di riorganizzare il codice automatizzandone alcuni aspetti, per cui certi "puristi" lo considerano un inutile appesantimento, mentre altri lo considerano come una evoluzione fondamentale...
A ognuno le proprie opinioni.

Io ho super-semplificato la cosa commettendo sicuramente qualche errore o imprecisione. Il mio scopo era di far capire il concetto più che di dare una visione dettagliata e precisa.
Spero di non averti tediato troppo e di averti dato qualche informazione utile.
Nessuna buona azione resterà impunita!

Preistoria -> medioevo -> rinascimento -> risorgimento -> rincoglionimento!

Go Up