Título: Dudas con código de Arduino
Publicado por: Emily en 14 Junio 2017, 10:57 am
Hola a todos hice este programa en arduino el cual tiene una conexión a C (C solo manda 3 datos que son la horas, los minutos y los segundos) pero al momento de enviar mis datos de C a arduino este se va directo a las funciones y nunca lee los datos que se le envió de C alguien de favor me podría ayudar#include <SoftwareSerial.h> SoftwareSerial blue(2,3); void setup() { // put your setup code here, to run once: blue.begin(9600); Serial.begin(9600); }
void loop() { int a,b,c; // put your main code here, to run repeatedly: if (blue.available()){ a=blue.read(); b=blue.read(); c=blue.read(); Serial.print(a+':'+b+':'+c+'\n');} delay(1000); if ((a<24) and (b<60) and (c<60)){ america(a,b,c); asia(a,b,c); africa(a,b,c); europa(a,b,c); oceania(a,b,c); c++; } else { Serial.println("Error al ingresar la hora..."); } delay(30000); }
void america (int a, int b, int c){ if (a<23) { Serial.print ("Caracas Venezuela: "); Serial.print(a+1); Serial.print(":"); Serial.print(b); Serial.print(":"); Serial.print(c); } else { Serial.print ("Caracas Venezuela: "); Serial.print("00:"); Serial.print(b); Serial.print(":"); Serial.print(c); } } void asia (int a, int b, int c){ if (a<10) { Serial.print ("Corea del Sur: "); Serial.print(a+14); Serial.print(":"); Serial.print(b); Serial.print(":"); Serial.print(c); } if (a==10) { Serial.print ("Corea del Sur: "); Serial.print("00:"); Serial.print(b); Serial.print(":"); Serial.print(c); } else { Serial.print ("Caracas Venezuela: "); Serial.print(a-10); Serial.print(":"); Serial.print(b); Serial.print(":"); Serial.print(c); } } void africa (int a, int b, int c){ if (a<17) { Serial.print ("Egipto: "); Serial.print(a+14); Serial.print(":"); Serial.print(b); Serial.print(":"); Serial.print(c); } if (a==17) { Serial.print ("Egipto: "); Serial.print("00:"); Serial.print(b); Serial.print(":"); Serial.print(c); } else { Serial.print ("Egipto: "); Serial.print(a-17); Serial.print(":"); Serial.print(b); Serial.print(":"); Serial.print(c); } } void oceania (int a, int b, int c){ if (a<11) { Serial.print ("Sydney: "); Serial.print(a+13); Serial.print(":"); Serial.print(b); Serial.print(":"); Serial.print(c); } if (a==11) { Serial.print ("Sydney: "); Serial.print("00:"); Serial.print(b); Serial.print(":"); Serial.print(c); } else { Serial.print ("Sydney: "); Serial.print(a-11); Serial.print(":"); Serial.print(b); Serial.print(":"); Serial.print(c); } } void europa (int a, int b, int c){ if (a<18) { Serial.print ("Londres: "); Serial.print(a+13); Serial.print(":"); Serial.print(b); Serial.print(":"); Serial.print(c); } if (a==18) { Serial.print ("Londres: "); Serial.print("00:"); Serial.print(b); Serial.print(":"); Serial.print(c); } else { Serial.print ("Londres: "); Serial.print(a-18); Serial.print(":"); Serial.print(b); Serial.print(":"); Serial.print(c); } }
Título: Re: Dudas con código de Arduino
Publicado por: engel lex en 14 Junio 2017, 11:04 am
deberias leer el serial si estás leyendo data por serial....
movido a C/C++
Título: Re: Dudas con código de Arduino
Publicado por: PalitroqueZ en 14 Junio 2017, 11:14 am
¿y cómo es la programación para el puerto serial en C?
¿tiene la misma configuración de puerto serial que la de arduino? ¿96008N1?
¿por qué no usas un monitor serial a ver si hay data viajando por el puerto?
Título: Re: Dudas con código de Arduino
Publicado por: animanegra en 14 Junio 2017, 11:32 am
Hace eso porque es lo que le estas diciendo que haga. Se va sin leer porque blue no esta available: entonces pasa de eso y no llega a leer nada. Si lo que quieres hacer es esperar a que te metan algo por el bluetooth tendrás que usar un bucle no un condicional. Que se quede esperando a tu entrada de datos y despues leer. Y como siempre en arduino, revisa las conexiones. tx rx en un lado y en otro, que como el tx de uno es el rx del otro al final la terminamos liando ^^
|