Contandor de Vida de YGO y MTG

Acabo de empezar un proyecto con arduino, un contador de vida tanto para yugioh como para magic:
Iremos añadiendo cosas poco a poco, no quiero que me deis la solución sin Explicacion, quiero aprender.

Cosas que añadir:

  • Alpha-Imprescindible

  • Yugioh

  • 1VS1

  • Otras:

  • Sumas

  • Restas

  • 1/2 y x2

  • Beta-Obtativos

  • Yugioh

  • 2VS2

  • 1VS2

  • XVSX

  • TodosVSTodos(Hasta 10 Personas)

  • Dados:

  • 6 Caras

  • Monedas:

  • Cara y Cruz

  • Contador de:

  • Tiempo Total y de Turnos

  • Victorias

  • Contadores

  • Turnos

  • Release-Prescindibles

  • Magic:

  • 1VS1

  • 2VS2

  • 1VS2

  • XVSX

  • TodosVSTodos(Hasta 10 Personas)

  • GH2

  • ...

  • Vida:

  • Veneno

  • Dados:

  • 1 Caras

  • 2 Caras

  • 3 Caras

  • 4 Caras

  • 6 Caras

  • 8 Caras

  • 10 Caras

  • 12 Caras

  • 20 Caras

  • 30 Caras

  • 100 Caras

  • Planar

  • ...

  • dX

  • YdX

  • A Mayores:

  • Registro En SD

  • Registro por RJ45/Wifi

  • Introduccion de letras

  • Animaciones

  • Conexion BlueTooth Android


Teclados/Botones,por cada Usuario:

  • Direcciones: ↑,↓,→,←
  • Numeros: 1,2,3,4,5,6,7,8,9,0,00,000
  • Menu: MEnu/Atras,OK
  • Operaciones: +,-,:,x
  • Teclas Rapidas:
  • Yugioh: +50,+100,+500,+1000,-50,-100,-500,-1000
  • Magic: +1,+5,+10,-1,-5,-10
  • Otros: x2,:2,A1

Materiales:

  • Arduino UNOr3
  • Pulsadores
  • Protoboard
  • Cables
  • Resistencias
  • LCD 16x2 (Tengo pensado cambiarlo, por una de 20x4 )

Problemas que me he encontrado:

  • Lcd Con demasidos pines, teniendo en cuenta que neceseito usar 2 minimo, cada una con 6 pines se me vuleve imposible
  • Pulsadores, lo mismo, como conectar todos los pulsadores sin que me ocupen tantos pines

#include <LiquidCrystal.h> //Libreria LCD

LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Pines LCD

word Local= 8000; //Constante: La vida del jugador local
word Visitante= 8000;//Constante: La vida del jugador Visitante

byte flechaD [8] = { //Flecha Derecha
B01000, 
B01100, 
B01110, 
B01111,  
B01110, 
B01100, 
B01000, 
B00000,
};
byte flechaI [8] = { //Flecha Izquierda
B00010, 
B00110, 
B01110, 
B11110,  
B01110, 
B00110, 
B00010,
B00000,
};


void setup() {
  lcd.begin(16,2);//tamaño del lcd
  lcd.createChar(0, flechaD); //flechad
  lcd.createChar(1, flechaI); //flechai
  //configuracion de los primeros botones de pruebas
  pinMode (12, INPUT); // +50 de vida local
  pinMode (11, INPUT); // -50 de vida local
  pinMode (10, INPUT); // +50 de vida visitante
  pinMode (9, INPUT); // -50 de vida visitante

  
  lcd.clear(); //borrado de lcd
  lcd.setCursor(16, 0); //entradilla
  lcd.print("Contador Vida YGO Y MTG");
  lcd.setCursor(16, 1);
  lcd.print("Creado Por Adrianalex");
  for (int positionCounter = 0; positionCounter < 23; positionCounter++) {
  lcd.scrollDisplayLeft(); 
  delay(300);
  };
  delay(1000);
  lcd.clear();
}

void loop() {



lcd.setCursor(0, 0);//colocacion de cada parte del lcd
lcd.print("LP");
lcd.setCursor(3, 0);
lcd.print(word(Local));
lcd.setCursor(8, 0);
lcd.print("LP");
lcd.setCursor(11, 0);
lcd.print(word(Visitante));
lcd.setCursor(0, 1);
lcd.print("Local");
lcd.setCursor(8, 1);
lcd.print("Visit");

lcd.setCursor(15,1);
lcd.write(byte(0));
lcd.setCursor(14,1);
lcd.write(byte(1));




}

Chino básico sin ofender a los chinos.

Acabo de empezar un proyecto con arduino, un contador de vida tanto para yugioh como para magic:
Iremos añadiendo cosas poco a poco, no quiero que me deis la solución directamente, quiero aprender.

Contador de vida? Qué es un contador de vida

Yugioh ?
magic?

Es un juego?

Mal descripto el objetivo de tu trabajo, intenta ser un poco mas detallista.

El programa luce bien. No lo simulé aún. Necesitas alguna ayuda u orientación?

surbyte:
Chino básico sin ofender a los chinos.
Contador de vida? Qué es un contador de vida
Empiezas con X de vida 8000 para Yugioh (Normalmente) y vas restando la vida según como te ataquen, en la primera version me gustaria restar de 50 en 50 de vida hasta que llegue a 0 y sumar de 50 en 50 hasta el max de la variable
Yugioh ? juego con 8000 puntos de vida
magic? juego con 20 puntos de vida

Es un juego?si, es un juego de cartas

Mal descripto el objetivo de tu trabajo, intenta ser un poco mas detallista.
El problema que escribi mi proyecto durante una hora y algo, y al hacer una modificacion, se booro todo a saber porque, lo volveré a escribir en breves
El programa luce bien. No lo simulé aún. Necesitas alguna ayuda u orientación?

A ver. Saca esto del titulo "(reescribiendo el post que me lo subió mal)" si me permites aconsejarte.

Dinos cual es el motivo de tu post.

La solucion a los pines de los lcd, es usar lcd i2c. Con ello consigues usar solo 2 pines para los dos lcd, y puedes incluso llegar a usar mas con esos 2 pines.

Para los pulsadores, no sé si ya te resuelve el problema lo de usar solo 2 pines para los lcd. Si no es así, puedes usar esto:

http://store.arduino.cc/product/E000024

Pero la verdad, su sumamos el precio del MUX y el del arduino UNO, sale más a cuenta usar un MEGA o un DUE.

surbyte:
A ver. Saca esto del titulo "(reescribiendo el post que me lo subió mal)" si me permites aconsejarte.
lo puse por ese mismo motivo, ya lo volví a reescribir

Dinos cual es el motivo de tu post. El motivo es el propio proyecto

carmeloco:
La solucion a los pines de los lcd, es usar lcd i2c. Con ello consigues usar solo 2 pines para los dos lcd, y puedes incluso llegar a usar mas con esos 2 pines. Es mas, tenia pensado conectar por i2c todo el proyecto, o mas bien la mayoría de el, la pregunta, es como XD

Para los pulsadores, no sé si ya te resuelve el problema lo de usar solo 2 pines para los lcd. Si no es así, puedes usar esto:

http://store.arduino.cc/product/E000024

Pero la verdad, su sumamos el precio del MUX y el del arduino UNO, sale más a cuenta usar un MEGA o un DUE.
Ya dispongo del arduino uno, así que me cunde mas el mux, pero aun así, no me sirve en si mismo, ya que necesito 80 conectores mínimo, para 2 personas, para 3 120,....

Como que necesitas 40 conexiones por persona? Puedes hacer un diagrama del posible hardware?
Si es así olvida lo que estas pensando. y considera usar un expansor de I/O o bien usar Shift register de entrada o salida.
Hay muchos trucos para usar pulsadores con un solo pin pero eso exige al procesador para no perder pulsaciones. Es importante que definas bien como seran esos 40 contactos o entiendo mal. Son 40 contactos de entrada o salida o mezclados.

Tu código no tiene 40 conexiones en uso, no comprendo porque dices que necesitas 80 cada 2 personas.
Puedes explicarte mejor?

surbyte:
Como que necesitas 40 conexiones por persona? Puedes hacer un diagrama del posible hardware?
Si es así olvida lo que estas pensando. y considera usar un expansor de I/O o bien usar Shift register de entrada o salida.
Hay muchos trucos para usar pulsadores con un solo pin pero eso exige al procesador para no perder pulsaciones. Es importante que definas bien como seran esos 40 contactos o entiendo mal. Son 40 contactos de entrada o salida o mezclados.

Tu código no tiene 40 conexiones en uso, no comprendo porque dices que necesitas 80 cada 2 personas.
Puedes explicarte mejor?

si, puedo:
Botones,por cada Usuario, minimo 2 usuarios
Direcciones: ↑,↓,→,←
Numeros: 1,2,3,4,5,6,7,8,9,0,00,000
MEnu: Menu/Atras,OK
Operaciones: +,-,:,x
Teclas Rapidas:
Yugioh: +50,+100,+500,+1000,-50,-100,-500,-1000
Magic: +1,+5,+10,-1,-5,-10
Otros: x2,:2,A1

bien.. varias soluciones posibles.

  1. Puedes usar Expansores IO I2C como estos
    1.1)

Lo importante es que el MCP23017 no necesita resistores para usar pulsadores.

Also note that push-buttons need resistors. If you want an i2c i/o expander in which you don't need resistors on the switches check out the MCP23017.

1.2) Shift Register Inputs
El CD4021CMOS o el TTL 74HC165

  1. Este arreglo tambien es interesante
  2. Multiplexores
    Un 74HC4067s (16 channel analogue multiplexor) puede ser intersante tambie´n.

surbyte:
bien.. varias soluciones posibles.

  1. Puedes usar Expansores IO I2C como estos
    1.1)

Lo importante es que el MCP23017 no necesita resistores para usar pulsadores.

1.2) Shift Register Inputs
El CD4021CMOS o el TTL 74HC165

  1. Este arreglo tambien es interesante.

Estaria muy bien cuantas entradas tiene entonces?

Surbyte se encarga de lo de las entradas y yo de los displays, jajaja

Puedes conectar varios displays I2C, asignándole una dirección i2C distinta a cada uno. Normalmente, llevan 3 bits para poder variar la dirección, lo que te da la posibilidad de conectar hasta 8 displays.

carmeloco:
Surbyte se encarga de lo de las entradas y yo de los displays, jajaja

Puedes conectar varios displays I2C, asignándole una dirección i2C distinta a cada uno. Normalmente, llevan 3 bits para poder variar la dirección, lo que te da la posibilidad de conectar hasta 8 displays.

no se pueden poner mas de 8? porque si van tanto las lcd como los teclados seian un total de 4 usuarios max (que en el 99% de los casos me llega)

Creo que la direccion son 7 bits ,permitiendo 128 dispositivos.El I2C es sensible a las grandes distancias de cableado....

jose:
Creo que la direccion son 7 bits ,permitiendo 128 dispositivos.El I2C es sensible a las grandes distancias de cableado....

na tranquilo, es un juego de cartas donde estan unos enfrentados contra otros, dudo mucho que sobrepase los 2 m de distancia

jose:
Creo que la direccion son 7 bits ,permitiendo 128 dispositivos.El I2C es sensible a las grandes distancias de cableado....

Yo me refiero a los módulos I2C para display. Normalmente, solo llevan 3 bits para la dirección. A parte de los 8 displays, se pueden poner más cosas en el bus.

carmeloco:
Yo me refiero a los módulos I2C para display. Normalmente, solo llevan 3 bits para la dirección. A parte de los 8 displays, se pueden poner más cosas en el bus.

donde comprarlas? (si puede ser por separado de las pantallas)

Ebay, china, por todos lados venden dispositivos I2C.
A que distancia estan esos pulsadores del arduino?

Me entró el pánico de repente.

En ebay los tienen. Yo los compro en ebay, y luego los pongo en displays que compro a parte.

surbyte:
Ebay, china, por todos lados venden dispositivos I2C.
A que distancia estan esos pulsadores del arduino?

Me entró el pánico de repente.

no mas de 1 m

[/quote]

carmeloco:
En ebay los tienen. Yo los compro en ebay, y luego los pongo en displays que compro a parte.

gracias, ya lo suponia XD pero ninguna pag en especial o algo asi?

no se de donde eres, poco puede decirte si no vives en Argentina.