Estoy tratando de crear un circuito de ahorro de batería hecho en casa para encender mi microcontrolador (nodemcu v2),
Sigo enlace y creé la conexión en el panel,
TPL está conectado de la siguiente manera
- Pin -1 V + - para alimentar el riel (5v o batería normal de Li-Ion 4.2v)
- Pin -2 GND - GND común
- PIN -3 DELAY - 20Kohm a tierra (~ 20 segundos de tiempo de funcionamiento)
- Pin -4 EN - GND (ya que quiero que sea un disparo y no un temporizador) a través del botón y otra pata del botón V +.
- Pin -5 DRV: puerta a mi MOSFET (mejora de canal N FQP30N06)
- Pin -6 HECHO - Pin hecho a MicroController D2 / 2 (depende del tipo esp8266)
En el lado MOSFET
- GATE está conectado al Pin 5 anterior, por lo que cada vez que pulso el botón TPL establece el pin DRV alto que debería habilitar el mosfet
- pin USB MC conectado a V +
- MC Ground está conectado Drain of Mosfet
- La fuente de Mosfet está conectada a GND común
- GATE y DRAIN se conectan mediante una resistencia de 5K ohmios
Las siguientes son mis dudas
- Incluso cuando el TPL DRV está bajo, mi LED externo a MC en el pin 13 está encendido y el voltaje es < 0.5 voltios, ¿el microcontrolador debe estar APAGADO por completo?
- Mi intención es adjuntar Reed Switch en lugar del botón pulsador a TPL, por lo que cada vez que abro la puerta, debería encender Mosfet a través de tpl y el microcontrolador debería hacer el trabajo y enviar el DONE para que se apague
- Enviar HECHO a través de un microcontrolador no apaga el TPL, pero eso no es algo que me moleste en esta etapa, pero aún me gustaría saberlo
Subiré mi circuito desde el tablero de pruebas, pero debo ponerle etiquetas.
A continuación se muestra un código simple que enciende el LED en el Pin 13 / D7
#include "AdafruitIO_WiFi.h"
#define HUZZAH
#ifdef HUZZAH
#define DONEPIN 2 // TPL5100 Done signal
#define LEDPIN 13
#else
#define DONEPIN D2 // TPL5100 Done signal
#define LEDPIN D7
#endif
#define DEBUG true
#define BAUD_RATE 115200
const char* ssid = "wifi";
const char* password = "password";
#define AIO_KEY "mykey"
AdafruitIO_WiFi io("userId", AIO_KEY, ssid, password);
void logMessage(String message, boolean noCRLF=false){
#ifdef DEBUG
if (Serial){
if (noCRLF){
Serial.print(message);
}else{
Serial.println(message);
}
}
#endif
}
void connectAdaIo(){
bool sendData = false;
logMessage("Connecting to Adafruit.io");
// connect to io.adafruit.com
io.connect();
int retry = 0;
// wait for a connection
while(io.status() < AIO_CONNECTED || retry < 10) {
logMessage(".");
retry++;
delay(500);
}
if (io.status() < AIO_CONNECTED){
sendData = false;
}
// we are connected
logMessage("Adafruit connected:" + sendData ? "true" : "false");
logMessage(io.statusText());
}
/*
* send DONE signla to TPL5100 to shut the power off
*/
void sendDone(){
digitalWrite(DONEPIN, HIGH);
delay(1);
digitalWrite(DONEPIN, LOW);
delay(1);
}
void setup() {
delay(10);
Serial.begin(BAUD_RATE);
Serial.println("Measuring Temp on DS18B20 \n");
delay(10);
pinMode(DONEPIN, OUTPUT);
pinMode(LEDPIN, OUTPUT);
digitalWrite(DONEPIN, LOW);
connectAdaIo();
}
void loop() {
io.run();
digitalWrite(LEDPIN, HIGH);
logMessage("I was here", true);
delay(3000);
digitalWrite(LEDPIN, LOW);
while(true){
sendDone();
}
}