Loading...
  Show Posts
Pages: [1] 2 3 ... 26
1  International / Español / Re: [Presentación y problema] PIN 13 (led) siempre encendido. on: June 09, 2013, 07:50:45 am
Hola!

Hay algo más que podemos comprobar.
Para probar si es el micro, retíralo y alimenta la placa(con el USB por ejemplo).
(Nota: retira el micro con mucho cuidado de no doblar ningún pin, puedes insertar un destornillador plano por cada parte.)
Un saludo!
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).

Quote
buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH)
  {
 //inicializo  IR
   }
  else
  { 
     //inicializo ethernet
   }
3  International / Software / Re: Consulta vida util de la EEPROM on: March 25, 2013, 10:30:31 am
Hola,
La memoria está compuesta de segmentos borrables individualmente. Para que dure más se usa el método llamado "wear leveling (nivelación de desgaste)", que consiste en ir utilizando sucesivamente distintas partes de la memoria, y no escribir o borrar siempre en la misma dirección.

http://electronics.stackexchange.com/questions/21232/100k-eeprom-writes-per-bit-or-as-a-whole


MUY ÚTIL.

+1
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:
Quote
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
Quote
   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.
6  International / Español / Re: 2 Arduinos de 1 tiro on: March 13, 2013, 05:19:14 pm
El neutro de la red esta conectado a GND? que burrada smiley-surprise

PD: Me siento engañado al leer el post yo que pensaba que iba a ser algo así http://youtu.be/RWtxs5rl7jk?t=1m14s pero contra dos arduino!  smiley-sad

jajajajaja qué locura!
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!!!!
Quote
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
Quote
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,
Quote
char micadena[4]={a+'0',b+'0',c+'0',d+'0']; // Mi cadena contendrá {'1','5','8','0'}
10  International / Español / Re: Comparación datos de cadena con EEPROM on: March 11, 2013, 05:31:06 pm
Quote
por cierto, usuario[4] no lo usas)
Es obligatorio.
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).
12  International / Español / Re: Comparación datos de cadena con EEPROM on: March 11, 2013, 04:04:48 pm
¿Qué se supone que hace este comando, por ejemplo?
unsigned long num1 = 't1';
' Yo suponía ' que ese comando iba a convertir en char lo que contuviera t1.
13  International / Español / Re: Comparación datos de cadena con EEPROM on: March 11, 2013, 02:53:30 pm
Vale, la solución es hacer una función que cuando le metas un número te devuelva el número entre ' ', así ya lo reconoce el array.
¿Alguna sugerencia?
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:
Quote
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?)
Quote
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í?
Code:
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?
Pages: [1] 2 3 ... 26