Show Posts
Pages: 1 ... 3 4 [5]
61  International / Generale / Re: 4 Arduino Master Slave in RS485 on: February 02, 2013, 04:42:18 pm
Ma riuscire a collegare due arduino1 tra loro di cui uno Master e l'altro Slave e riuscire a usarlo in questa maniera :


ARDUINO  MASTER                     ARDUINO  SLAVE 1

Pin 3  Premo Pulsante                           Pin 3  Accendo Led per 2 secondi
Pin 4  Premo Pulsante                           Pin 4  Accendo Led per 2 secondi
Pin 5  Premo Pulsante                           Pin 5  Accendo Led per 2 secondi

.... come affrontare la creazione di un "protocollo" sul bus rs485 per riuscire ad effettuare quello che ho descritto sopra ???

Sembra strano ma veramente sul Web se ne parla poco o pochissimo e in più gli esempi che ci sono su youtube o siti vari non descrivono affatto l'approccio al protocollo e alla famosa "tabella" comandi da creare in byte...

Qualcuno che in parole più spicciole e con qualche esempio concreto di sketch base per iniziare a lavorarci sopra ???

Ringraziando in anticipo i futuri interlocutori vi auguro un buon fine settimana con Arduino....

Bella domanda Pietro...io è quello che cerco...una dispensa che indichi come fare e il perchè fare una determinata procedura invece di un altra...gli esempi concreti a mio avviso servono ma non tanto... io sono dell'opinione che sarebbe meglio fare da se e confrontare con uno sketch già pronto...per comparare e per vedere eventuali dimenticanze...inoltre non dimentichiamoci che BYTE non è più supportato dalla versione 1.0 dell'IDE in poi...ma bisogna usare il Serial.write...c'è veramente poco in giro sul web....e se non fosse per quei pochi che hanno dedicato il loro tempo per spiegarmi qualcosa, sarei ancora a 0...ma ti dico la verità...che anche avendo letto e riletto e anche con gli aiuti dei ragazzi sul forum ancora non mi reputo in grado di scrivere un protocollo...ma se lo imparo per bene la faccio io una dispensa a disposizione di tutti...qualcuno ci deve pur pensare a farla....nei link che ho postato c'erano alcuni sketch....tu c'hai capito qualcosa?...magari condividiamo per riuscire ad arrivare a qualcosa di concreto...ciaoo
62  International / Generale / Re: 4 Arduino Master Slave in RS485 on: February 01, 2013, 06:49:00 pm
eheheeh...ti dò perfettamente ragione...fare qualcosa senza capire ciò che si fa...non è il massimo...ti ringrazio nuovamente per l'aiuto...domani leggerò la pagina del reference...peccato che sia in inglese...ma arduino non è italiano??? grrrrr... vabbè....
63  International / Generale / Re: 4 Arduino Master Slave in RS485 on: February 01, 2013, 03:30:05 pm
Mi sa che è molto meglio...grazie...avevo trovato anche questo: http://www.gammon.com.au/forum/?id=11428
64  International / Generale / Re: Quali sensori usare? on: February 01, 2013, 02:19:34 pm
Ciao a tutti,
la mia tesi prevede l'uso di Arduino ed io, non ci capisco nulla!
E' una lampada che si apre e si chiude, e avrei bisogno di un attuatore meccanico (quindi un motorino) che la faccia aprire e chiudere e due sensori, il primo che farà aprire e chiudere la lampada a seconda che ci sia buio o luce all'esterno, ed il secondo che mi servirà a modificare l'intensità della luce.

Le mie domande sono:
- mi indicate che sensori/attuatori devo utilizzare per far funzionare questo meccanismo?
- l'intensità della luce verrà regolata a mano attraverso un'interfaccia capacitiva touch screen. Che interfaccia posso associare ad Arduino?
- ci saranno quindi due funzioni, una manuale, durante la quale io posso decidere se aprire o chiudere la lampada e modificare l'intensità luminosa, ed una automatica, che consentirà alla lampada di aprirsi e chiudersi a seconda delle condizioni di luce-buio esterne. Quindi mi servirà anche uno switch da manuale ad automatico?

Grazie mille della pazienza e della gentilezza,
a presto!

Se vuoi solo accendere o spegnere la lampada va benissimo un relè....
per regolare la luminosità hai bisogno di un circuito dotato di opportuno optotriac (MOC3041) e relativo TRIAC che utilizzi per comandare la lampada....
Come sensore di luce ambientale utilizzerai una semplice fotoresistenza.... per lo switch da manuale in automatico ti basta un interruttore che collegherai da una parte alla +5VCC e dall'altra ad un pin di arduino...poi sul codice specificherai:
if(pininterruttore == HIGH) specifichi che devi fare se l'interruttore è sul posizione ...... else......e specificherai che deve fare sull'altra posizione...
la mia è solo un idea e solo uno della miriade di metodi possibili...per l'interfaccia non ne conosco di già pronte...ti consiglio gli integrati della atmel, vanno connessi in I2C a tutto il sistema...e sono molto sensibili...ma.....sono in package SSOP o SOIC...comunque per un non esperto ti consiglio qualcosa di più semplice. ciao
65  International / Generale / Re: 4 Arduino Master Slave in RS485 on: February 01, 2013, 02:11:26 pm
Senz'altro per una installazione nella propria casa chi meglio di te può sapere le tue esigenze?

Certo...questo è ovvio...il mio problema reale è la comunicazione seriale...che, parlandoci chiaro, non riesco a comprendere in nessun modo...se il tizio del sito avesse messo i commenti a fianco alle righe di codice spiegando che fa e a che serve quella stringa a quest'ora avrei finito...vorrei trovare un metodo molto più semplice per creare il protocollo ma non si trova nulla su internet...di comprensibile ho trovato solo qualche cosa qui sul forum, ma purtroppo non adatto alle mie esigenze...
66  International / Generale / Re: 4 Arduino Master Slave in RS485 on: February 01, 2013, 12:19:40 pm
Ad esempio io utilizzerò uno slave per ogni stanza...in caso di attivazione manuale mi sembra inutile far partire il comando dalla stanza verso il master per poi restituire il comando di accensione...quindi esegue direttamente l'operazione ed informa il master di ciò che ha eseguito.
67  International / Generale / Re: 4 Arduino Master Slave in RS485 on: February 01, 2013, 12:17:35 pm
Ma nel caso appunto di un sistema home-made non penso che bloccare il ciclo di interrogazioni per 1/2 secondi porti a chissà quali catastrofi  smiley-wink

Io sinceramente me la ero pensata diversamente...appunto per evitare il tempo di latenza tra comando e reazione, il microcontroller integrato nello slave esegue direttamente il comando in questione inviando solo un feedback al master per informarlo dell'azione seguita, il master praticamente mi deve gestire soltanto l'invio di comandi da remoto ethernet shield e company...e interviene nel caso dell'attivazione del risparmio energetico disattivando le luci e mettendo in condizione gli slave di rispondere allo stato dei sensori PIR per l'accensione delle luci ecc...in pratica gli slave...oltre ad essere slave e quindi gestiti dal master hanno al loro interno un codice che eseguono per conto loro...
68  International / Generale / Re: 4 Arduino Master Slave in RS485 on: January 31, 2013, 05:21:29 pm
Perdonami ma non ho capito...allora per quanto riguarda il protocollo quando invio i dati dal master avrò il byte di indirizzo che ci serve a far capire allo slave che sta comunicando con lui....mentre quando lo ricevo dallo slave serve a far capire al master da quale sto ricevendo i dati...giusto? per il resto non sono riuscito a capire...ti chiedo un favore enorme...se potesti spiegarmi con una bozza di codice in modo che capisco meglio...perchè davvero ho una confusione in mente assurda...per carità...non mi confondo con ciò che dici...ma è una questione mia che non riesco...è come insegnare l'arabo ad un inglese...abbi pazienza...grazie ancora...
69  International / Generale / Re: 4 Arduino Master Slave in RS485 on: January 31, 2013, 09:06:54 am
No, è giusto.


ok fantastico....grazie a te comincio a capirci qualcosa...quindi per quanto riguarda la ricezione dei comandi ci sono...adesso il problema reale è snellire al massimo il programma dello slave e quello del master togliendo quello che non serve...
per l'invio dei comandi utilizzo il sendMSG scivendo il codice in decimale o il Serial.print?
mettiamo caso che io premendo il pulsante sulla porta 4 del master voglio accendere il led sulla porta 5 dello slave devo scrivere:
Code:
if (digitalRead (4) == HIGH){ 
      sendMSG(48,49,49,53); /* 48 = 0x00 byte di start; 49 = 0x31 specifico l'indirizzo dello slave 1; 49 = 0x31 indico che sto inviando il comando di digitalWrite; 53 = 0x35 specifico la porta del led */
    }
le comunicazioni seriali sono impossibili...scrivo qualsiasi cosa senza alcun problema...ma la seriale per me è arabo...non si trova nemmeno un codice sorgente scritto su cui prendere spunto...l'unico è questo ma è complicato... uff... comunque ti ringrazio nuovamente per l'aiuto...
70  International / Generale / Re: 4 Arduino Master Slave in RS485 on: January 31, 2013, 06:25:29 am
Ciao, innanzitutto ancora grazie per il tempo che mi stai dedicando..
ciò che devono fare i miei slave è molto semplice:
analogRead. (0x30)
digitalWrite, (0x31)
digitalRead, (0x32)

quindi io associo le funzioni ai byte...e poi li richiamo non appena lo slave li riceve...mente con il byte_dato_comando specifico ciò che devo fare
ad esempio mettiamo caso che io debba accendere un led sul pin 5 devo scrivere:

Code:
if (byte_comando == 0x31) {
  digitalWrite(byte_dato_comando, HIGH);
}
dove byte_dato_comando è 0x35

Ho l'impressione che sto facendo un pò di confusione...
71  International / Generale / Re: 4 Arduino Master Slave in RS485 on: January 31, 2013, 05:40:22 am
In effetti devo fare esattamente ciò che hai descritto...ma sai com'è...quando uno non sa come fare si affida a ciò che è già scritto...anche se poi carica un sacco di cose inutili...tra l'altro mi è molto comodo un codice più semplice...

quindi per quanto riguarda quello che mi hai detto:
"Per i comandi, devi fare quel che ti serve.
Vuoi fare la lettura di un sensore?
Byte 0x00 -> mettiamo: lettura analogica
A seguire il byte del sensore/porta da leggere."

ad esempio per la lettura devo dare(dal master):
byte di start: 0x00
byte di indirizzo: 0x30 0x31 (01)
byte di comando:
byte dati comando:
byte di stop: 0x01
byte di checksum: 0xEE

continuo a non capire i byte del comando e quello dei dati...cioè il byte del comando specifica il tipo di comando? digitalWrite, analogRead ecc...oppure specifica solo che si sta eseguendo un operazione e quale che viene poi elaborata da chi riceve il comando? oppure il byte di comando e quello dei dati formano un unica cosa ad esempio D04 (0x44 0x30 0x34) e poi bisogna specificare sullo slave?

if ((function=='D') && (function_code==0)){
             if (data_received==4){
               digitalWrite(1,HIGH);
72  International / Generale / Re: 4 Arduino Master Slave in RS485 on: January 31, 2013, 04:56:09 am
La tecnica è abbastanza semplice.
Il tizio ha creato un protocollo di trasmissione:

Quote
Byte 1: Start Byte ( 0 hexadecimal ).
Byte 2-3: ASCII Arduino's address.
Byte 4: Byte ENQ, ACK or NAK (0x05h, 0x06h y 0x15h) .
Byte 5: ASCII Requested command.
Byte 6 y 7: ASCII Function number.
Byte 8: Sign byte (Positive 0x20h y Negative 2D)
Byte 9-12: ASCII of data bytes (0x00h-0xFFFFh)
Byte 13: Byte EOT (End of Text) (0x03h)
Byte 14-15: Checksum (addition from 2nd byte to 13th byte)
Come vedi, il dialogo avviene mediante l'invio di 16 byte.
Il 2° e 3° byte compongono l'indirizzo del dispositivo a cui sono spediti i dati.
Nel codice degli slave c'è, dopo la parte di ricezione dei dati, l'analisi dell'indirizzo. Se uno slave trova corrispondenza fra l'indirizzo del comando che ha ricevuto ed il suo indirizzo (che tu hai memorizzato nello sketch), allora sa che quel comando è destinato a lui e lo esegue.

Grazie innanzi tutto per la risposta...per i byte 1,2,3 ci sono...non ho capito a che serve il 4 il 5 dovrebbe richiamare il comando (ad esempio digtalwrite, analogread ecc)???? giusto? il 6 e 7 non ho capito nemmeno e poi i successivi sono uguali per tutte le comunicazioni...giusto? nel codice che c'è li sul sito qual'è la parte che analizza il codice ricevuto con quello memorizzato nello sketch ed esegue l'operazione richiesta? che ovviamente è la parte che interessa a me per inserire i nuovi comandi? ed un ultima cosa....mettiamo caso che io dovessi fare la lettura di un sensore da uno slave e riportare il valore sul master...come posso fare? grazie davvero per l'aiuto...
73  International / Generale / 4 Arduino Master Slave in RS485 on: January 31, 2013, 03:55:58 am
Salve a tutti ragazzi, rinnovo il mio entusiasmo nel far parte di questo forum e sottopongo subito il mio problema. Sto realizzando un sistema domotico ed ho bisogno di un master che mi gestisca 3 slave connessi fra di loro tramite seriale. Ho trovato questo utilissimo articolo: http://real2electronics.blogspot.it/2009/09/arduino-and-rs485-english-version.html ma devo dirvi la verità...non c'ho capito molto... il mio master oltre ad impartire i comandi per l'accensione/spegnimento dei carichi deve anche fare una lettura dei sensori analogici...ovvero sensori gas e fumo (MQ-7 e MQ-2) sensori PIR e sensori reed per l'antifurto, temperatura ecc le letture sono richiamate esclusivamente dal master...quindi da aggiungere a quel codice mi servirebbe una sorta di: se lo slave riceve quel dato fa la lettura dei sensori e la invia al master...ma non so come fare utilizzando la tecnica dell'articolo...spero possiate aiutarmi...grazie 1000 a tutti voi...un saluto
74  International / Generale / Re: Presentazioni nuovi iscritti, fatevi conoscere da tutti! on: January 31, 2013, 03:45:28 am
Salve a tutti Ragazzi...complimentissimi per l'ottimo forum e per l'aiuto che date a tutti. Io mi chiamo giuseppe e sono della provincia di messina... e sono felice di essere qui con voi....CiAOOO
Pages: 1 ... 3 4 [5]