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:
lavorare di SW (es. i comandi Sleep AT portano il consumo a 1mA)
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)
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é
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.
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).
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,
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?
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à'
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
(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..)
se sul pin 3 del circuito porto un positivo qualsiasi
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)
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....
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.