Creo que te faltan muchos conceptos aquí. Tenga en cuenta que el HC-05 y el mega328 en arduino utilizan diferentes niveles de voltaje para representar información
¿Qué es un nivel lógico
Los niveles lógicos son las variables físicas que representan el contenido de información en cualquier circuito digital. Supongamos que su circuito Bluetooth está intentando enviar alguna información al arduino. Esta información se codifica como un flujo de bits de 1
y 0
, por ejemplo, 1010101
esta información se envía cambiando el nivel de voltaje a través del cable HC-05 Tx entre el HC-05 permitido niveles de voltaje que son 0V para un 0 digital y 3.3V para un digital 1. Aunque los niveles lógicos de arduino son diferentes [0V para un 0 digital y 5V para un 1 digital], sería capaz de leer estos datos.
Eche un vistazo a la hoja de datos de Mega328
VIH = 0.6 * 5 = 3V esto significa que cualquier nivel de voltaje superior a 3V se traducirá como una lógica válida 1
AsíquenonecesitamosnadaenlalíneaarduinoRx.AhoraecheunvistazoalasalidadealtovoltajedelarduinoUno
VOH=4.2VestoesmásaltoqueelvoltajedeoperacióndelHC05quees3.3V.Enestecaso,unaformadereducirelvoltajeenlalíneaHC-05Txseríausarundivisordevoltaje
¿Quéesundivisordevoltaje
Redderesistenciasqueseutilizanparaescalarelvoltajeenunacantidaddeterminadaporlosvaloresdelasresistenciasenestared
donde$$V_o=V_i*\frac{R_2}{R_1+R_2}$$
AhoraimaginequeelflujodebitsquemencionéanteriormenteseenvíadesdeelarduinoalmóduloBT.
Laformadeondasuperiorrepresentalasalidadearduino,elvoltajeestácambiandoentre5Vy0Vpararepresentar1digitaly0,mientrasquelaformadeondainferiorrepresentalasalidadelareddivisora.Puedeverqueambosestánsincronizadosperolasalidadeldivisorestácambiandoentre3.3Vy0V
Esposiblequedeseeconsultar Niveles lógicos y divisores de voltaje