Pages: [1] 2   Go Down
Author Topic: Monitor GLCD Graphics cambiare pin interfaccia arduino  (Read 1498 times)
0 Members and 1 Guest are viewing this topic.
Guidonia
Offline Offline
Full Member
***
Karma: 0
Posts: 214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve popolo arduiniano,
seguendo i vostri post di tanto in tanto ho pensato di creare un progettino che "condiziona" una stanza.
ma ho un problema dettato da un monitor GLCD (cinese) in quanto preleva dei pin (6,7,8 e 9) per funzionare, pin che attivavano/disattivano dei relè.

Quindi mi chiedevo se era possibile cambiare i pin nelle librerie? e se sì qual'è il file e le variabili da cambiare?

Qualcuno può aiutarmi in qualche maniera?


* Display_GLCD.pdf (414.89 KB - downloaded 27 times.)
« Last Edit: November 25, 2012, 05:22:55 am by Marbi » Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 68
Posts: 1989
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Semmai e' un Display.. e non un monitor.

Si che si puo' fare, pero' ( a parte che non menzioni una libreria ) normalmente quei pin sono quelli usati per il valore DATI, su due diversi nibble.
Quindi forse e' meglio se cambi sul tuo sketch l'assegnazione ai pin dei Rele'.

e' piu' facile



Logged

Guidonia
Offline Offline
Full Member
***
Karma: 0
Posts: 214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie brunello della risposta,
per i relè utilizzo questo shield relè
la libreria che utilizzo per il GLCD è la  ks0108.h, ho sfruttato questo link per testarlo

adesso però per poter collegare lo schermo e lo shield devo inventarmi qualcosa e l'elettronica non è proprio il mio forte smiley-sad

... proposte? smiley-razz

[nota]
l'intento è quello di inserire un dht11, un ricevitore ir come input ed un xbee, un GLCD e lo shield relè per l'output.
volevo implementarci anche un pcf8563 (TRC) ma penso di aver terminato i pin utilizzabili smiley-sad
da remoto, oppure da telecomando vorrei gestire 3 di questi relè i quali comandano (un climatizzatore per il freddo, uno "scaldino" per il caldo, ed un deumidificatore (che a casa mia stiamo al 66% d'inverno :O).

Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 68
Posts: 1989
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

uhmmm  il GLCD si porta via 13 Pin sui 20 disponibili .
l'Xbee usa Rx e Tx .. e siamo a 15
avanzano il Pin 2,3,12,13,A5(19).
Potresti spostare l'EN del GLCD

Quote
#define R_W               16      // R/W Bit
#define D_I               17      // D/I Bit
#define EN               18      // EN Bit
//#define RES             19      // Reset Bit  // uncomment this to contol LCD reset on this pin

su un'altro pin ( ad esempio il 12 ) e cosi' potresti usare la I2c
E in I2C collegarci... l' RTC ( il PCF8563 o un DS1307 ) , un PCF8574 che ti serve per comandare la scheda rele' ( chiaramente non la usi piu' come shield)
Il DHT11 sul pin 2.
l'IR sul pin 3

ti avanza il pin 13

In alternativa usi una MEGA
Logged

Guidonia
Offline Offline
Full Member
***
Karma: 0
Posts: 214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

per il TCR ho già risolto, in quanto il pc trasferisce la data (e l'arduino può tenersela per una 50ina di giorni circa).
in quello straccio di codice ci sono già arrivato, ma lì mi si intrecciano gli occhi smiley-razz
devo spostare (se dentro la libreria ks0108_arduino.h o altrove non so) i pin 5,6,7 e 8 (o almeno 3 su 4), i quali dovrebbero essere collegati ai pin D5,D6,D7 e D0.
nel codice ho trovato anche queste info, ma da qui non so muovermi. smiley-sad
Code:
/* option: uncomment the next line if all command pins are on the same port for slight speed & code size improvement */
#define LCD_CMD_PORT PORTC // Command Output Register for pins 14-19

/* Arduino pins used for LCD Data
 * un-comment ONE of the following pin options that corresponds to the wiring of data bits 0-3
 */
#define dataPins8to11   // bits 0-3 assigned to arduino pins 8-11, bits 4-7 assigned to arduino pins 4-7
//#define dataPins14to17 //bits 0-3 assigned to arduino pins 14-17, bits 4-7 assigned to arduino pins 4-7. (note command pins must be changed)
//#define dataPins0to3  // bits 0-3 assigned to arduino pins 0-3 , bits 4-7 assigned to arduino pins 4-7, this is marginally  the fastest option but  its only available on runtime board without hardware rs232.

/* NOTE: all above options assume LCD data bits 4-7 are connected to arduino pins 4-7 */
Logged

Guidonia
Offline Offline
Full Member
***
Karma: 0
Posts: 214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve popolo arduiniano,
... ho un problema dettato da un monitor GLCD (cinese) in quanto preleva dei pin (6,7,8 e 9) per funzionare, ...

mi scuso per l'errore dei pin nel precedente messaggio
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 68
Posts: 1989
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non e' cosi' semplice..
Come ti dicevo, usano un nibble della porta D ( pin da 4 a 7 )  e della porta B ( pin da 8 a 11 ) e vengono usate delle funzioni logiche per scriverci i dati.

Non avendo Arduino altre porte a disposizione ( perlomeno usabili allo stesso modo ), la modifica e' moltooo complessa.
Quindi la cosa piu' semplice rimane quella di usare un'altra scheda rele', in cui puoi scegliere i pin interessati. Oppure quella shield, ma non posizionata sopra ad Arduino, ma usata come scheda esterna

Comunque
Quote
per il TCR ho già risolto, in quanto il pc trasferisce la data (e l'arduino può tenersela per una 50ina di giorni circa)

dipende da che errore tolleri da un RTC software. In un mese puoi anche sballare di un'ora
E se manca alimentazione si azzera
Logged

Guidonia
Offline Offline
Full Member
***
Karma: 0
Posts: 214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

arduino viene alimentato a batterie proprio per evitare il reset, volevo utilizzare la funzione millis, ma se mi dici che con tale funzione potrei sballare 1 ora al mese cerco altre vie di fuga.
lo shield lo scollego e collego i pin relè direttamente ai pin di mio interesse su arduino, sperando di riuscire a tirar fuori qualche ragnetto dal buco smiley-sad

nota: pensavo che la funzione millis fosse molto precisa, devo distruggermi un mito?
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 68
Posts: 1989
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

la funzione Millis e' precisa... per quanto e' precisa la frequenza dell'oscillatore da 16 Mhz
Logged

Guidonia
Offline Offline
Full Member
***
Karma: 0
Posts: 214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

allora scusami, ma non capisco come possa sballare quella famosa ora!!!
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 68
Posts: 1989
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

l'oscillatore quarzato non e' di una precisione assoluta.
O meglio, dato che non c'e' un sistema di regolazione della frequenza, e' legata alla qualita' di costruzione ( alla temperatura di lavoro etc etc )
Quindi se il quarzo da 16.000 Khz, come quello su Arduino, oscilla ad esempio a 15.999 Khz, se fai un semplice calcolo vedi che sballa di 5 secondi al Giorno.

Quindi la Millis non dura 1 ms, ma 0,99993 ms 

Non prendere per verita' assoluta i calcoli, era solo per rendere l'idea       

Ma che batteria hai per durare circa 50gg ?

Logged

Guidonia
Offline Offline
Full Member
***
Karma: 0
Posts: 214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

l'idea è di collegare 4 batterie AA ricaricabili. comunque grazie all'XBee ogni qualvolta accendo il pc, in automatico dovrebbe reimpostare l'ora, quindi una volta al giorno è assicurato smiley-razz.

cmq grazie, proverò a collegare lo shield "esternamente" all'arduino, il problema è collegare tutti i pin giusti smiley-razz

non so se lo sai, ma io sono quello che chiede in giro se si è sicuri di dover collegare tutte le masse assieme senza il rischio di una catastrofe nucleare!!! :O
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve ragazzi,
mi aggancio alla vostra conversazine.....
io non posso cambiare i pin nel programma perchè ho fatto un casino di collegamenti..
ma ho davvero bisogno di cambiare i pin di assegnazione nella libreria del ks0108 e non ho la +
pallida idea di come si faccia.... premetto che non so tanto di informatica quindi, scusate, ma se si puo'
fare qualcuno me lo potrebbe spiegare come si spiega ad uno stupido????


grazie a tutti!
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 77
Posts: 4661
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

... qualcuno me lo potrebbe spiegare come si spiega ad uno stupido????
Dipende molto dalla libreria.
Se guardi quella al link segnalato da @Marbi vedrai che usa: #include <ks0108.h>
Ma i comandi di quella libreria (di solito un comando iniziale o la dichiarazione di un oggetto di quella libreria) non chiedono in input quali pin.
Nella pagina di quella libreria è spiegato (in inglese) che la definizione di quali pin sono usati è dentro un file .h :
- ks0108_arduino.h <- this is for ATmega168 and ATmega328 boards
- ks0108_mega.h <- for the Arduino Mega (ATmega1280/2560)
Perciò per modificare i pin per questa libreria bisogna aprire con l'editor il file giusto (a seconda di quale Arduino usi).

Altre librerie invece quando le si "inizializza" bisogna dirgli quali pin utilizzano.
Esempio la stepper per i motori passo-passo:  #include <Stepper.h>
devi dichiarare un oggetto:  
Code:
Stepper motor(200, 10,11,12,13);
e i parametri 10,11,12,13 indicano che usi quei pin.
Altro esempio è la SoftwareSerial.h  libreria che permette di usare 2 pin per comunicazione seriale, diversi da quelli standard.
Naturalmente cosa richiede la libreria? Di creare un oggetto e di dirgli quali 2 pin userai:
Code:
SoftwareSerial Connessione ( iPinNum_RX , iPinNum_TX);
« Last Edit: March 26, 2013, 05:36:24 pm by nid69ita » Logged

my name is IGOR, not AIGOR

Tuscany
Offline Offline
Edison Member
*
Karma: 68
Posts: 1989
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
ma ho davvero bisogno di cambiare i pin di assegnazione nella libreria del ks0108 e non ho la +
pallida idea di come si faccia..

Se ben ricordo, ma e' da un po' che non uso piu' quella libreria, i pin 4,5,6,7 e 8,9,10,11 non si toccano ( perche' non basta editare la libreria e cambiare assegnazione, ma va' riscritto mezzo codice della libreria )

sugli altri mi pare si possano modificare
Logged

Pages: [1] 2   Go Up
Jump to: