Go Down

Topic: Proyecto Monedero (Read 1 time) previous topic - next topic

TELO2254

Jan 16, 2018, 05:13 pm Last Edit: Jan 16, 2018, 08:27 pm by TELO2254
Hola a todos, ante todo presentarme y dar las gracias por vuestra labor.
me decico a reparacion de maquinas recreativas y para comprobar los monederos tengo un invento muy simple que construí hace años en cual va solo con led, si el monedero esta correcto al meterle una moneda me enciende unos led y si le meto otra moneda me enciende otros, por ejemplo
   MAQUINAS TIPO A
MONEDA                  LED
0.05                        3-4-8
0.10                        3-7
0.02                        3-4-7
0.50                        3-7-8
1€                           3-4-7-8
2€                           3-9

   MAQUINAS TIPO B
MONEDA                 LED
0.05                        3-4
0.10                        5
0.02                        4-5
0.50                        3-7
1€                           4-7
2€                           3-5-7
Deciros  que dichas salidas de monedero son por 1 segundo y el led se enciende. Cada salida es un cable distinto con el mismo positivo en comun.
Me he iniciado en el tema de arduino y me gustaría hacer este aparato para ver datos en display, es decir que al meter una moneda me indique que salida usa y que valor tiene la moneda.
He realizado un esquema con las conexiones de entradas y de salida ( creo están bien )
Lo que no se es como hacer dicha programación ya que he trasteado con algunas cosas pero con esto no me acabo de enterar...
Bueno a ver si alguien me orienta un poco.
Gracias

TELO2254

#1
Jan 16, 2018, 05:27 pm Last Edit: Jan 16, 2018, 06:32 pm by surbyte Reason: No uses "Ayuda" en el título
subo el diagrama , no se si estara correcto


surbyte

Revisa este foro Español, hay al menos 2 temas muy parecidos a tu proyecto

TELO2254

Llevo todo el dia buscando por el foro pero no veo nada por el estilo

surbyte

#4
Jan 16, 2018, 07:56 pm Last Edit: Jan 16, 2018, 08:15 pm by surbyte
1ro no puede ser todo el dia porque acabo de mover tu hilo. (1 hora desde que lo moví!!)

2do no has buscado bien porque en 2 seg mira:
https://forum.arduino.cc/index.php?topic=453282.0

Busca simplemente Monedero arriba derecha
Hay muchos resultados posibles.


TELO2254

Antes de poner mi post estuve buscando ....
De todas formas el post que me indicas no tiene nada que ver con lo que intento hace , en el otro post habla de simular un monedero y yo lo que intento hacer es trasladar datos del monedero al arduino y me los refleje en un display.

surbyte

Bueno pero lo que quieres es controlar los leds?

TELO2254

Eso es controlar los Led y reflejarlo en display

surbyte

Y cual es el contacto que detecta que introdujiste una moneda?
En uno de los casos qeu creo haberte pasado y sino se trata de otro que no has visto, alguien tenia un cable plano con monedas por un lado y billetes por otro. Enviaba pulsos durante 100mseg y debíamos contarlos.
Bueno, ese era el que yo queria que vieras.

Esos pulsos entraban al arduino y incrementabamos un contador. Aca tu quieres comandar los leds.
En lugar de 100mseg, hablas de 1 seg.

Estoy en lo correcto? porque eso no se ve en tu esquema o le falta al lado izquierdo indicar que son entradas?

TELO2254

Bueno os cuento ya tengo bastante avanzado el tema , no me sirven los post que me comentas por qué esos son monederos que salen pulsos por un mismo pin , ósea si metes una moneda de 10 ctm da un pulso , si metes una de 20 da 2 y así sucesivamente los va multiplicando, yo lo que digo es otro tipo de monedero que cada moneda sale por distintas salidas: 5ctm salen por sus salidas y las demás igual , ojo algunas salidas pueden ser usadas por varias monedas ..... por ejemplo 1€ sale por la 3,4,7,8
2€ sale por la 9
0,50 sale por la 3 y 7
Como veis cada una tiene sus salidas y algunas se comparten.
Dicho todo este rollo , ya lo tengo listo y me encienden los led a la perfección, pero ahora quiero que se me refleje en el display y que me diga 2 cosas, una que salidas usa la moneda introducida y a la misma vez el valor de dicha moneda. Que esto último no sé cómo hacer para que use las distintas combinaciones....

surbyte

Esta bien pero sigues tu sin comprender o esto es un simulador?

No veo en nada de lo que expones ENTRADAS, entonces tu estas haciendo un simulador con los leds para luego probar tus monederos?

TELO2254

Esto es un probador eso es, las entradas van en el conector que está en La foto a la izda al lado de la pila, este conector es el del monedero

TELO2254

#12
Jan 18, 2018, 10:26 pm Last Edit: Jan 19, 2018, 01:44 pm by TELO2254
Edito el post por que me he dado cuenta que me va a ser innecesario poner led ya que el display me va a decir que salidas usa.
ahora tengo un problema que es que cuando introducto una moneda me escribe solo una salida , no se como hacer para que en el dsisplay salgan todas, es decir si meto una moneda y sale por la salida 2 y 3, me escriba SALIDAS 2 3.....

TELO2254

Code: [Select]
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int inputPin3 = 41; // ENTRADA MONEDA ( TABACO 0.05, 0.10, 0.20, 0.50, 1€ Y 2€ ) ( TIPO B 0.05, 0.50 Y 2€ )
int inputPin4 = 43; // ENTRADA MONEDA ( TABACO 0.05, 0.20, 1€ Y FICHA ) ( TIPO B 0.05, 0.20, Y 1€ )
int inputPin5 = 45; // ENTRADA MONEDA ( TABACO FICHA ) ( TIPO B 0.10, 0.20, Y 2€ )
int inputPin7 = 47; // ENTRADA MONEDA ( TABACO 0.10, 0.20, 0.50, y 1€ ) ( TIPO B NADA )
int inputPin8 = 49; // ENTRADA MONEDA ( TABACO 0.05, 0.50 y 1€ ) ( TIPO B NADA )
int inputPin9 = 51; // ENTRADA MONEDA ( TABACO 2€) ( TIPO B NADA )
int inputPin10 = 53; // ENTRADA MONEDA Aun no tiene nada,

void setup()
   {
       lcd.begin(16, 2);           // Fijamos el numero de caracteres y filas
       lcd.clear();
       lcd.print("    PROBADOR ");  // Aqui va la primera linea con mensaje en espera
       lcd.setCursor(0, 1);    // Ponte en la linea de abajo 1, posicion 5
       lcd.print("   DE MONEDAS "); // Aqui va la segunda linea con mensaje en espera
       delay(2000);
       lcd.clear();

pinMode(inputPin3, INPUT);            // Decimos que la salida 3 del monedero
pinMode(inputPin4, INPUT);            // Decimos que la salida 4 del monedero 
pinMode(inputPin5, INPUT);            // Decimos que la salida 5 del monedero
pinMode(inputPin7, INPUT);            // Decimos que la salida 7 del monedero
pinMode(inputPin8, INPUT);            // Decimos que la salida 8 del monedero
pinMode(inputPin9, INPUT);            // Decimos que la salida 9 del monedero
pinMode(inputPin10, INPUT);           // Decimos que la salida 10 del monedero
 
   }

void loop()
{

   while( digitalRead(inputPin3) == LOW ) //salida 3
  {
    lcd.setCursor(0, 0);               // Ponte en la linea de arriba 0, posicion 0
    lcd.print(" SALIDAS 3      ");     // Aqui va el numero de salida del monedero
    lcd.setCursor(0, 1);               // Ponte en la linea de abajo 1, posicion 0
    lcd.print("    VALOR ");           // Aqui va la segunda linea con mensaje del valor de la moneda
    delay(1000);
  }
   while( digitalRead(inputPin4) == LOW ) //salida 4
  {
   
    lcd.setCursor(0, 0);               // Ponte en la linea de arriba 0, posicion 0
    lcd.print(" SALIDAS  4    ");      // Aqui va el numero de salida del monedero
    lcd.setCursor(0, 1);               // Ponte en la linea de abajo 1, posicion 0
    lcd.print("    VALOR ");           // Aqui va la segunda linea con mensaje del valor de la moneda
    delay(1000);
  }
   while( digitalRead(inputPin5) == LOW ) //Salida 5
  {
    lcd.setCursor(0, 0);               // Ponte en la linea de arriba 0, posicion 0
    lcd.print(" SALIDAS   5     ");    // Aqui va el numero de salida del monedero
    lcd.setCursor(0, 1);               // Ponte en la linea de abajo 1, posicion 0
    lcd.print("    VALOR ");           // Aqui va la segunda linea con mensaje del valor de la moneda
    delay(1000);
  }
   while( digitalRead(inputPin7) == LOW ) //salida 7
  {
   
    lcd.setCursor(0, 0);               // Ponte en la linea de arriba 0, posicion 0
    lcd.print(" SALIDAS    7   ");     // Aqui va el numero de salida del monedero
    lcd.setCursor(0, 1);               // Ponte en la linea de abajo 1, posicion 0
    lcd.print("    VALOR ");           // Aqui va la segunda linea con mensaje del valor de la moneda
    delay(1000);
  }
   while( digitalRead(inputPin8) == LOW ) //Salida 8
  {
    lcd.setCursor(0, 0);               // Ponte en la linea de arriba 0, posicion 0
    lcd.print(" SALIDAS     8  ");     // Aqui va el numero de salida del monedero
    lcd.setCursor(0, 1);               // Ponte en la linea de abajo 1, posicion 0
    lcd.print("    VALOR ");           // Aqui va la segunda linea con mensaje del valor de la moneda
    delay(1000);
  }
   while( digitalRead(inputPin9) == LOW ) //Salida 9
  {
   
    lcd.setCursor(0, 0);               // Ponte en la linea de arriba 0, posicion 0
    lcd.print(" SALIDAS      9 ");     // Aqui va el numero de salida del monedero
    lcd.setCursor(0, 1);               // Ponte en la linea de abajo 1, posicion 0
    lcd.print("    VALOR ");           // Aqui va la segunda linea con mensaje del valor de la moneda
    delay(1000);
  }
   while( digitalRead(inputPin10) == LOW ) //Salida 10
  {
   
    lcd.setCursor(0, 0);               // Ponte en la linea de arriba 0, posicion 0
    lcd.print(" SALIDAS       10  ");  // Aqui va el numero de salida del monedero
    lcd.setCursor(0, 1);               // Ponte en la linea de abajo 1, posicion 0
    lcd.print("    VALOR ");           // Aqui va la segunda linea con mensaje del valor de la moneda
    delay(1000);
  }
 
}

noter

Bueno.
Confieso que hasta ahora no había entendido nada de lo que estabas intentando hacer. Ahora he releído tu primer post, y la parte en la que hablas de una máquina para COMPROBAR monederos, no un monedero en sí.
Antes de empezar a ayudarte, para intentar simplificar el código lo máximo posible, me gustaría que me dijeras cuántos leds tiene la máquina comprobadora y qué funciones tienen los que no usas aquí (1, 2 y 6, si no me equivoco).

Go Up