Show Posts
|
|
Pages: [1] 2 3 ... 26
|
|
2
|
International / Español / Re: cambiar setup segun condicion
|
on: March 25, 2013, 05:12:23 pm
|
No inicialices las funciones en el setup, podrás hacerlo en el loop (creo). buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { //inicializo IR } else { //inicializo ethernet }
|
|
|
|
|
4
|
International / Español / Re: Problema con varios boolean
|
on: March 18, 2013, 07:13:22 pm
|
Hola @noter. Muchas gracias por tu interés, de nuevo. Lo he resuelto de esta manera: if (modo1==true) { if(cadena[0]-48==usuario[0]&&cadena[1]-48==usuario[1]&&cadena[2]-48==usuario[2]&&cadena[3]-48==usuario[3]) { modo01 = !modo01; digitalWrite(13, modo01); modo1=false; } } ...es decir, saliendo de modo después de apagar/encender el led. De nuevo muchas gracias noter, un saludo! +1 (¿Se puede mover el post a Software?)
|
|
|
|
|
5
|
International / Español / Problema con varios boolean (SOLUCIONADO)
|
on: March 18, 2013, 01:11:11 pm
|
char cadena[5]; byte contador=0; boolean modo1=true; boolean modo01=false; boolean modo2=true; boolean modo02=false; boolean modo3=true; boolean modo03=false; char usuario[5]={3,3,3,3};
void setup(){Serial.begin(9600);}
void loop() { ///////////////////////////////////////////////////////////////////////////////////////////////// // COMUNICACION /////////////////////////////////////////////////////////////////////////////////////////////////
if(Serial.available()) { while (Serial.available()>0) { delay(5); cadena[contador]=Serial.read(); contador++; }contador=0; ///////////////////////////////////////////////////////////////////////////////////////////////// // MODO1 /////////////////////////////////////////////////////////////////////////////////////////////////
if (cadena[0]=='P'){modo1=true;} if (modo1==true) { if(cadena[0]-48==usuario[0]&&cadena[1]-48==usuario[1]&&cadena[2]-48==usuario[2]&&cadena[3]-48==usuario[3]) { modo01 = !modo01; digitalWrite(13, modo01); } } ///////////////////////////////////////////////////////////////////////////////////////////////// // MODO2 ///////////////////////////////////////////////////////////////////////////////////////////////// if (cadena[0]=='N'){modo2=true;} if(modo2==true) { if(cadena[0]-48==usuario[0]&&cadena[1]-48==usuario[1]&&cadena[2]-48==usuario[2]&&cadena[3]-48==usuario[3]) { modo02=!modo02; digitalWrite(7,modo02); } } ///////////////////////////////////////////////////////////////////////////////////////////////// // MODO3 /////////////////////////////////////////////////////////////////////////////////////////////////
if (cadena[0]=='Y'){modo3=true;} if (modo3==true) { if(cadena[0]-48==usuario[0]&&cadena[1]-48==usuario[1]&&cadena[2]-48==usuario[2]&&cadena[3]-48==usuario[3]) { modo03=!modo03; digitalWrite(6,modo03); } } ///////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////// }//serial
}//void
-Recibe P, después recibe código y activa/desactiva led del pin 13 -Recibe N, después recibe código y activa/desactiva led del pin 7 -Recibe Y, después recibe código y activa/desactiva led del pin 6 Eso es lo que debería de hacer. Lo que hace es activar/desactivar todos los leds sea el modo que sea. ¿Alguna solución? Gracias de antemano por vuestra atención.
|
|
|
|
|
7
|
International / Español / Re: Comparación datos de cadena con EEPROM
|
on: March 12, 2013, 11:19:08 am
|
LO TENGO. Me habéis abierto los ojos entre los dos...con lo de la conversión estaba todo bien, pero a la hora de comparar no le restaba 48!!!! if(cadena[0]-48==usuario[0]&&cadena[1]-48==usuario[1]&&cadena[2]-48==usuario[2]&&cadena[3]-48==usuario[3]) @noter y @curro92, muchas gracias a los dos! +1
|
|
|
|
|
8
|
International / Español / Re: Comparación datos de cadena con EEPROM
|
on: March 12, 2013, 04:40:10 am
|
Perdona, pero me está constando a veces bastante entenderte. En el código de tu primer post, comienzas con unas declaraciones "raras", del tipo
int valor='valor-48'; Como bien he dicho, era para hacer la conversión de ASCII.
|
|
|
|
|
9
|
International / Español / Re: Comparación datos de cadena con EEPROM
|
on: March 11, 2013, 06:21:03 pm
|
Después del primer post he ido actualizando el código para que se viera el progreso, y alguien que supiera, pudiera ayudarme. En cuanto a las cadenas, hay que dejar una posición más para el carácter NULL.( http://arduino.cc/es/Reference/String) Lo digo por, char micadena[4]={a+'0',b+'0',c+'0',d+'0']; // Mi cadena contendrá {'1','5','8','0'}
|
|
|
|
|
11
|
International / Español / Re: Comparación datos de cadena con EEPROM
|
on: March 11, 2013, 05:26:07 pm
|
|
Todo lo que has puesto lo he intentado. He convertido a ASCII por una función, luego por atoi.....Al final he hecho una función que devuelve el número que meto pero con 'x', que es lo que la string necesita. Pero muchas gracias por tu ayuda, ahora necesito simplificar la función(ya que es muy extensa).
|
|
|
|
|
14
|
International / Español / Re: Comparación datos de cadena con EEPROM
|
on: March 11, 2013, 01:18:56 pm
|
Si yo hago así, me acepta el código: int t='0'; int t1='0'; int t2='0'; int t3='0'; unsigned long num = t; unsigned long num1 = t1; unsigned long num2 = t2; unsigned long num3 = t3; char usuario[5]={num,num1,num2,num3};
En cambio, si hago así no:(lógico porque lo convierto a char...entonces,¿qué hago?) int t=0; int t1=0; int t2=0; int t3=0; unsigned long num = 't'; unsigned long num1 = 't1'; unsigned long num2 = 't2'; unsigned long num3 = 't3'; char usuario[5]={num,num1,num2,num3};
El error es ese, que el char no pilla los 't', 't1','t2' y 't3'.
|
|
|
|
|
15
|
International / Español / Re: Comparación datos de cadena con EEPROM
|
on: March 11, 2013, 01:14:57 pm
|
¿Quizás así? void setup() { Serial.begin(9600);
}
void loop() { int recibido; if(Serial.available()){ recibido=Serial.parseInt(); if(recibido=1111) Serial.print("Recibido entero 1111"); } } Es que si hago eso ya tendría que remodificar todo el código. Además quiero que compare digito a dígito. ¿Qué opinas?
|
|
|
|
|