Soy relativamente inexperto en lo que respecta a circuitos y electrónica. Sin embargo, estoy intentando crear un dispositivo simple en el que al presionar un botón, el dispositivo se enciende y llama a un número específico.
Mi lista de piezas - - Fona 32u4 - Nivel lógico canal N Mosfet - Resistencia de 10k ohmios - Resistencia de 220 ohmios. - presionar el botón - LED - Alambres y tal - Batería de 3.7 v 3000 mAH
Para fines de creación de prototipos, actualmente estoy diseñando esto en una placa de pruebas -
Aquíestáelcircuito-
Cadavezqueejecutoesteprograma-
#include"Adafruit_FONA.h"
#define FONA_RX 9
#define FONA_TX 8
#define FONA_RST 4
#define FONA_RI 7
#define number "###"
int LED = 11;
#include <SoftwareSerial.h>
SoftwareSerial fonaSS = SoftwareSerial(FONA_TX, FONA_RX);
SoftwareSerial *fonaSerial = &fonaSS;
Adafruit_FONA fona = Adafruit_FONA(FONA_RST);
uint8_t readline(char *buff, uint8_t maxbuff, uint16_t timeout = 0);
uint8_t type;
void setup() {
Serial.begin(115200);
pinMode(12, OUTPUT);//This is the MOSFET gate
digitalWrite(12, HIGH);//Immediately activate the MOSFET gate
pinMode(13, OUTPUT);//This is the LED
pinMode(LED, OUTPUT);//This is the LED
fonaSerial->begin(4800);
if (! fona.begin(*fonaSerial)) {
while (1);
}
type = fona.type();
Serial.println(F("FONA is OK"));
Serial.print(F("Found "));
switch (type) {
case FONA800H:
Serial.println(F("FONA 800H"));
Serial.println("Connected");
break;
}
while (1) {
digitalWrite(LED, HIGH); // turn the LED on
delay(100); // wait for a second
digitalWrite(LED, LOW); // turn the LED off
delay(100);
uint8_t n = fona.getNetworkStatus();
Serial.print(F("Network status "));
Serial.print(n);
Serial.print(F(": "));
if (n == 0) Serial.println(F("Not registered"));
if (n == 1) Serial.println(F("Registered (Online)"));
if (n == 2) Serial.println(F("Not registered (searching)"));
if (n == 3) Serial.println(F("Denied"));
if (n == 4) Serial.println(F("Unknown"));
if (n == 5) Serial.println(F("Registered roaming"));
if (n == 1) break;
}
delay(250);
Serial.println ("Ready to call");
callPhone();
}
void loop(){
digitalWrite(13, HIGH);delay(50);digitalWrite(13, LOW);delay(50);
}
void callPhone() {
delay(250);
fona.callPhone(number);
Serial.println("called the POPO");
}
No funciona debido a la falta de voltaje. La batería suministra 3,7 voltios, pero cuando el circuito se pone en uso, el chip solo recibe 1,2 voltios. Como se dijo antes, estoy limitado en el conocimiento. Le pido a alguien que me ayude a comprender por qué el voltaje suministrado es tan bajo y cómo solucionarlo.
Sospecho que es la falla del tablero, tal vez los cables disminuyen el voltaje o el mosfet. Pero no tengo forma de entenderlo.