Go Down

Topic: Linea Seriale su Tidigino (Read 650 times) previous topic - next topic

cirowner

May 19, 2013, 04:44 pm Last Edit: May 19, 2013, 06:42 pm by cirowner Reason: 1
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?

uwefed

#1
May 19, 2013, 08:30 pm Last Edit: May 19, 2013, 08:33 pm by uwefed Reason: 1
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

cirowner

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

uwefed

Avevi collegato la massa?
Ciao Uwe

cirowner

#4
May 19, 2013, 09:00 pm Last Edit: May 19, 2013, 10:14 pm by cirowner Reason: 1
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...

cyberhs

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).

cirowner

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: [Select]

#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.

cyberhs

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! 

cirowner

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...

cirowner

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: [Select]

if(ID20.available())
  {
    int i=ID20.read();
    Serial.println(i);
  }

il risultato di un tag è questo:
Code: [Select]

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: [Select]
0008927165

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



Go Up