Vai al contenuto

RyujiAndy

Utente
  • Numero contenuti

    325
  • Iscritto

  • Ultima visita

Risposte pubblicato da RyujiAndy

  1. grazie e scusa per il ritardo ma non avevo un pc con me. ecco il codice:

     

    #include <SPI.h>

    #include <RFID.h>

    /* Vengono definiti PIN del RFID reader*/

    #define SDA_DIO 10 // 53 per Mega

    #define RESET_DIO 9

    #define delayRead 1000 // Time of delay

    #define delayLed 2000

    #define ledVerde 3

    #define ledRosso 4

    #define buzzer 2

    /* Viene creata una istanza della RFID libreria */

    RFID RC522(SDA_DIO, RESET_DIO);

     

    String codiceAutorizzato = "40A12ECB4";

     

    void setup()

    {

    Serial.begin(9600);

    /* Abilita SPI*/

    SPI.begin();

    /* Viene inizilizzato RFID reader */

    RC522.init();

    Serial.println("Setup");

    pinMode(ledVerde,OUTPUT);

    pinMode(ledRosso,OUTPUT);

    pinMode(buzzer, OUTPUT);

    }

     

    void loop()

    {

    /* Temporary loop counter */

    byte i;

    // Se viene letta una tessera

    if (RC522.isCard())

    {

    // Viene letto il suo codice

    RC522.readCardSerial();

    String codiceLetto ="";

    Serial.println("Codice delle tessera letto:");

     

    // Viene caricato il codice della tessera, all'interno di una Stringa

    for(i = 0; i <= 4; i++)

    {

    codiceLetto+= String (RC522.serNum,HEX);

    codiceLetto.toUpperCase();

    }

    Serial.println(codiceLetto);

    if(verificaCodice(codiceLetto)){

    Serial.println("Tessera autorizzata");

    accendiLed(ledVerde);

    }else{

    Serial.println("Tessera non autorizzata");

    accendiLed(ledRosso);

    digitalWrite(buzzer, HIGH);

    delay(1);

    digitalWrite(buzzer, LOW);

    delay(1);

    }

    delay(delayRead);

    }

    }

    // Questa funzione verifica se il codice Letto è autorizzato

    boolean verificaCodice(String codiceLetto){

    if(codiceLetto.equals(codiceAutorizzato)){

    return true;

    }else{

    return false;

    }

    }

    // Questa funzione permette di accendere un LED per un determinato periodo

    void accendiLed(int ledPin){

    digitalWrite(ledPin,HIGH);

    delay(delayLed);

    digitalWrite(ledPin,LOW);

    }

     

    Scusa il ritardo, comunque basta che imposti una variabile che conta il numero di autorizzazioni e con un confronto autorizzi o no la lettura.

  2. Premessa il pulsante fa passare la corrente solo quando è premuto, quindi nel tuo caso serve un interruttore che chiuda il circuito alla pressione del bottone e lo riapra successivamente, quando nuovamente premuto, in più ti ricordo che i led necessitano di una resistenza per il controllo della corrente, altrimenti non hanno vita lunga.
  3. il ground loop o detto in italiano "anelli di massa" avviene quando diversi dispositivi collegati fra loro condividono la stessa massa e quindi avviene un ricircolo della corrente sulla massa, ad esempio quando si collega un videoreggistratore ad una tv con cavi coassiali, infatti questi hanno una schermatura collegata a massa che viene collegata alla massa degli apparecchi e qui si va a formare un anello quindi un ground loop.
  4. Non x questo devi smettere perché la gente che va a leggere sui forum cerca proprio queste informazioni....e ho detto LEGGERE non postare perché la maggior parte delle persone si limita leggere e provare ..semmai posta qualcosa che nn va :)Quindi in conclusione Posta ogni cosa che fai e sempre molto utile x tutti

     

    Un po' in ritardo come incoraggiamento

  5. Come settare le frequenze dei time mi era già chiara la mia curiosità sta nei contatori per il settaggio dei segnali, così agendo forse era più semplice crearsi un controllo su di una variabile settata sulla funzione micros () e poi puoi mandare il pin desiderato in HIGH o LOW, in questo modo non sei soggetto ai pin pwn.

     

     

     

     

    Sent from my SM-G901F using ModdingStudio mobile app

  6. Senza creare una funzione si può usare il comando tone, che di norma si usa per creare un suono, e non é altro che un'onda quadra, ma la frequenza minima è di 31Hz e interferisce sulla funzione pwm del pin 3 e 11

     

    Sent from my SM-G901F using ModdingStudio mobile app

  7. Puntualizziamo Arduino non è la shield ma il bootloader presente sul chip atmel 328p ora o hai un corto da qualche parte e visto che non funziona l'erhernet sui pin 4/10/11/12/13 o è danneggiato l'smd che converte da USB a TTL, per il secondo puoi provare a programmare il 328p direttamente con l'altro Arduino, trovi la guida su questo forum, "il cuore di Arduino"
×
×
  • Crea Nuovo...