¡Saludos! Para iniciar diré que este no es el mejor método, o que este sea el único, simplemente fue la forma en la que yo resolví esto. Hace tiempo me vi en la necesidad de usar dos módulos que se comunican con el puerto serie (en ese tiempo fue un bluetooth y un modulo MP3, para este ejemplo uso un FT232 para reemplazar el MP3 ya que no tengo este a la mano, pero la mecánica es similar), prácticamente recibimos un carácter por el bluetooth (para enviar el dato se puede usar otro monitor serial con el bluetooth de la computadora o un adaptador, o simplemente usar la aplicación antes mostrada aquí en el blog), si es "a" encendemos el LED, si es "b" lo apagamos y en ambos casos mandamos un mensaje por el FT232 para visualizarlo en el monitor serial de arduino.
Circuito:
El diagrama utilizado para multiplexar se muestra a continuación, básicamente usamos transistores para esta tarea, dos de ellos se activan dependiendo del modulo a usar, debo decir que el modulo bluetooth tiene la prioridad y que no es posible transmitir o recibir por ambos módulos al mismo tiempo.
Código:
El código que hace posible esto es el siguiente:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/******************************************************************************* | |
* | |
* Multiplexar puerto serie | |
* | |
******************************************************************************* | |
* FileName: NANO_CtrlServo_potentiometer.ino | |
* Processor: ATmega328 | |
* Complier: Arduino v1.8.3 | |
* Author: Pedro Sánchez (MrChunckuee) | |
* Blog: http://mrchunckuee.blogspot.com/ | |
* Email: mrchunckuee.psr@gmail.com | |
* Description: Programa para multiplexar el puerto serie del arduino nano, | |
* su funcion es basica, enviamos un dato por el modulo bluetooth | |
* y dependiendo de este realizamos una accion y enviamos un | |
* mensaje a la terminal serial de arduino por medio de un FT232 | |
* (esta mas que claro que la prioridad la tiene el bluetooth, | |
* aclaro que no pueden estar trabajando los dos modulos al | |
* mismo tiempo). | |
******************************************************************************* | |
* Rev. Date Comment | |
* v1.00 20/10/2017 Creación del firmware | |
******************************************************************************/ | |
unsigned char inputByte = 0; // incoming serial byte | |
const int LED_Status = 13; //pin del LED | |
const int enableBluetooth = 2; //pin de control bluetooth | |
const int enableFT232 = 3; //pin de control FT232 | |
void setup(){ | |
Serial.begin(9600); | |
pinMode(LED_Status, OUTPUT); | |
pinMode(enableBluetooth, OUTPUT); | |
pinMode(enableFT232, OUTPUT); | |
digitalWrite(enableBluetooth,HIGH); //Activamos opcion de bluetooth | |
digitalWrite(enableFT232,LOW); //Apagamos opcion de FT232 | |
} | |
void loop(){ | |
if (Serial.available() > 0) { | |
inputByte = Serial.read(); // get incoming byte | |
switch(inputByte){ | |
case 'a': | |
digitalWrite(LED_Status,HIGH); | |
digitalWrite(enableBluetooth,LOW); //Apagamos bluetooth | |
delay(3); | |
digitalWrite(enableFT232,HIGH); //Activamos FT232 | |
delay(3); | |
Serial.print("LED Rojo encendido\n"); //Enviamos por puerto del FT232 | |
delay(50); | |
digitalWrite(enableFT232,LOW); //Apagamos opcion de FT232 | |
delay(3); | |
digitalWrite(enableBluetooth,HIGH); //Activamos opcion de bluetooth | |
break; | |
case 'b': | |
digitalWrite(LED_Status,LOW); | |
digitalWrite(enableBluetooth,LOW); //Apagamos bluetooth | |
delay(3); | |
digitalWrite(enableFT232,HIGH); //Activamos FT232 | |
delay(3); | |
Serial.print("LED Rojo apagado\n"); //Enviamos por puerto del FT232 | |
delay(50); | |
digitalWrite(enableFT232,LOW); //Apagamos opcion de FT232 | |
delay(3); | |
digitalWrite(enableBluetooth,HIGH); //Activamos opcion de bluetooth | |
break; | |
default: | |
digitalWrite(LED_Status,LOW); | |
break; | |
} | |
} | |
} |
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.
Donaciones:
Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interés y la otra puedes ayudarme con una donación para seguir realizando publicaciones y mejorar el contenido del sitio. También puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.
Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, así también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.
0 Comentarios