Banner publicitario de PCBWay

Controlar Monedero con protocolo MDB con PIC

Saludos amigos de forosdeelectronica como el tema lo dice necesito controlar un monedero MDB con un pic solo que no conozco mucho de este protocolo pido a alguien que este un poco familiarizado que me pueda orientar investigue un poco y se que es un protocolo serial solo que con 9 bits si saben algo agradezco su ayuda.
 
Hola Alex, pues es el protocolo estándard para las máquinas de despacho, MDB, qué otro protocolo aplica para dichas máquinas? saludos desde México
 
Saludos gilig17... Si tu idea es realizar una interfaz usando un pic para controlar un monedero... pues el protocolo a emplear dependeria de tu aceptador de monedas, generalmente los aceptadores de monedas son multiplataforma es decir trabajan en rs232, paralelo, cctalk, mdb etc que son seleccionados por hardware o software...

Si lo que quieres es ponerle una interfaz a una maquina que tiene una placa electronica que funciona con MDB pues no hay de otra que utilizar dicho protocolo...

Voy a investigar sobre el protocolo MDB a ver si encuentro algo(y)
 
hola a todos!
alguien pudo realizar alguna prueba?
actualmente estoy haciendo pruebas con un monedero cashflow 690 y una expendedora marca necta.
Leo los bits con un osciloscopio digital tektronix pero no logro entender.
alguien pudo hacer andar alguna comunicacion en executivo o en mdb? hay algun pic para hacer esto?
muchas gracias
 
Compra un analizador lógico, hay económicos casi al precio de un pic (incluyendo horas hombre)


Amigo lo que intento decirte es que con un analizador lógico seleccionas el protocolo y ves lo que esta pasando, o que se están diciendo los dispositivos, obviamente tienes que comprar uno que tenga dicho protocolo, sino tendrás que buscarlo en la página del fabricante....
Es lógico que un analizador fue inventado por que los osciloscopios no tienen esa propiedad...

Siquiera buscaste si hay alguno que te sirva?
Viste esto y no te sirve?
http://www.vending.org/technical/MDB_3.0.pdf
 
Última edición por un moderador:
No se amigo, solo estoy intentando darte alternativas, y se que es posible que si es una comunicación usart se pueda, puse un link del protocolo mdb3.0 en mi mensaje anterior pero no lo lei. Dale una buscada si no te sirve, sin la informacion directa del fabricante es muy complejo descifrar cualquier protocolo sea cual sea.
 
Hola a todos los entusiastas de la electronica, tengo una duda de como se comunican el Microcontrolador de una maquina de vending con el monedero electronico tipo compacto Ejecutivo o MBD que aparte de encargarse de la aceptacion de las monedas tambien se encarga de la devolucion del cambio, es en esencia un microcontrolador, este es un dispositivo que esta estandarizado y hay varias marcas, la conexion entre los dos dispositivos es alimentacion y un cable de TX y otro de RX, pareciera que fuera una comunicacion UART o similar
Saludos
 
Yo he hecho varias Vending, pero solo uso los pulsos que envía el monedero.
No he usado los monederos que regresan cambio, pero tal vez próximamente.
En cuanto a la comunicación USART, sí he notado esos terminales pero no he visto la hoja de datos.
Los monederos los configura el dueño conforme al tipo de monedas, así que mis programas solo leen pulsos.

Sucede que cierta vez un amigo se emocionó cuando le dije que sus sistemas los podía hacer configurables por Wi-Fi o Bluetooth.
Así que usé los monederos que él tenía y solo actualicé sus antiguas tarjetas.
Ahora él puede configurar los costos, los tiempos, las leyendas, y saber el total acumulado desde su teléfono.

Si quieres saber para qué sirve el USART, busca la hoja de datos de algún monedero en particular.
 
Gracias por la respuesta, si ya conozco ese tipo de monederos aqui en España se le dice
validadores aunque se utilizan poco y los que mas se hacen servir son los compactos ejecutivos, es decir los que tu dices que regresan cambio
Hay muy poca informacion dobre ellos en la red y las marcas tambien son reacias a darla
Saludos
 
Yo he hecho varias Vending, pero solo uso los pulsos que envía el monedero.
No he usado los monederos que regresan cambio, pero tal vez próximamente.
En cuanto a la comunicación USART, sí he notado esos terminales pero no he visto la hoja de datos.
Los monederos los configura el dueño conforme al tipo de monedas, así que mis programas solo leen pulsos.

Sucede que cierta vez un amigo se emocionó cuando le dije que sus sistemas los podía hacer configurables por Wi-Fi o Bluetooth.
Así que usé los monederos que él tenía y solo actualicé sus antiguas tarjetas.
Ahora él puede configurar los costos, los tiempos, las leyendas, y saber el total acumulado desde su teléfono.

Si quieres saber para qué sirve el USART, busca la hoja de datos de algún monedero en particular.
Buenas D@rkbytes, estoy intentando realizar un proyecto para poder leer los pulsos de la maquina en MDB con una ESP32-S3 pero no soy capaz de leerlos porque siempre me da datos diferente en la misma balda de la vending, podrias darme algun tipo de indicacion???
 
Que des más datos de lo que estás usando y cómo lo estás haciendo.
Por ejemplo: manual del monedero, código fuente de la rutina de lectura y diagrama del circuito de entrada.
Este es el esquema de conexiones que estoy usando, el monedero es un cashflow 690 series (adjunto el manual).

1775490178593.png
Que des más datos de lo que estás usando y cómo lo estás haciendo.
Por ejemplo: manual del monedero, código fuente de la rutina de lectura y diagrama del circuito de entrada.
Respecto al código, he ido haciendo algunos pero con ninguno he conseguido resultados claros, este ha sido uno de ejemplo:
C++:
#include <Arduino.h>

#include "driver/uart.h"

#define RX_PIN 18

#define TX_PIN 17

#define UART_PORT UART_NUM_1


void setup() {

  Serial.begin(115200);

 

  uart_config_t uart_config = {

    .baud_rate = 9600,

    .data_bits = UART_DATA_8_BITS,

    .parity = UART_PARITY_DISABLE,

    .stop_bits = UART_STOP_BITS_1,

    .flow_ctrl = UART_HW_FLOWCTRL_DISABLE,

    .source_clk = UART_SCLK_DEFAULT,

  };


  uart_driver_install(UART_PORT, 2048, 0, 0, NULL, 0);

  uart_param_config(UART_PORT, &uart_config);

 

  // Inversión necesaria para el optoacoplador 6N137

  uart_set_line_inverse(UART_PORT, UART_SIGNAL_RXD_INV);

  uart_set_pin(UART_PORT, TX_PIN, RX_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);

 

  Serial.println("\n[SISTEMA DE MAPEADO FILTRADO]");

  Serial.println("Esperando selección en la máquina...");

}


void loop() {

  uint8_t b[256];

  int len = uart_read_bytes(UART_PORT, b, 256, 40 / portTICK_PERIOD_MS);


  if (len > 0) {

    // Buscamos dentro de la ráfaga de datos el patrón de selección que hemos visto en tus logs

    for (int i = 0; i < len - 5; i++) {

    

      // Filtramos por el inicio de trama 1E FF o 9E FF que detectó tu ESP32

      if ((b == 0x1E || b == 0x9E) && b[i+1] == 0xFF) {

        

        Serial.println("\n========================================");

        Serial.println("¡DETECCIÓN DE SELECCIÓN ENCONTRADA!");

        

        // Según tus datos, el ID del muelle está en la posición 3 y 4 de la trama

        Serial.printf("ID ESPIRAL (Mapeo): %02X %02X\n", b[i+2], b[i+3]);

        

        Serial.print("TRAMA DE VENTA: ");

        for(int j=0; j<6; j++) Serial.printf("%02X ", b[i+j]);

        Serial.println("\n========================================");

        

        delay(500); // Evitar duplicados

        return;

      }

    }

  }

}
 

Adjuntos

  • MANUALMEICASHFLOE7000 (1).pdf
    4.9 MB · Visitas: 1
Última edición por un moderador:
No conozco mucho sobre la programación en arduino y la verdad es que nunca me ha gustado ese IDE.
Lo que te recomiendo es que utilices interrupciones, en este caso por UART.
Sucede que en un sistema Vending hay muchas cosas que hacer y una rutina por poleo se puede atorar atendiendo algo.
Es mejor atender los sensores y pulsadores mediante interrupciones y utilizar banderas para comprobar estados.

Yo para no complicarme las cosas opté por usar los pulsos para contar la cantidad y me ha funcionado correctamente.
 
No conozco mucho sobre la programación en arduino y la verdad es que nunca me ha gustado ese IDE.
Lo que te recomiendo es que utilices interrupciones, en este caso por UART.
Sucede que en un sistema Vending hay muchas cosas que hacer y una rutina por poleo se puede atorar atendiendo algo.
Es mejor atender los sensores y pulsadores mediante interrupciones y utilizar banderas para comprobar estados.

Yo para no complicarme las cosas opté por usar los pulsos para contar la cantidad y me ha funcionado correctamente.
Okey, mirare lo que me has recomendado, muchas gracias
 
Atrás
Arriba