Cambiando 1 módulo BT entre 4 dispositivos Arduino

1

Tengo un diseño para un banco de trabajo electrónico que tiene 2 Arduino (un Mega y un Uno), y varios probadores de componentes que tienen MCU Atmega328 en su núcleo, y me preguntaba si hay una manera de tener un BT HC 05 módulo que puedo cambiar entre los dispositivos para programarlos individualmente uno a la vez (en lugar de tener 4 módulos BT, es decir, uno para cada uno).

Pueden compartir un pasador de 3.3V común, tierra e indicadores LED, ya que todos los dispositivos comparten la misma potencia y tierra. AFAICT las únicas 3 líneas de bus que deben intercambiarse entre los dispositivos son la RST (que utiliza el HC-05 pin 32 y un condensador de 100 nF), TX y amp; Líneas de RX. ¿Qué componentes y amp; ¿Qué circuito puedo usar para seleccionar y cambiar estas tres líneas de bus a los dispositivos que deseo programar?

El circuito básico para un dispositivo con un módulo BT está aquí: - > Circuito de programación Arduino BT

Aunque usaré el módulo básico, no la versión en una placa adaptadora de 5V.

¿Puedo usar 3 optoacopladores cuádruples (uno para cada una de las 3 líneas que deben intercambiarse entre los 4 dispositivos) y algún mecanismo para seleccionar cuándo encender el que quiero en cada paquete de OC? Entiendo cómo encender el OC (probablemente con el ATMEGA328 o una compuerta lógica de enganche activada por un botón pulsador, pero necesitaría algún componente alrededor del OC en el lado de la línea de datos (el lado EC del OC) o sería ¿Bastante con una simple colocación del lado del transistor OC cuádruple en el circuito? Estoy extendiendo mi conocimiento aquí un poco, pero supongo que debes aprender de alguna manera.

    
pregunta Braedon King

3 respuestas

1

Otro enfoque posible es utilizar otro micro como enrutador de todo tipo. Haga que todos los subsistemas hablen con él a través de UART, SPI, whewaveyou y deje que este enrutador maneje las comunicaciones de BT.

De esta manera, seguro que tiene algunos beneficios: puede mantener la conexión con el módulo BT en todo momento, lo que incluso puede resultar en Better UX ™; puede hacer que presente un protocolo más simple / mejor adaptado a los otros subsistemas, sin los que necesitan preocuparse de qué módulo BT particular está utilizando, si es que utiliza alguno. Abstracción!

Parece que ya no faltan microcontroladores en el proyecto, por lo que lanzar otro no debería ser un problema, ¿eh? : D

    
respondido por el Richard the Spacecat
0

Primero, una cosa es que no desea conectar PIN32 en su configuración.

El PIN32 está diseñado para señalar cuando el HC05 está emparejado ( vea la página 4 ). Si estoy juzgando correctamente la intención de ese circuito, cuando el HC05 transita de emparejado a no emparejado, R32 (que está activo bajo) se reducirá momentáneamente mediante PIN32, lo que provocará que el Arduino se reinicie, lo que supongo que no es lo que querer.

Para cambiar entre dispositivos, ¿es importante que pueda hacerlo de forma remota? Si no, UART es muy simple y la tasa de datos predeterminada del HC05 es baja. Un interruptor de tiro triple bipolar sería suficiente. Solo asegúrate de tener resistencias de subida / bajada en cualquier línea que se deje flotando cuando no está conectada o en el proceso de cambio.

    
respondido por el sebf
0

Puede usar un interruptor bilateral como CD4066. Aquí hay un tutorial simple sobre cómo usarlo. Este interruptor semiconductor es bidireccional, por lo que aunque voy a utilizar los términos "entrada" y "salida", se pueden intercambiar. Por lo tanto, coloque un interruptor en cada una de sus líneas de programación de programación (RX, TX, RST), conectando la salida del interruptor al objetivo. Luego conecte todas las entradas del interruptor RX entre sí y al módulo Bluetooth. Repita para los interruptores TX y RST. Conecte todas las entradas de control para cada objetivo de programación y agregue una resistencia desplegable en las entradas de control de cada grupo de interruptores de destino. Luego use un viejo interruptor mecánico para seleccionar una entrada de control de destino y conéctelo a + 5V. Esto le permitirá utilizar un simple interruptor mecánico de un solo polo (deslizante o giratorio) para controlar tres líneas de señales.
Alternativamente, puede obtener un interruptor de tres polos y usarlo sin semiconductores, pero los interruptores de tres polos tienden a ser voluminosos y caros.

    
respondido por el Volodymyr Smotesko

Lea otras preguntas en las etiquetas