Pages: [1]   Go Down
Author Topic: Linea Seriale su Tidigino  (Read 538 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti, vorei poter collegare al mio TiDiGino un lettore RFID ID-20, che andrebbe collegato ad un pin RX sulla board, ma mi sorge un dubbio:sulla board citata sono disponibili delle linee seriali o vengono occupate tutte dal modulo GSM?
In teoria il mega 2560 mette a disposizione 3 canali aggiuntivi sulle coppie (14,15) (16,17) (18,19),  ma non riesco a capire se siano in uso/collegate al micro.

Qualcuno che conosce la board potrebbe fornirmi qualche info?
Grazie!

P.S.:Il pin 0 non dovrebbe essere un RX libero?

P.P.S.:Il canale Serial(senza alcun numero) è condiviso stra USB e pin 0-1 o è dedicato all'USB?
« Last Edit: May 19, 2013, 11:42:42 am by cirowner » Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21277
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I pin 0 e 1 sono condivisi con l' interfaccia USB. Se li usi per altre cose non funziona piú il collegamento USB.
Il circuito del Tidigino lo trovi su http://www.open-electronics.org/wp-content/uploads/2012/01/Schematics.jpg

Ciao Uwe
« Last Edit: May 19, 2013, 01:33:03 pm by uwefed » Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Io ho provato ad usare il pin 0 a USB scollegata, ma la Serial.available() non mi rileva niente.
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21277
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Avevi collegato la massa?
Ciao Uwe
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Io ho seguito questo esempio


A parte il fatto che l'alimentazione e reset li prendo sorgente esterna (reset fisso a +5V), il collegamento è quello.

In che senso "avevi collegato la massa"?


UP:Ho provato anche con la SoftwareSerial usando un altro pin, ma non arriva niente...
« Last Edit: May 19, 2013, 03:14:22 pm by cirowner » Logged

Selvazzano Dentro - Padova
Offline Offline
Edison Member
*
Karma: 37
Posts: 1313
"Chi sa fa, chi non sa insegna"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Il TiDiGino purtroppo non mette a disposizione altre porte seriali.

L'unica è usare la libreria SoftSerial, facendo però attenzione ad utilizzare per Rx un pin che sia uno di quelli controllabili tramite interrupt e cioè dal 10 al 13.

Nel tuo caso potresti usare il pin 12 (Rx) ed il pin 13 (Tx).
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks!
Giusto qualche domanda:
-Perchè non posso usare la linea Serial(1,0).E' riservata all'USB?
-R/TX2 e RX3 nelle specifiche sono segnati come n.c.Significa che non cè il pin(e la relativa pista)?
-Un codice del genere andrebbe bene per stampare la lettura tramite Monitor seriale?
Code:
#include <SoftwareSerial.h>
SoftwareSerial ID20(12,13)
void loop(
{
Serial.begin(9600);
ID20.begin(9600);
}
void loop()
{
if(ID20.available()) {
 char i = ID20.read();
 Serial.println(i);
 }
}

Grazie ancora.
Logged

Selvazzano Dentro - Padova
Offline Offline
Edison Member
*
Karma: 37
Posts: 1313
"Chi sa fa, chi non sa insegna"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

In teoria potresti usare anche i pin 0 ed 1, ma dovresti rinunciare all'utilissimo (per non dire indispensabile) Serial Monitor.

Esatto manca il collegamento fisico e, se non ricordo male, anche quello logico sulla pin map.

In teoria il tuo sketch è funzionale, ma meglio provarlo! 
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, oggi provo lo sketch.
Certo che quelli della futura sono dei fenomeni:visto che il micro lo permette gli costava troppo predisporre anche le altra 2 seriali? Mah...
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, creando una Seriale virtuale, mettendo in comune le masse e alimentando esternamente sono riuscito a fare la lettura, ma c'è qualcosa che non mi torna.
In teoria il tag dovrebbe mandare
-1 byte di start:2
-10 byte di seriale
-2 byte di checksum
-1 byte Carriage Return
-1 byte Line Feed
-1 byte di stop:3

Totale:16 byte

Con il seguente codice
 
Code:
if(ID20.available())
  {
    int i=ID20.read();
    Serial.println(i);
  }
il risultato di un tag è questo:
Code:
2  //Start
53
51
48
48
56
56
51
55
66
68
53 //checksum
49 //checksum
13 //cr
10 //lf
3  //end
Sembrerebbe tutto ok, ma...

Sul tag c'è serigrafato un numero seriale di 10 cifre che dovrebbe servire ad identificarlo a vista:
Code:
0008927165

La mia domanda è:questo codice ha qualcosa in comune con i 10 byte del seriale ricevuto? Perchè non trovo nessuna corrispondenza...


Logged

Pages: [1]   Go Up
Jump to: