Conversor binario a decimal con leds como dato de entrada

Hola buenas tardes a toda la comunidad, este es mi primer posteo, y les comento que he buscado en google, y acá mismo, y si bien hay sketchs de conversión binario/decimal o viceversa, mi planteo es diferente:
Lo que quiero realizar es, con 8 leds, tomar lectura a través de "digitalRead" en cada uno de los 8, y luego según estén o no encendidos, mostrar en monitor serie el número decimal equivalente. EL GRAN PROBLEMA, es que sé que debo poner a los pinMode en INPUT (suponiendo que quiera tomar la lectura del estado de cada led) y eso hace que deba solucionar lo del encendido y apagado de una manera externa, y manual.
Ojalá se entienda mi intención.

El modo de pin de su LED seguirá siendo SALIDA. Si he entendido correctamente, debe leer el estado de cada pin LED e imprimir ese estado en el monitor serie. Probablemente sepa cómo usar un bucle "for()" e imprimir en un monitor serie, por lo que las partes que faltan son crear una matriz "pin" con 'byte ledPin[] = {2, 3, 4, 5, 6, 7, 8, 9};' y 'digitalRead(ledPin[pin]);'... Súmalos juntos...

// definir hardware
byte ledPin[] = {2, 3, 4, 5, 6, 7, 8, 9};

void setup() {
  // Inicialización de comunicaciones en serie
  Serial.begin(115200);

  // crear semilla pseudoaleatoria
  randomSeed(analogRead(A0));

  // inicializar pines LED
  for (int index = 0; index < 8; index++) {
    pinMode(ledPin[index], OUTPUT);
  }

  // crear un patrón de LED aleatorio
  for (int index = 0; index < 8; index++) {
    digitalWrite(ledPin[index], random(2));
  }

  // estado del LED de impresión
  for (int index = 0; index < 8; index++) {
    Serial.print(ledPin[index]);
    Serial.print(" = ");
    Serial.println(digitalRead(ledPin[index]));
  }
}

void loop() {
  // empty
}
1 Like

Según lo entiendo, claramente tienes que encender los LED externamente a menos que por código enciendas los LED lo que no tendría sentido porque ya se habría hecho la conversión de decimal a binario.

Entonces los LED simplemente reflejarían el estado de los interruptores conectados a los pines.
Y acá tienes 2 opciones (dependiendo de la cantidad de pines disponibles).
La que menos pines utiliza puede ser algo así

La otra opción es conectar los interruptores a 8 pines en modo entrada y los LED a 8 pines en modo salida (no tiene mucho sentido).

1 Like

Que te parece si nos compartes un diagrama (hecho a mano queda bien) que ilustre como estás pensando en tener la conexión de los LEDs y así nos vamos más rápido con esto.

1 Like

Moderador
Te invito a que leas las Normas del foro porque tu duda en como planteas la pregunta se debe a que no sabes presentar debidamente el contexto de tu problema, entonces 3 personas la interpretan a su manera, cosa que yo tmb. haría.

1 Like

Sí, voy a presentar un esquema gráfico, pero mas o menos mi idea viene por el lado de MaximoEsfuerzo. En cuanto me recupere un poco de la gripe me pongo con eso. Gracias!

@fernando77tt te dieron todo resuelto, código y conexionado.

Si quieres te busco cientos de hilos que te serían de ayuda, pero eso para demostrarte que no supiste hacerlo bien.

Cuando busques no lo hagas con los términos de tu objetivo.
No busques por ejemplo tu título.

Esto esta en cualquier monedero (aparato que recibe monedas y entrega en un conector salidas digitales con el valor en ON por cada moneda) por citar algo parecido. Esto es la lectura de cualquier botón y es el capitulo 1 de cualquier libro. En documentación hay varios.
Es la lectura de un optoacoplador. De un sensor con colector abierto (claro que tal vez no sepas de qué hablo), hay muchísimos ejemplos similares.
Luego el tema conversión binario a digital te debería bastar con entender como funciona. Como se representan los datos en cualquier microcontrolador y cómo puedes de manera simple mostrarlos en el formato que tú desees.
Claro que eso te lo da la experiencia pero te servirá este consejo para el futuro.
Resumen: Tu objetivo debes desarmarlo en pequeñas tareas. Cómo se resuelve esa tarea, seguro esta ampliamente resuelta con pitos y cornetas en todo internet. Así se busca y se encuentra información.
Suerte!!

1 Like

Genial!! Desde ya muchas gracias a todas las respuestas, iré evolucionando, investigando y sobre todo incursionando un poco más en este tipo de prácticas, ya que si bien me manejo con Arduino, es lo básico, y hay un largo camino por recorrer.
Un gran saludo a todos, y en breve lo estaré desarrollando.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.