Voy a realizar un proyecto para la universidad y estoy construyendo un Cuadricoptero, aun no tengo las partes pero pronto me llegaran, el sistema de control lo voy a realizar mediante bluetooth controlado con una aplicacion Android y este va enviar informacion a una base de datos ya que dispondra de una camara VGA y un slot SD etc.. Mi pregunta, si conecto 1 modulo bluetooth a Arduino podre utilizar este para controlar el Arduino y al mismo tiempo enviar datos a la base de datos en el PC? o necesito conectar 2 Arduino e instalar 1 bluetooth para el sistema de control y otro para el envio de datos?
Pero dos puertos serial te refieres a RX y TX? el ATMEGA328p-pu solo cuenta con un solo par de estos! y no puedo utilizar el mismo para 2 modulos bluetooth
Jopapa:
Si usas un Arduino Mega tienes dos puertos serial. Si usas un UNO, puedes simular otro puerto serial por software.
Si si tienes razon puedo emularlo de hecho ya consegui la libreria, ahora lo unico que tengo que hacer es escribir el codigo para poder comunicarme con los dos al mismo tiempo.
Lo que te comentan los compañeros de que el Arduino Mega tiene varios puertos serie es lo siguiente. Como ves en la foto, el Arduino Mega (y el DUE) no solo tienen el pin 0 y 1 para transferencia Serial por defecto, sino que también tiene los pines 14-19:
El Serial normal, que es el que también está conectado al USB, es el de los puertos 0-1 (TX-RX). Los otros puertos serial ves que tienen indicado TX1-RX1, TX2-RX2 y TX3-RX3.
Para usar estos puertos serial simplemente tendŕias que inicializarlos haciendo:
arriazu:
Lo que te comentan los compañeros de que el Arduino Mega tiene varios puertos serie es lo siguiente. Como ves en la foto, el Arduino Mega (y el DUE) no solo tienen el pin 0 y 1 para transferencia Serial por defecto, sino que también tiene los pines 14-19:
El Serial normal, que es el que también está conectado al USB, es el de los puertos 0-1 (TX-RX). Los otros puertos serial ves que tienen indicado TX1-RX1, TX2-RX2 y TX3-RX3.
Para usar estos puertos serial simplemente tendŕias que inicializarlos haciendo:
Serial1.begin(9600);
Serial2.begin(9600);
Serial3.begin(9600);
Y análogamente, llamar a las funciones que llamases de normal pero empleando su nombre correspondiente. Por ejemplo:
inByte = Serial1.read();
Serial2.write(inByte);
Espero que se entienda!
Pero esos puertos no son seriales de hardware? es decir en el codigo es necesario inicializarlos? pense que solamente podrias conectar directamente el dispositivo serial a los puertos y solo enviar el codigo que quieres implementar..
Decidi que no voy a utilizar la emulacion de los puertos con la libreria SoftwareSerial ya que me va a dar ciertos problemas a la hora de utilizar algunos pines analogicos y digitales PWM, ya que los motores requieren de estos y he leido que algunos de ellos quedan inutilizables.
Quisiera preguntarte si es posible con un modulo bluetooth tal como el hc05 es posible controlar el drone (mando de vuelo) y al mismo tiempo usarlo para enviar datos a una base de datos, en el mismo mando (android-SQLite) tales como imagenes?
Son seriales exactamente iguales que el Serial, por lo que se usan igualmente.
Hay que inicializarlos igual que se inicializa el serial habitual, o al menos eso tengo entendido yo. Vamos, yo simplemente llamo a Serial2.begin(baudrate) y los uso sin necesitar ninguna activación por software adicional.
Pero tampoco me hagas mucho caso, realmente soy muy nuevo en esto de arduino (llevo solo un mes y medio seriamente).
Yo entiendo que tienes que inicializarlos para poder definir el baudrate con el que vas a comunicarte, y que tiene que ser el mismo en ambas placas.
Por mi parte, tengo dos arduinos conectadas entre ellas a través del Serial2 con un XBee en cada una y envío datos entre ellas haciendo simplemente Serial2.write() y Serial2.read().
Y con el Serial1 envío los datos a Matlab con un conversor FDTI RS232 USB, olvidandome del Serial normal, que solo uso para hacer prints en la consola. Pero no me hagas mucho caso, que las cosas todavía no funcionan muy bien
El problema para tu caso es que creo que he leído por ahí que comentabas que ya tenías un Arduino UNO, ¿no?