Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Tinkercad: es una plataforma en línea gratuita que permite diseñar y simular circuitos
electrónicos, incluyendo aquellos con microcontroladores como Arduino. Tinkercad cuenta con
una biblioteca de componentes electrónicos y ofrece herramientas de simulación para
comprobar el comportamiento del circuito antes de su implementación física.
2. Fritzing: es un software libre y gratuito de diseño de circuitos electrónicos que permite la
creación de esquemas y la simulación de circuitos con Arduino. Fritzing cuenta con una interfaz
gráfica amigable y una amplia biblioteca de componentes electrónicos.
3. Proteus: es un software de diseño y simulación de circuitos electrónicos utilizado por
ingenieros y estudiantes de electrónica. Proteus cuenta con una biblioteca de componentes
electrónicos y ofrece herramientas de simulación para probar el funcionamiento de circuitos
con Arduino.
4. EasyEDA: es un software gratuito de diseño de circuitos electrónicos en línea que permite la
simulación de circuitos con Arduino. EasyEDA cuenta con una amplia biblioteca de
componentes electrónicos y ofrece herramientas de simulación para comprobar el
comportamiento del circuito.
Cada una de estas opciones tiene sus propias características y ventajas, por lo que te
recomiendo explorarlas y elegir la que mejor se adapte a tus necesidades y habilidades.
necesito crear codigo para arduino uno que sea capaz de sensar dos entradas de voltaje AC y
al no detectar voltaje en alguno de ellos enviar mensaje de texto mediante sim900 conectado a
la misma placa arduino.
ChatGPT
Para realizar esta tarea con Arduino Uno y SIM900, se necesitarán los siguientes componentes:
Arduino Uno
SIM900
Dos sensores de voltaje AC (como por ejemplo, sensores de corriente de tipo transformador de
corriente o CT)
Resistencias
Protoboard o placa de circuito impreso
Cableado
scssCopy code
#include <SoftwareSerial .h > SoftwareSerial sim900 ( 7 , 8 ); // RX, TX int sensor1 = A0; int sensor2 = A1;
void setup () { sim900 .begin ( 9600 ); Serial .begin ( 9600 ); } void loop () { int val1 = analogRead (sensor1);
int val2 = analogRead (sensor2); if (val1 < 100 || val2 < 100 ) { sim900 .println ("AT+CMGF= 1 "); //
Establece modo SMS delay ( 1000 ); sim900 .println ("AT+CMGS=\"+ 1234567890 \""); // Número de
teléfono para enviar el mensaje delay ( 1000 ); sim900 .println ("Alerta: se ha detectado un voltaje bajo"); //
Contenido del mensaje SMS delay ( 1000 ); sim900 .println ((char) 26 ); // Envía mensaje SMS delay ( 1000 );
} Serial .print ("Sensor 1 : "); Serial .println (val1); Serial .print ("Sensor 2 : "); Serial .println (val2);
delay ( 1000 ); // Espera 1 segundo antes de volver a leer los sensores }
Este código utiliza las entradas analógicas A0 y A1 para leer los valores de voltaje AC de los dos
sensores. Luego, se verifica si alguno de los valores es menor a 100 (este valor se puede ajustar
según la sensibilidad requerida). Si se cumple esta condición, se envía un mensaje de texto a
través de SIM900 a un número de teléfono especificado.
Espero que esta información te sea útil. Recuerda que es importante adaptar este código a tus
necesidades específicas y revisar la conexión de los componentes antes de su implementación.
1. Conectar el módulo SIM900 al Arduino Uno. Para ello, conecta los pines RX y TX del módulo
SIM900 a los pines digitales 7 y 8 del Arduino, respectivamente. También es necesario conectar
los pines GND y VCC del módulo SIM900 a los pines GND y 5V del Arduino, respectivamente.
2. Conectar los sensores de voltaje AC a las entradas analógicas A0 y A1 del Arduino. Los
sensores de voltaje AC deben estar conectados a través de un circuito que convierta la
corriente del circuito que se está midiendo a un voltaje adecuado para la entrada analógica del
Arduino.
3. Conectar las resistencias necesarias. Dependiendo de los sensores que se estén utilizando, es
posible que sea necesario agregar resistencias para proteger la entrada analógica del Arduino.
Es importante consultar la hoja de datos del sensor para determinar si es necesaria alguna
resistencia adicional.
4. Conectar la placa Arduino al ordenador mediante un cable USB.
Una vez que hayas conectado correctamente el hardware, debes cargar el código que te
proporcioné previamente en el Arduino Uno. Asegúrate de tener las bibliotecas necesarias
instaladas (por ejemplo, la biblioteca SoftwareSerial para la comunicación con el módulo
SIM900).
Espero que esto te ayude a conectar correctamente el hardware. Si tienes más preguntas, no
dudes en preguntar.
Espero que estos pasos te sean útiles para instalar las bibliotecas necesarias en el entorno de
desarrollo de Arduino. Si tienes más preguntas, no dudes en preguntar.
cppCopy code
#include <SoftwareSerial.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define
SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 Adafruit_SSD1306 display(SCREEN_WIDTH,
SCREEN_HEIGHT, &Wire, -1) ; SoftwareSerial sim900(7, 8) ; // RX, TX int sensor1 = A0; int sensor2 =
A1; void setup() { sim900. begin ( 9600 ); Serial. begin ( 9600 );
display. begin (SSD1306_SWITCHCAPVCC, 0x3C ); // Inicializa la pantalla OLED display. clearDisplay ();
display. setTextSize ( 1 ); display. setTextColor (SSD1306_WHITE); display. setCursor ( 0 , 0 );
display. println ( "Sensor 1: " ); display. println ( "Sensor 2: " ); display. display (); delay ( 2000 ); } void loop()
{ int val1 = analogRead (sensor1); int val2 = analogRead (sensor2); if (val1 < 100 || val2 < 100 )
{ sim900. println ( "AT+CMGF=1" ); // Establece modo SMS delay ( 1000 );
sim900. println ( "AT+CMGS=\"+1234567890\"" ); // Número de teléfono para enviar el mensaje
delay ( 1000 ); sim900. println ( "Alerta: se ha detectado un voltaje bajo" ); // Contenido del mensaje SMS
delay ( 1000 ); sim900. println (( char ) 26 ); // Envía mensaje SMS delay ( 1000 ); } display. clearDisplay ();
display. setCursor ( 0 , 0 ); display. println ( "Sensor 1: " + String (val1)); display. println ( "Sensor 2: " +
String (val2)); display. display (); Serial. print ( "Sensor 1: " ); Serial. println (val1); Serial. print ( "Sensor 2: " );
Serial. println (val2); delay ( 1000 ); // Espera 1 segundo antes de volver a leer los sensores }
Espero que esta modificación te sea útil para agregar una pantalla OLED al proyecto. Si tienes
más preguntas, no dudes en preguntar.
NO ME FUNCIONA EL CODIGO
ChatGPT
Lamento escuchar eso. Aquí hay algunas cosas que puedes verificar y solucionar para intentar
que el código funcione:
Si después de verificar y solucionar estos posibles problemas, el código aún no funciona, por
favor, proporciona más detalles sobre los síntomas o los mensajes de error que estás
experimentando, para que pueda ayudarte de manera más precisa.
Recuerda que estas son solo posibles soluciones y verificaciones generales. La configuración y
el comportamiento específicos del módulo SIM900 pueden variar según el fabricante y la
versión del firmware. Si los problemas persisten, consulta la documentación y los recursos
específicos del módulo SIM900 que estás utilizando para obtener más información y soporte
técnico.
1. Verifica las conexiones: Asegúrate de que las conexiones entre el Arduino y el módulo SIM900
estén correctas. Verifica que los cables RX y TX estén conectados de manera adecuada entre el
Arduino y el módulo SIM900. También verifica las conexiones de alimentación (VCC y GND) y
asegúrate de que el módulo SIM900 esté recibiendo la alimentación adecuada (generalmente
5V).
2. Comprueba los ajustes de velocidad de baudios: Verifica que la velocidad de baudios
configurada en el código del Arduino coincida con la velocidad de baudios del módulo SIM900.
Asegúrate de que ambos estén configurados para la misma velocidad de baudios (por ejemplo,
9600 bps) en las respectivas líneas sim900.begin(9600) y Serial.begin(9600).
3. Confirma la configuración del módulo SIM900: Verifica que el módulo SIM900 esté configurado
correctamente para enviar y recibir mensajes de texto. Puedes revisar la documentación del
módulo SIM900 para obtener detalles sobre los comandos AT necesarios para configurarlo
adecuadamente. Asegúrate de haber enviado los comandos AT necesarios para configurar el
módulo SIM900 en tu código antes de enviar el mensaje de texto.
4. Prueba la comunicación directa con el módulo SIM900: En lugar de usar el código completo
que incluye la lectura de los sensores, intenta enviar comandos AT directamente al módulo
SIM900 para verificar la comunicación. Puedes comentar temporalmente las líneas de lectura
de los sensores y enviar solo los comandos AT para ver si recibes respuestas del módulo
SIM900 en la consola serial.
Si después de realizar estas verificaciones aún no obtienes respuesta del módulo SIM900,
podría haber un problema adicional relacionado con la configuración del módulo o con el
propio módulo SIM900. Sería recomendable revisar la documentación específica del módulo
SIM900 que estás utilizando y buscar recursos adicionales, como tutoriales o foros
especializados, para obtener más información y soluciones específicas.
1. Abre el Administrador de bibliotecas de Arduino siguiendo los pasos del punto 3 anterior.
2. En el campo de búsqueda, ingresa "SoftwareSerial".
3. Busca la biblioteca "SoftwareSerial" en la lista de resultados y haz clic en el botón "Instalar"
junto a ella.
4. Espera a que se complete el proceso de instalación. Verás un mensaje indicando que la
instalación ha finalizado.
Una vez que la biblioteca SoftwareSerial esté instalada, podrás utilizarla en tus proyectos de
Arduino. Asegúrate de incluir la línea #include <SoftwareSerial.h> al comienzo de tu código
para poder utilizar las funciones y objetos de la biblioteca.
Existen varias bibliotecas disponibles que pueden ser utilizadas para interactuar con el módulo
SIM900. Una de las bibliotecas populares es la "SIM900" que proporciona funciones y métodos
para enviar y recibir mensajes de texto, hacer llamadas, gestionar la conexión GPRS, etc.
Aquí tienes los pasos para instalar la biblioteca "SIM900" en el entorno de Arduino:
Una vez que la biblioteca "SIM900" esté instalada, podrás utilizarla en tu proyecto para
controlar el módulo SIM900 y realizar las operaciones necesarias, como enviar mensajes de
texto, hacer llamadas, etc. Asegúrate de incluir la línea #include <SIM900.h> al comienzo de tu
código para poder utilizar las funciones y objetos de la biblioteca.
Recuerda que la biblioteca "SIM900" es solo una opción y hay otras bibliotecas disponibles
para trabajar con el módulo SIM900. Puedes explorar diferentes bibliotecas y elegir la que
mejor se adapte a tus necesidades y preferencias.
podrias darme el primer codigo pero en vez del modulo sim900 utilizar un A6
ChatGPT
Por supuesto, aquí tienes un ejemplo de código para Arduino que utiliza el módulo A6 para
enviar mensajes de texto cuando no se detecta voltaje en las entradas de voltaje AC:
cppCopy code
#include <SoftwareSerial.h> // Configuración del módulo A6 #define A6_RX_PIN 10 #define
A6_TX_PIN 11 SoftwareSerial A6(A6_TX_PIN, A6_RX_PIN) ; // Definición de los pines de entrada de
voltaje AC #define AC_INPUT_PIN_1 A0 #define AC_INPUT_PIN_2 A1 // Número de teléfono para
enviar el mensaje de texto String phoneNumber = "+1234567890" ; // Inserta aquí el número de teléfono de
destino void setup() { // Inicialización del puerto serie del Arduino Serial. begin ( 9600 ); // Inicialización del
puerto serie del módulo A6 A6. begin ( 9600 ); // Espera a que el módulo A6 se inicie completamente
delay ( 2000 ); // Configura el módulo A6 para que envíe mensajes de texto en modo texto
A6. println ( "AT+CMGF=1" ); delay ( 500 ); // Establece el número de teléfono de destino
A6. print ( "AT+CMGS=\"" ); A6. print (phoneNumber); A6. println ( "\"" ); delay ( 500 ); } void loop() { //
Lee los valores de voltaje AC en las entradas int voltage1 = analogRead (AC_INPUT_PIN_1); int voltage2
= analogRead (AC_INPUT_PIN_2); // Convierte los valores de voltaje a voltajes reales (según tu
configuración) float realVoltage1 = map (voltage1, 0 , 1023 , 0 , 5 ); float realVoltage2 = map (voltage2,
0 , 1023 , 0 , 5 ); // Verifica si no hay voltaje en alguna de las entradas if (realVoltage1 == 0 || realVoltage2
== 0 ) { // Envía el mensaje de texto A6. print ( "No se detecta voltaje en una de las entradas AC" );
A6. write ( 26 ); // Envía el carácter Ctrl+Z para finalizar el mensaje de texto delay ( 1000 ); // Espera a que se
envíe el mensaje } // Espera un tiempo antes de realizar la próxima lectura delay ( 1000 ); }
Ten en cuenta que el código anterior es un ejemplo básico y puede requerir ajustes adicionales
según tu configuración específica. Además, asegúrate de consultar la documentación del
módulo A6 y los comandos AT correspondientes para configurarlo correctamente y adaptar el
código según tus necesidades.
da error el codigo
ChatGPT
Lamento que hayas experimentado errores con el código. El código proporcionado
anteriormente es solo un ejemplo básico y puede requerir modificaciones adicionales para que
funcione correctamente con tu configuración específica.
Para ayudarte mejor, necesitaría más información sobre el error específico que estás
enfrentando. ¿Podrías proporcionar más detalles sobre el error que recibes o el mensaje de
error que aparece en la consola del Arduino IDE? Esto me ayudaría a entender mejor el
problema y brindarte una solución más precisa.
Además, asegúrate de haber realizado las siguientes verificaciones y ajustes antes de cargar el
código en tu Arduino:
1. Verifica las conexiones: Asegúrate de que los pines RX y TX del módulo A6 estén conectados
correctamente a los pines RX y TX del Arduino, respectivamente. Además, verifica las
conexiones de alimentación (VCC y GND) del módulo A6.
2. Configuración de los pines: Asegúrate de haber definido correctamente los pines RX y TX del
módulo A6 en el código. Verifica que los pines definidos coincidan con las conexiones físicas
que has realizado.
3. Comprueba la velocidad de baudios: Verifica que la velocidad de baudios configurada en el
código coincida con la velocidad de baudios del módulo A6. Asegúrate de que ambos estén
configurados para la misma velocidad de baudios (por ejemplo, 9600 bps) en las líneas
A6.begin(9600) y Serial.begin(9600).
Si aún encuentras dificultades, por favor, proporciona más detalles sobre el error para que
pueda ayudarte de manera más precisa.
Si aún tienes dificultades y recibes mensajes de error específicos, sería útil si pudieras
proporcionar los detalles del error para que pueda ayudarte de manera más precisa a
solucionarlo.
cppCopy code
#include <SoftwareSerial.h> // Configuración del módulo A6 #define A6_RX_PIN 10 #define
A6_TX_PIN 11 SoftwareSerial A6(A6_RX_PIN, A6_TX_PIN) ; // Definición de los pines de entrada de
voltaje AC #define AC_INPUT_PIN_1 A0 #define AC_INPUT_PIN_2 A1 // Número de teléfono para
enviar el mensaje de texto String phoneNumber = "+1234567890" ; // Inserta aquí el número de teléfono de
destino void setup() { // Inicialización del puerto serie del Arduino Serial. begin ( 9600 ); // Inicialización del
puerto serie del módulo A6 A6. begin ( 9600 ); delay ( 1000 ); // Configuración del módulo A6 para recibir
mensajes de texto A6. print ( "AT+CMGF=1\r\n" ); delay ( 1000 ); // Establece el número de teléfono de
destino A6. print ( "AT+CMGS=\"" ); A6. print (phoneNumber); A6. println ( "\"" ); delay ( 1000 ); } void
loop() { // Lee los valores de voltaje AC en las entradas int voltage1 = analogRead (AC_INPUT_PIN_1);
int voltage2 = analogRead (AC_INPUT_PIN_2); // Convierte los valores de voltaje a voltajes reales (según
tu configuración) float realVoltage1 = map (voltage1, 0 , 1023 , 0 , 5 ); float realVoltage2 = map (voltage2,
0 , 1023 , 0 , 5 ); // Verifica si no hay voltaje en alguna de las entradas if (realVoltage1 == 0 || realVoltage2
== 0 ) { // Envía el mensaje de texto A6. print ( "No se detecta voltaje en una de las entradas AC" );
A6. write ( 26 ); // Envía el carácter Ctrl+Z para finalizar el mensaje de texto delay ( 1000 ); // Espera a que se
envíe el mensaje } // Espera un tiempo antes de realizar la próxima lectura delay ( 1000 ); }
Esta versión corregida incluye algunos ajustes en los comandos AT utilizados para comunicarse
con el módulo A6. Además, se ha agregado un pequeño retardo después de iniciar la
comunicación con el módulo A6 para asegurar una conexión estable.
Espero que esta versión corregida funcione correctamente para ti. Por favor, inténtalo
nuevamente y hazme saber si sigues experimentando problemas o si tienes alguna otra
pregunta.
To resolve this issue, you can try using a different name for the SoftwareSerial object. Here's
an updated version of the code with a different name for the object:
cppCopy code
#include <SoftwareSerial.h> // Configuración del módulo A6 #define A6_RX_PIN 10 #define
A6_TX_PIN 11 SoftwareSerial mySerial(A6_RX_PIN, A6_TX_PIN) ; // Definición de los pines de entrada
de voltaje AC #define AC_INPUT_PIN_1 A0 #define AC_INPUT_PIN_2 A1 // Número de teléfono para
enviar el mensaje de texto String phoneNumber = "+1234567890" ; // Inserta aquí el número de teléfono de
destino void setup() { // Inicialización del puerto serie del Arduino Serial. begin ( 9600 ); // Inicialización del
puerto serie del módulo A6 mySerial. begin ( 9600 ); delay ( 1000 ); // Configuración del módulo A6 para
recibir mensajes de texto mySerial. print ( "AT+CMGF=1\r\n" ); delay ( 1000 ); // Establece el número de
teléfono de destino mySerial. print ( "AT+CMGS=\"" ); mySerial. print (phoneNumber);
mySerial. println ( "\"" ); delay ( 1000 ); } void loop() { // Lee los valores de voltaje AC en las entradas int
voltage1 = analogRead (AC_INPUT_PIN_1); int voltage2 = analogRead (AC_INPUT_PIN_2); // Convierte
los valores de voltaje a voltajes reales (según tu configuración) float realVoltage1 = map (voltage1, 0 ,
1023 , 0 , 5 ); float realVoltage2 = map (voltage2, 0 , 1023 , 0 , 5 ); // Verifica si no hay voltaje en alguna de
las entradas if (realVoltage1 == 0 || realVoltage2 == 0 ) { // Envía el mensaje de texto mySerial. print ( "No
se detecta voltaje en una de las entradas AC" ); mySerial. write ( 26 ); // Envía el carácter Ctrl+Z para finalizar
el mensaje de texto delay ( 1000 ); // Espera a que se envíe el mensaje } // Espera un tiempo antes de realizar
la próxima lectura delay ( 1000 ); }
In this updated code, the SoftwareSerial object is renamed as mySerial to avoid the conflict.
Please try compiling this version and let me know if you encounter any further issues.
cppCopy code
#include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include
<SoftwareSerial.h> // Configuración del módulo A6 #define A6_RX_PIN 10 #define A6_TX_PIN 11
SoftwareSerial mySerial(A6_RX_PIN, A6_TX_PIN) ; // Definición de los pines de entrada de voltaje AC
#define AC_INPUT_PIN_1 A0 #define AC_INPUT_PIN_2 A1 // Número de teléfono para enviar el
mensaje de texto String phoneNumber = "+1234567890" ; // Inserta aquí el número de teléfono de destino //
Configuración de la pantalla OLED #define OLED_RESET_PIN 9 Adafruit_SSD1306
display(OLED_RESET_PIN) ; void setup() { // Inicialización de la pantalla OLED
display. begin (SSD1306_SWITCHCAPVCC, 0x3C ); display. clearDisplay ();
display. setTextColor (WHITE); display. setTextSize ( 1 ); display. setCursor ( 0 , 0 ); display. println ( "AC
Voltage Monitor" ); display. display (); delay ( 2000 ); // Inicialización del puerto serie del Arduino
Serial. begin ( 9600 ); // Inicialización del puerto serie del módulo A6 mySerial. begin ( 9600 ); delay ( 1000 );
// Configuración del módulo A6 para recibir mensajes de texto mySerial. print ( "AT+CMGF=1\r\n" );
delay ( 1000 ); // Establece el número de teléfono de destino mySerial. print ( "AT+CMGS=\"" );
mySerial. print (phoneNumber); mySerial. println ( "\"" ); delay ( 1000 ); } void loop() { // Lee los valores de
voltaje AC en las entradas int voltage1 = analogRead (AC_INPUT_PIN_1); int voltage2 =
analogRead (AC_INPUT_PIN_2); // Convierte los valores de voltaje a voltajes reales (según tu
configuración) float realVoltage1 = map (voltage1, 0 , 1023 , 0 , 5 ); float realVoltage2 = map (voltage2,
0 , 1023 , 0 , 5 ); // Verifica si no hay voltaje en alguna de las entradas if (realVoltage1 == 0 || realVoltage2
== 0 ) { // Envía el mensaje de texto mySerial. print ( "No se detecta voltaje en una de las entradas AC" );
mySerial. write ( 26 ); // Envía el carácter Ctrl+Z para finalizar el mensaje de texto delay ( 1000 ); // Espera a
que se envíe el mensaje // Muestra el estado del envío en la pantalla OLED display. clearDisplay ();
display. setCursor ( 0 , 0 ); display. println ( "Voltage: " ); display. setCursor ( 0 , 16 ); display. print ( "No
voltage detected" ); display. display (); } else { // Muestra los valores de voltaje en la pantalla OLED
display. clearDisplay (); display. setCursor ( 0 , 0 ); display. println ( "Voltage: " ); display. setCursor ( 0 , 16 );
display. print ( "AC 1: " ); display. print (realVoltage1); display. setCursor ( 0 , 32 ); display. print ( "AC
1. VCC: Conecta el pin de alimentación VCC de la pantalla OLED al pin de 5V del Arduino.
2. GND: Conecta el pin GND de la pantalla OLED al pin GND del Arduino.
3. SDA: Conecta el pin SDA de la pantalla OLED al pin SDA del Arduino. En el caso de Arduino
UNO, utiliza el pin A4.
4. SCL: Conecta el pin SCL de la pantalla OLED al pin SCL del Arduino. En el caso de Arduino UNO,
utiliza el pin A5.
5. RES: Conecta el pin RESET de la pantalla OLED a cualquier pin digital del Arduino. En el código
de ejemplo, se utiliza el pin 9.
Una vez que hayas realizado las conexiones físicas, asegúrate de haber instalado la biblioteca
"Adafruit SSD1306" desde el Administrador de bibliotecas de Arduino. Luego, puedes cargar el
código de ejemplo que te proporcioné previamente.
Espero que esto te ayude a conectar la pantalla OLED a tu Arduino. Si tienes alguna otra
pregunta, ¡no dudes en preguntar!
Para la pantalla OLED SSD1306, el pin RESET se conecta al pin de reinicio general del Arduino.
En la mayoría de las placas Arduino, el pin de reinicio general se identifica como RESET y suele
estar cerca del pin 3V3 y GND.
Por lo tanto, no necesitas realizar una conexión específica para el pin RESET de la pantalla
OLED. Simplemente puedes dejar el pin RESET de la pantalla OLED sin conectar. El resto de las
conexiones siguen siendo las mismas:
1. VCC: Conecta el pin de alimentación VCC de la pantalla OLED al pin de 5V del Arduino.
2. GND: Conecta el pin GND de la pantalla OLED al pin GND del Arduino.
3. SDA: Conecta el pin SDA de la pantalla OLED al pin SDA del Arduino. En el caso de Arduino
UNO, utiliza el pin A4.
4. SCL: Conecta el pin SCL de la pantalla OLED al pin SCL del Arduino. En el caso de Arduino UNO,
utiliza el pin A5.
Una vez que hayas realizado estas conexiones, asegúrate de haber instalado la biblioteca
"Adafruit SSD1306" desde el Administrador de bibliotecas de Arduino. Luego, carga el código
de ejemplo que te proporcioné previamente.
Lamento la confusión anterior y espero que esta información sea útil para ti. Si tienes alguna
otra pregunta, ¡no dudes en preguntar!
cppCopy code
#include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include
<SoftwareSerial.h> // Configuración del módulo A6 #define A6_RX_PIN 10 #define A6_TX_PIN 11
SoftwareSerial mySerial(A6_RX_PIN, A6_TX_PIN) ; // Definición de los pines de entrada de voltaje AC
#define AC_INPUT_PIN_1 A0 #define AC_INPUT_PIN_2 A1 // Número de teléfono para enviar el
mensaje de texto String phoneNumber = "+1234567890" ; // Inserta aquí el número de teléfono de destino //
Configuración de la pantalla OLED #define OLED_RESET_PIN 9 Adafruit_SSD1306
display(OLED_RESET_PIN) ; void setup() { // Inicialización de la pantalla OLED
display. begin (SSD1306_SWITCHCAPVCC, 0x3C ); display. clearDisplay ();
display. setTextColor (WHITE); display. setTextSize ( 1 ); display. setCursor ( 0 , 0 ); display. println ( "AC
Voltage Monitor" ); display. display (); delay ( 2000 ); // Inicialización del puerto serie del Arduino
Serial. begin ( 9600 ); // Inicialización del puerto serie del módulo A6 mySerial. begin ( 9600 ); delay ( 1000 );
// Configuración del módulo A6 para recibir mensajes de texto mySerial. print ( "AT+CMGF=1\r\n" );
delay ( 1000 ); // Establece el número de teléfono de destino mySerial. print ( "AT+CMGS=\"" );
mySerial. print (phoneNumber); mySerial. println ( "\"" ); delay ( 1000 ); } void loop() { // Lee los valores de
voltaje AC en las entradas int voltage1 = analogRead (AC_INPUT_PIN_1); int voltage2 =
analogRead (AC_INPUT_PIN_2); // Convierte los valores de voltaje a voltajes reales (según tu
configuración) float realVoltage1 = map (voltage1, 0 , 1023 , 0 , 5 ); float realVoltage2 = map (voltage2,
0 , 1023 , 0 , 5 ); // Verifica si no hay voltaje en alguna de las entradas if (realVoltage1 == 0 || realVoltage2
== 0 ) { // Envía el mensaje de texto mySerial. print ( "No se detecta voltaje en una de las entradas AC" );
mySerial. write ( 26 ); // Envía el carácter Ctrl+Z para finalizar el mensaje de texto delay ( 1000 ); // Espera a
que se envíe el mensaje // Muestra el estado del envío en la pantalla OLED display. clearDisplay ();
display. setCursor ( 0 , 0 ); display. println ( "Voltage: " ); display. setCursor ( 0 , 16 ); display. print ( "No
voltage detected" ); display. display (); } else { // Muestra los valores de voltaje en la pantalla OLED
display. clearDisplay (); display. setCursor ( 0 , 0 ); display. println ( "Voltage: " ); display. setCursor ( 0 , 16 );
display. print ( "AC 1: " ); display. print (realVoltage1); display. setCursor ( 0 , 32 ); display. print ( "AC 2: " );
display. print (realVoltage2); display. display (); } // Espera un tiempo antes de realizar la próxima lectura
delay ( 1000 ); }
Asegúrate de haber instalado las bibliotecas Adafruit GFX y Adafruit SSD1306 desde el
Administrador de bibliotecas de Arduino. Conecta la pantalla OLED según las instrucciones
previas y carga este código en tu Arduino.
Espero que esto solucione el problema y puedas ver los valores de voltaje en la pantalla OLED.
Si tienes más preguntas, no dudes en preguntar.