Go Down

Topic: Linea Seriale su Tidigino (Read 769 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy