Jump to content
PLC Forum


Arduino nano logica auto ON mediante una tensione di riferimento


alexcanadair
 Share

Recommended Posts

Buongiorno a tutti voi¬†ūüėŹ

ho bisogno di programmare un Arduino nano con questa logica di funzionamento,

Arduino deve essere alimentato a 5v, mi necessita di una uscita che pilota un micro relè (contatto pulito) e un ingresso che mi legge una presenza di tensione di riferimento 5,3V

nel momento che si accende Arduino carica il suo programma, subito va a leggere la tensione di riferimento di 5,3V se non è presente attiva un timer countdown di 5 o 10 secondi dopo di che gli dice di eccitare il relè per un secondo passando il suo contatto da normalmente aperto a normalmente chiuso, per poi riposizionarsi in modalità NA da quel momento in poi il timer di Arduino si deve mettere in pausa perché rileva quella tensione di riferimento presente di 5,3V, nel momento che la tensione di riferimento viene a mancare riparte il timer per poi di nuovo eccitare il relè per 1 secondo.

purtroppo di programmazione sono messo male e non saprei in che modo compilare lo sketch,

vi ringrazio per il supporto.¬†ūüėä

Edited by alexcanadair
Link to comment
Share on other sites


Gi√† se devi leggere la tensione di 5,3V ti consiglio di fare un partitore in modo da presentare un tensione „Äädi 5 V¬† poi la mappai in modo di con confrontarla con un valore pi√Ļ comodo.

Per il resto devi cominciare a buttare su un pezzo di carta il programma almeno a blocchi...

 

Link to comment
Share on other sites

5 ore fa, alexcanadair ha scritto:

purtroppo di programmazione sono messo male e non saprei in che modo compilare lo sketch,

 

Concordo e condivido quanto ha scritto max.bocca.

Ti suggerisco, come mprima cosa, di studiarti bene l'uso dei timer di arduino; in rete trovi moltissimo materiale sulla programamzione dei timer.

Poi disegna lo schema a blocchi ed il diagramma di flusso. Fatte qeuste operazioni il programma è praticamente fatto.

Link to comment
Share on other sites

capisco che purtroppo di programmazione non ho conoscenze, ma di solito in rete si trovano dei progetti pronti dove semplicemente carico lo¬†sketch¬†in allegato anche lo schema, ma questa funzione √® un po particolare, oppure magari trovare lo¬†sketch che ha questa logica: alimentando Arduino¬†dopo 5 o 10 secondi eccita il rel√® per 1 secondo per una sola volta senza tensione di riferimento, dovrebbe essere pi√Ļ fattibile?

Link to comment
Share on other sites

3 minuti fa, alexcanadair ha scritto:

dovrebbe essere pi√Ļ fattibile?

 

Non presenta particolari difficioltà così come non presenta particolari difficoltà il precedente.

 

4 minuti fa, alexcanadair ha scritto:

ma di solito in rete si trovano dei progetti pronti

 

Prima o poi dovrai almeno capire quello che scarichi dalla rete.

Link to comment
Share on other sites

void setup() {
  pinMode(2, OUTPUT);
}

void loop() {
  if (analogRead(A0) < 10) {
    delay(5000);
    digitalWrite(2, HIGH);
    delay(1000);
    digitalWrite(2, LOW);
  }
}

se ho ben capito, il programma è molto semplice. questa può essere una base di partenza molto rudimentale.

sul A0 colleghi il partitore, sul 2 colleghi il relè tramite un transistor.

dovrai aggiustare forse la comparazione nell'if , perchè di solito le letture analogiche sono sempre un po flottanti, oltre alla tensione di riferimento che potrebbe avere anch'essa delle oscillazioni.

Link to comment
Share on other sites

Il 12/10/2022 alle 15:02 , laser79 ha scritto:
void setup() {
  pinMode(2, OUTPUT);
}

void loop() {
  if (analogRead(A0) < 10) {
    delay(5000);
    digitalWrite(2, HIGH);
    delay(1000);
    digitalWrite(2, LOW);
  }
}

se ho ben capito, il programma è molto semplice. questa può essere una base di partenza molto rudimentale.

sul A0 colleghi il partitore, sul 2 colleghi il relè tramite un transistor.

dovrai aggiustare forse la comparazione nell'if , perchè di solito le letture analogiche sono sempre un po flottanti, oltre alla tensione di riferimento che potrebbe avere anch'essa delle oscillazioni.

Grazie Laser¬†ūüėȬ†funziona a meraviglia!¬†

ho dovuto rettificare solo la durata del contatto rel√® prolungandolo di 1 secondo in pi√Ļ, in modo che accende il dispositivo va a rilevare la tensione di riferimento e si ferma il timer, video in allegato del funzionamento.

https://files.fm/u/7z4z8vprt#/view/z55urgq39

 

digitalWrite(2, HIGH);
    delay(2000); 
Edited by alexcanadair
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...