Niki hai codice a disposizione? O comunque un po' di documentazione? E' una cosa interessante e potrebbe aiutare Wonder!
Comunque la cosa era assai semplice, leggevo lo stato logico del pin collegato alla gettoniera con debounce di 100ms
Ad ogni lettura a livello logico basso corrispondeva un impulso della gettoniera, in quella installazione gestivo solo monete da 50cent, 1 euro e 2 euro, 50 centesimi = 1 impulso , 1 euro 2 impulsi, 2 euro 4 implusi .
Nella peggiore ipotesi dei 2 euro impiega c.a. 400ms per leggere tutto il treno.Impostando diversamente la gettoniera ed il debounce si può anche scendere, ma mi sembrano tempi accettabili per un riconoscitore di denaro!
Sicuramente posso dirti che hai frainteso come funziona la modalità multiimpulso,i tempi che hai ipotizzato sono veramente biblici.
E probalile che abbia frainteso o non la chiamiamo allo stesso modo.
le differenze di tempo possono anche essere dovute all'unità di misura, mi sembra giusto che se usi 50 Cent e l'unita di conteggio è quella sono 400 ms
nel mio caso invece l'unità di misura è 10 cent e l'accetttazione di una moneta di 2 euro dura almeno 2 sec con la modalità che usi tu
probabilmente non è la stessa che sto verificando io perchè in una configurazione con scheda I/O=originale (relè che si eccita ad ogni impulso) una moneta da 2 euro viene acquisita in 6 sec.
Scusa se mi permetto ancora wonder ma mi sembra veramente (come hai anche tu stesso ammesso) che ti stai veramente complicando tanto la vita per nulla!
si me la sto complicando sicuramente perchè in origine volevo la comunicazione rs232 dove il dato che la gettoniera sputa è quello e non va interpretato.
se mi aiutate a risolvere il problema di comunicazione seriale elimino anche tutti i dubbi su come interfacciarmi alla gettoniera.
qui sotto il codice di base
è un esempio base dove in teoria trasferisco i dati seriali da serial monitor verso gettoniera e viceversa.
#include <SoftwareSerial.h>
#include <icrmacros.h>
SoftwareSerial mySerial(6, 7);
int inByte = 0;
int outByte = 0;
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
}
void loop() {
// read from port 0, send to port 1:
if (Serial.available()) {
int outByte = Serial.read();
// Serial.println("comando");
mySerial.print(outByte,HEX);
}
// read from port 1, send to port 0:
if (mySerial.available()) {
int inByte = mySerial.read();
Serial.println("Risp. gettoniera");
Serial.print( inByte,HEX);
}
}
beh non funziona proprio
quello che deve fare è questo:
da serial monitor spedendo il comando 00 1D metto la gettoniera in attesa moneta.
quando la moneta viene letta, la gettoniera dovrebbe rispondere con 2 byte in esadecimale con il valore della moneta.
già con il solo comando 00 la gettoniera dovrebbe risponde con 00 00 (verificato con un terminale e una connessione diretta tra rs232 pc e gettoniera)
da serial monitor tramite arduino ho provato a inserire 00, 0, 0x00, (0x00) ma non ottengo mai una risposta dalla gettoniera.
ditemi dove sto sbagliando per favore perchè sta cosa mi sta facendo andare fuori di testa
ciao ciao