Sistema di cronometraggio

Per il sensore di luce ho deciso di optare per un foto diodo che da quello che ho letto risulta essere molto più veloce nel cambiare il proprio valore

Ok, hai già considerato che dovrai amplificare il segnale? Per questo dicevo tanto vale un fototransistor, poi ogni modello ha la sua velocità devi controllare il datasheet

Ciao

Ecco che qui viene fuori tutta la mia inesperienza :~

Amplificare un segnale non si rende necessario quando bisogna riuscire a captare anche le più piccole variazioni di un sensore ?
Nel mio caso i cambi di stato dovrebbero essere abbastanza macroscopici, passando da un illuminazione totale ad una semi penombra.
Quindi a cosa mi serve un amplificatore ? oppure l' applificatore rende in tutti i casi più veloce la lettura di un valore?

Il fototransistor è già amplificato? perchè mi viene consigliato?

Potreste anche linkarmi un display di facile utilizzo con arduino?

Scusate le molte domande, anticipatamente grazie.

In base alla distanza se hai un segnale molto debole può essere necessario amplificarlo per portarlo a 5v e leggerlo addirittura come un segnale digitale (operazione molto più veloce della lettura analogica)

Ciao

Salve ragazzi,
ho finalmente un pò di tempo libero ed ho deciso di riprendere in mano questo progetto.

Per ora ho soltanto provato a scrivere il codice di un cronometro che funziona semplicemente prendendo il via da un pulsante posto sul pin 7, successivamente proverò ad integrare un lettore di RFID.
Il codice che ho scritto (In una settimana :astonished:) è questo :

const int BUTTON_PIN=7;
const int LED_PIN=13;
int BUTTON_STATE;
int BAUD_RATE=9600;
unsigned long  TEMPO_BASE;
float  TEMPO_GIRO;
unsigned long  TEMPO_GIRI_TOT=0;
int CONTEGGIO=0;
int MINUTI;
boolean BLOCCO;
float T;


void setup(){
  pinMode(LED_PIN,OUTPUT);
  pinMode(BUTTON_PIN,INPUT);
  Serial.begin(BAUD_RATE);
}
void loop(){
  BUTTON_STATE=digitalRead(BUTTON_PIN);
  TEMPO_BASE= millis();
  if(BUTTON_STATE==HIGH){
    CONTEGGIO=CONTEGGIO+1;
    delay(500);
    Serial.print("Giro ");
    Serial.print(CONTEGGIO);
    Serial.print(" :   ");
    TEMPO_GIRI_TOT=TEMPO_GIRI_TOT+TEMPO_GIRO;
    TEMPO_GIRO=TEMPO_BASE-TEMPO_GIRI_TOT+500;
    T=TEMPO_GIRO;
    BLOCCO=false;
    MINUTI=0;

    if(T>=60000){
      BLOCCO=true;
      while(T>60000){
        MINUTI=MINUTI+1;
        T=T-60000;
      }
      Serial.print(MINUTI);
      Serial.print(":");
      Serial.println(T/1000,3);
    }


    if(TEMPO_GIRO<60000&BLOCCO==false){

      Serial.println(TEMPO_GIRO/1000,3);
    }

    digitalWrite(LED_PIN,HIGH);
  }
  else{
    digitalWrite(LED_PIN,LOW);
  }
}

Il codice compila e funziona senza intoppi (finalmente).
Vorrei chiedrvi di dare cortesemente un occhiata al codice e segnalarmi magari errori e pezzi vari di codice superfluo o migliorabile.

Anticipatamente grazie a tutti per la disponibilità.

Salve,
sono in procinto di acquistare un lettore RFID e sarei interessato a questa shield: http://www.elettroshop.com/shield-arduino-rfid/
Basata sul modulo ID-12 della Innovations Technology Datasheet http://www.id-innovations.com/httpdocs/EM%20moudule%20SERIES%202007-10-9_wfinal%20v22.pdf

Da quello che vedo questa shield ha già la morsettiera per inserire un antenna esterna (Che sarebbe il loop annegato nell' asfalto), ma quello che non sono riuscito a trovare nel datasheet è il tempo che il modulo impiega per la lettura e se dispone di una gestione per le collisioni. Sapete nulla al riguardo?

Vorrei utilizzare per questa realizzazione degli RFID attivi, ma non riesco a trovarne in vendita.... trovo solo le classiche carte o portachiavi.
Questo lettore è in grado di leggere TAG attivi?

Grazie a tutti.

Questa è invece l' ultimo sketch, con la visualizzazione del ritardo/gadagno relativo al ultimo BestLap.

const int BUTTON_PIN=7;
const int LED_PIN=13;
int BUTTON_STATE;
int BAUD_RATE=9600;
unsigned long  TEMPO_BASE;
float  TEMPO_GIRO;
unsigned long  TEMPO_GIRI_TOT=0;
int CONTEGGIO=0;
int MINUTI;
boolean BLOCCO;
float T;
float BEST;
float BEST_NEW;
float DISTACCO;

void setup(){
  pinMode(LED_PIN,OUTPUT);
  pinMode(BUTTON_PIN,INPUT);
  Serial.begin(BAUD_RATE);
  Serial.println("-----------------------\n\n******** INIZIO SESSIONE ******** \n");
}
void loop(){
  BUTTON_STATE=digitalRead(BUTTON_PIN);
  TEMPO_BASE= millis();
  if(BUTTON_STATE==HIGH){
    CONTEGGIO=CONTEGGIO+1;
    delay(500);
    Serial.print("Giro ");
    Serial.print(CONTEGGIO);
    Serial.print(" :   ");
    TEMPO_GIRI_TOT=TEMPO_GIRI_TOT+TEMPO_GIRO;
    TEMPO_GIRO=TEMPO_BASE-TEMPO_GIRI_TOT+500;
    T=TEMPO_GIRO;
    BLOCCO=false;
    MINUTI=0;

    if(T>=60000){
      BLOCCO=true;
      while(T>60000){
        MINUTI=MINUTI+1;
        T=T-60000;
      }
      Serial.print(MINUTI);
      Serial.print(":");
      Serial.print(T/1000,3);


    }

    if(TEMPO_GIRO<60000&BLOCCO==false){

      Serial.print(TEMPO_GIRO/1000,3);

    }

    digitalWrite(LED_PIN,HIGH);

    if(TEMPO_GIRO<BEST or BEST==0){
      BEST_NEW=TEMPO_GIRO;
    }

    DISTACCO=TEMPO_GIRO-BEST;
    Serial.print("(");

    if(DISTACCO>0){
      Serial.print("+");
    }

    Serial.print(DISTACCO/1000,3);   
    Serial.println(")");
    BEST=BEST_NEW;
  }
  else{
    digitalWrite(LED_PIN,LOW);
  }
}

Hey ragazzi,
Il mio sketch fa così tanto schifo da rendermi un caso disperato dove ogni aiuto è vano?
XD XD XD

Nessuno di voi ha mai avuto modo di giocherellare con questi RFID?
Io ho letto davvero molti documenti al riguardo, ma non riesco a trovare una soluzione....
Leggendo il Datasheet dell' ID-12 non sono riuscito a capire molto.....

Se qualcuno è ingrado di aiutarmi in qualche modo si faccia avanti, GRAZIE!

P.S. scusate ma non è mia abitudine creare doppi post ( tre in questo caso), ma la mia discussione era finita in 3a pagina. Magari qui cade l' occhio a qualcuno che possa aiutarmi.