ACCENDERE ARDUINO CON TRANSISTOR NPN/PNP

Ciao a tutti,
mi sono appena iscritto al forum anche se vi seguo da circa 2 mesi.

ho sviluppato un progetto di apertura porte che prevede l'utilizzo ARDUINO Nano e di un modulo GSM SIM800.
in pratica digitando un codice sulla tastiera la porta si apre e mi viene inviato un SMS indicandomi chi e' entrato. fin qui funziona tutto quando sono collegato al PC e alimento l'Arduino con la USB e la SIM800 con una batteria da 6V (4AA) collegata ad uno stabilizzatore di tensione che fornisce c.a. 4V alla scheda GSM.

All'atto pratico ho provato a collegare l'Arduino nano ai 6V e funziona ma ho paura che i due utilizzatori consumino troppo e che la batteria si scarichi in poco tempo (il modulo GSM consuma 12mA).

a questo punto mi trovo davanti a 2 soluzioni:

  1. lavorare di SW (es. i comandi Sleep AT portano il consumo a 1mA)
  2. creare una soluzione Hardware per accendere l'Arduino e il modulo GSM solo quando serve...

in questo Topic volevo affrontare la seconda opzione...

l'idea che mi e' venuta in mente e' la seguente: alimentare il tutto attraverso un transistor che viene comandato da un pulsante (questa parte funziona; al rilascio del pulsante si spegne) vedi schema allegato (mi sono ispirato a questo Link (Arduino DC motor using a transistor and a HC-05 bluetooth module - Thingsconnected) ed ho utilizzato un transistor PN2222A presente nel KIT che ho acquistato.

a questo punto, una volta che l'Arduino nano si accende, vorrei pilotare attraverso un PIN un altro transistor che mi alimenta ancora l'Arduino (ma questa volta in modo continuativo anche se il pulsante viene rilasciato) che poi vorrei far spegnere via SW (dopo l'invio dell'SMS ad esempio).

i miei vincoli sono i seguenti:

  • alimentazione 6V (4AA)
  • dal comando pulsante arriva un +
  • consumo (per dimensionamento resistenze/transistor) almeno 1A

mi sembra di aver capito che il problema sta nel tipo di transistor (PNP - NPN)

spero di essere stato chiaro...

secondo voi e' fattibile?

grazie per i vostri contributi

Non hai bisogno di un altro transistor, ma utilizzi lo stesso ingresso del transistor che hai già e lo piloterai, attraverso un diodo, da una uscita arduino. Praticamente quella che si chiama "autoritenuta" in un teleruttore o in un relé

>RedFox63: per un altra problematica, counque si è già discusso dell'argomento ... prova a leggere QUESTA discussione se può fare al caso tuo ... ::slight_smile:

Guglielmo

Grazie per le dritte, sto studiando... domani compro i componenti mancanti e testo il tutto.

  • NPN (PN2222 gia' a casa...)
  • MOS ( IRF 9520 N P-FET 100V 6A MOSFET) da acquistare

in sintesi porto un segnale positivo che permette di alimentare l'Arduino e solo quando il pin di Arduino va a negativo il circuito si "apre" spegnendo l'Arduino stesso.

quello che serve al mio progetto...

vi aggiorno appena lo testo.

Io ho usato un approccio diverso: Arduino in sleep mode (consuma quasi niente) con il pulsante che genera un pin change interrupt che lo risveglia. Funziona bene ed è molto semplice.

mi sa che proverò con lo sleep mode, devo capire i tempi di riaccensione del modulo GSM e dell'Arduino e i consumi reali delle 2 soluzioni.

tenete conto che potrebbe restare spento anche per diversi giorni e che il modulo GSM si accende solo se deve inviare un SMS (che dipende dal codice di apertura).

comunque, studio, provo e vi dico

grazie ancora x l'aiuto

ciao a tutti,
sono quasi arrivato in fondo al progetto, il circuito funziona egregiamente e permette di risparmiare molta energia: praticamente non consuma nulla quando e' a riposo.

ma mi sono arenato sulla cosa più banale: non riesco a spegnerlo utilizzando il codice ma funziona con un pulsante collegato a +5V.

per la precisione se lascio il pin 3 libero rilevo +5V (dopo il tempo di delay impostato), mentre se collego il Pin Off del circuito la tensione e' 0V

di seguito riporto il codice di test utilizzato:

void setup()
{
pinMode(3, OUTPUT); //set the digital pin as output
}

void loop()
{
delay (5000); 
digitalWrite(3, HIGH);
}

grazie per l'aiuto
RF

Ma quale circuito hai usato ?

ciao ho utilizzato il circuito consigliato da gpb01 (che ringrazio)

per comodità lo allego.

grazie anticipatamente per i consigli.

altra domanda:

che voi sappiate esistono moduli già fatti che svolgono il compito del circuito che ho allegato?

il consumo max e' di 100mA di picco (15 sec) e 40/50mA di utilizzo (per max mezzora)

ri-grazie

Comunque nel tuo caso basta anche questo

grazie,
provo a fare anche questo.
avendo solo resistenze del Kit Arduino posso utilizzare 1K al posto di 2,2K e 10K al posto di 47K?
per i transistor ho gli 2N2222 e IRF9530 che dovrebbero andare bene, giusto?

comunque, tanto per capire meglio, perché l'altro circuito non funziona con lo script che ho fatto?

sai anche se vendono qualche circuito già pronto che ha questa funzione?

grazie ancora

ho studiato il circuito alternativo che mi hai proposto e, se ho capito bene premendo il pulsante
la prima vola accedo l'Arduino ma se lo premo una seconda vola lo spengo

spiego meglio il contesto: il circuito viene attivato da un'altro circuito apriporta che per inviare il comando "TurnON" potrebbe utilizzare 2 modalità'

  1. sensore apertura porta che funziona che un interruttore NA (che resta sempre ON una volta aperta la porta e quindi non posso recepire il comando "turnOff" proveniente da Arduino

  2. (come faccio adesso) un Positivo proveniente da un Led, che resta acceso 1 secondo e dopo 5 secondi si accende ancora per 10sec. (la seconda accensione farebbe spegnere l'Arduino)

quindi, credo che in entrambi i casi il circuito precedente sia piu' indicato in quando utilizza 2 pin differenti per ON e TurnOff

sempre se ho capito bene... (il dubbio e' doveroso in quanto come elettronica ho solo conoscenze di base..)

le prove proseguono...

per essere sicuro ho rifatto il circuito

funziona tutto correttamente:

  1. se sul pin 3 del circuito porto un positivo qualsiasi
  2. usando un altro arduino porto il segnale proveniente da un pin di OUTPUT (es Pin 3) portato a HIGH (NB il secondo arduino e alimentato da USB PC ed ha il GND in comune con il primo)
  3. sul pin 3 dell'Arduino settato a LOW collego un relè che eccitato porta un positivo al circuito

NOVITA': collegando il pin di Output dell'arduino al circuito in modo diretto non va ma se "tocco" più volte il pin del circuito FUNZIONA. si ma RANDOM... ho provato più volte a creare una situazione ripetibile ma non ci sono riuscito.

P.S. ho utilizzato più Pin di output dell'Arduino e alla fine ho provato anche con un Arduino nuovo....

avete qualche idea?
Grazie

i test continuano: ho collegato un led sull'uscita TurnOff dell'Arduino e il segnale arriva correttamente: il led si accende..

se lo collego al pin del circuito che dovrebbe farlo spegnere funziona solo se lo scollego e lo ricollego a tale pin manualmente.

ho provato anche a farlo "lampeggiare" ma non si spegne. devo sempre scollegare il filo piu' volte e poi ricollegarlo

sempre senza un comportamento costante...

qualcuno riesce ad aiutarmi per cortesia?

di elettronica capisco poco: potrebbe essere un errato dimensionamento di resistenze?condensatore?

grazie
R

risolto il problema del TURN_OFF: ho inserito un condensatore da 100 micro F in parallelo al pin di reset.
appena riesco posto il circuito completo e funzionante ed il relativo sketch.

R