Hola comunidad, espero que esten muy bien! Compre un modulo Bluetooth para realizar algunos proyectos basicos que tengo en mente, y realizo el post para saber si podrian ayudarme. Cree una aplicacion con APP INVENTOR del MIT para probar el modulo mediante una comunicacion con ARDUINO UNO via bluetooth y funciona de maravillas!
Ahora, mi problema de comunicacion es cuando intento utilizar directamente AVR-STUDIO y APP INVENTOR.
Lei por algunos foros que se trataba de un problema de tiempos de comunicacion en el programa realizado en avr c, pero no pude resolverlo por mi cuenta y es por eso que recurro en ayuda de ustedes! Les dejo mi codigo hecho en AVR-STUDIO y espero sus opiniones. Desde ya, saludos y gracias!
EDITO PARA NO REALIZAR OTRO POST: Adjunto aplicacion para android y hex compilado con arduino para que vean que funciona perfectamente. Mi problema es el que planteo arriba.
Ahora, mi problema de comunicacion es cuando intento utilizar directamente AVR-STUDIO y APP INVENTOR.
Lei por algunos foros que se trataba de un problema de tiempos de comunicacion en el programa realizado en avr c, pero no pude resolverlo por mi cuenta y es por eso que recurro en ayuda de ustedes! Les dejo mi codigo hecho en AVR-STUDIO y espero sus opiniones. Desde ya, saludos y gracias!
PHP:
/*
* Bluetooth.c
*
* Created: 16/06/2016
* Author: Gustavo
*/
/* Librerias */
#include <avr/io.h>
#include <util/delay.h>
/* Variables a Utilizar */
uint8_t dato_serial = 0;
/* Función para inicializar USART */
void iniciar_usart(unsigned int baud)
{
/* Se establece la tasa de baudios con el valor ingresado a la funcion */
UBRRH = (unsigned char)(baud>>8);
UBRRL = (unsigned char)baud;
/* Se habilita la recepción y la transmisión de datos */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Se establece el formato de la trama: 8 bits de datos, 2 bits de parada, sin bits de paridad */
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}
/* Función para recibir un caracter */
unsigned char recibirbyte_usart(void)
{
/* Espera a recibir datos */
while (!(UCSRA & (1<<RXC)));
/* Devuelve el dato leido */
return UDR;
}
int main(void)
{
// Inicializacion de USART a 9600 Baudios
iniciar_usart(104);
// PB5 como salida
DDRB = (1<<PB5);
// Limpiamos PORTB
PORTB = 0x00;
// Retardo 200ms, para que el modulo bluetooth se inicie correctamente
_delay_ms(200);
while(1)
{
// Almacenamos dato recibido por puerto serial en "dato_serial"
dato_serial = recibirbyte_usart();
// Preguntamos si "dato_serial" es igual al caracter "a"
if (dato_serial == "a")
{
// Si es correcto, encendemos el led
PORTB = (1<<PB5);
}
// Preguntamos si "dato_serial" es igual al caracter "b"
if (dato_serial == "b")
{
// Si es correcto, apagamos el led
PORTB = (0<<PB5);
}
}
}
EDITO PARA NO REALIZAR OTRO POST: Adjunto aplicacion para android y hex compilado con arduino para que vean que funciona perfectamente. Mi problema es el que planteo arriba.
Adjuntos
Última edición: