Arduino Forum

International => Español => Topic started by: Dani_Juarez on Oct 23, 2017, 11:58 pm

Title: Llamado de variables en al EEPROM
Post by: Dani_Juarez on Oct 23, 2017, 11:58 pm
como andan??? espero que bien que tengo problemas con un código espero que me pueda ayudar resulta que tengo dos servos que guardo cuyos ángulos en la EEPROM y después los mando a llamar usando un Servo anda muy bien
el problema es cuando pongo dos motores porque yo almaceno una x cantidad de grados provenientes del motor 1 y otros del 2 pero a la hora de leer se ejecutan los dos juntos y no en el orden que se guardaron los ángulos de los servos
osea por ejemplo las 3 primeras casillas son ángulos del servo1 y las dos que siguen del segundo despues vienen otras dos casillas pero son ángulos del servo 1 y etc así sucesivamente
no logro que se ejecuten en orden de guardado los motores; como podría hacer???????? algo me falla en el código
se los dejo así le echan una miradita si pueden
desde ya mil gracias¡¡¡¡

Code: [Select]

#include<Servo.h>
#include <EEPROM.h>
//Creamos los objetos servo
Servo servo;
Servo servo2;

unsigned char c; //Letra del Servo
int posicion; //Posicion del servo

int valor[5];  //valor para almacenar lo del servo1
int valor2[5]; //valor2 para el servo2

int j[20]; // array para la EEPROM

void setup()
{
  //Inicializamos los Servos
    servo.attach(12);
    servo2.attach(11);

  //Inicializamos la comunicacion por Serial
  Serial.begin(9600);

  Serial.print(" \n");
  Serial.println("xxxxxxxxxBienvenido Usuarioxxxxxxxxxxx");
  Serial.println("  AUTOMATA Codigo1 by: Daniel Juarez");
}

void loop() {

  if (Serial.available())
  {

    c = Serial.read();
    posicion = Serial.parseInt();
    
    // movemos el servo 1 o el dos y automaticamente el valor que se le dio se guarda
    // se introduce la letra del servo + los grados para moverlo
    if (c == 'a')
    {
    
      Serial.print("Motor1: ");
      Serial.println(posicion);
      servo.write(valor[0]);
      delay(10);
      valor[0] = posicion;
  EEPROM.write(j[0], valor[0]);
  Serial.print("Guardo en la posicion ");
  Serial.print(j[0]);
  Serial.print("\t");
  Serial.println(valor[0]);
 
 
   j[0]++;
   valor[0]++;
  
    }
    
    else if (c == 'b')
    {
      
      Serial.print("Motor2: ");
      Serial.println(posicion);
      servo2.write(posicion);
      delay(10);
      valor2[0] = posicion;
   EEPROM.write(j[0], valor2[0]);
   Serial.print("Guardo en la posicion ");
   Serial.print(j[0]);
   Serial.print("\t");
   Serial.println(valor2[0]);
    
      j[0]++;
      valor2[0]++;
    
    }
   /*
    else if (c == 'm')
    {
      graba();
    } */
    
    else if (c == 'z')
    {
    automata();  //lee los datos guardados y hace mover los servos
    }
    
    else if (c == 'x')
    {
    borrar();       //boorra los datos de la EEPROM
    }

  }

}
/*
void graba() {

  EEPROM.write(j[0], valor);
  Serial.print("Guardo en la posicion ");
  Serial.print(j[0]);
  Serial.print("\t");
  Serial.println(valor);
  j[0]++;

  EEPROM.write(j[0], valor2);
  //Serial.print("Guardo en la posicion ");
  //Serial.print(j[0]);
  //Serial.print("\t");
  Serial.println(valor2);
   j[0]++;
  
}
  */

void automata() {

 Serial.println("EJECUTANDO MEMORIA¡¡¡¡¡");
  delay(10);
  int i = 0;
  
for (i = 0; i < 10; i++)
  {
 valor[0] = EEPROM.read(i);
 valor2[0] = EEPROM.read(i);
 
 Serial.println( EEPROM.read(i));

 servo.write(valor[0]);
 delay(500);
 servo2.write(valor2[0]);
 delay(500);
 
    }

}

void borrar() {

  pinMode(13, OUTPUT);
  Serial.println("Borrando Memoria¡¡¡¡¡");

  for (int i = 0 ; i <100; i++) {
    EEPROM.write(i, 0);
    /*EEPROM.length()*/
  }
  digitalWrite(13, HIGH);
  Serial.println("Memoria Borrada¡¡¡¡¡");

}

Title: Re: Ayuda con llamado de variables en al EEPROM
Post by: surbyte on Oct 25, 2017, 12:48 am
QUe pasa con este hilo? http://forum.arduino.cc/index.php?topic=506521.msg3453834#msg3453834 (http://forum.arduino.cc/index.php?topic=506521.msg3453834#msg3453834)
Y los similares en ingles.
NO puedes habrir hilos similares en cada parte del foro inglés/español/otro idioma!!

Dime cual cierro?
Title: Re: Llamado de variables en al EEPROM
Post by: Dani_Juarez on Oct 25, 2017, 06:26 pm
http://forum.arduino.cc/index.php?topic=506521.msg3453834#msg3453834 (http://forum.arduino.cc/index.php?topic=506521.msg3453834#msg3453834)
ese¡¡