Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Librería Eficiente de Puerto I/O de 8 Bits para Arduino – Expande el Control Digital

Componentes y materiales

Arduino UNO ×1
LED rojo 5 mm ×1
Potenciómetro monoturno 10 kΩ ×1

Aplicaciones y servicios online

Sobre el proyecto

Librería Arduino para puerto I/O de 8 bits

Sabemos que Arduino usa digitalWrite() para salida digital y digitalRead() para entrada digital, pero estas funciones operan sobre un solo pin a la vez. Si quieres interfazar un dispositivo de 8 bits (display de 7 segmentos, interruptores DIP, DAC) necesitas enviar el byte bit a bit a 8 pines distintos. Por ejemplo, para enviar 0x37 (0011 0111) debes llamar a digitalWrite() ocho veces.

Para resolver esto presento la librería puerto I/O de 8 bits (8-bit IO Port). Permite enviar o recibir directamente 8 bits de datos usando cualquier grupo de 8 pines de Arduino configurados como un puerto combinado. Solo tienes que seleccionar 8 pines y definir su dirección: 'O' para salida o 'I' para entrada.

La librería tiene solo 5 funciones: dos constructores para crear objetos puerto, una para enviar 8 bits, otra para leer 8 bits y una para cambiar la dirección I/O en tiempo de ejecución.

Funciones principales

  1. IO_Port_8bit(pin1...pin8, dir) – Constructor con dirección fija ('O' salida, 'I' entrada). El puerto no puede cambiar de dirección.
  2. IO_Port_8bit(pin1...pin8) – Constructor sin dirección inicial. Permite cambiar la dirección en tiempo de ejecución con set_IO_direction().
  3. set_IO_direction(char dir) – Define dirección: 'I' entrada, 'O' salida. Muestra error en monitor serie si no se especifica.
  4. send_8bit_data(int byt) – Envía 8 bits (0-255) a los pines configurados. Error si >255.
  5. get_8bit_data() – Lee 8 bits de los pines configurados y devuelve un entero (0-255).

Ejemplos

Ejemplo 1: Parpadear 8 LEDs alternadamente a 1 Hz

#include <IO_Port_8bit.h>
IO_Port_8bit myport(2, 3, 4, 5, 6, 7, 8, 9, 'O'); // puerto salida

void setup() {}

void loop() {
  myport.send_8bit_data(85);  // 01010101 - LEDs impares
  delay(500);
  myport.send_8bit_data(170); // 10101010 - LEDs pares
  delay(500);
}

Ejemplo 2: Mostrar cuenta binaria 0-F en LEDs

#include <IO_Port_8bit.h>
IO_Port_8bit my8bitport(2, 3, 4, 5, 6, 7, 8, 9);

void setup() {
  my8bitport.set_IO_direction('O');
}

void loop() {
  for (int i = 0; i < 16; i++) {
    my8bitport.send_8bit_data(i);
    delay(200);
  }
}

Ejemplo 3: Nivel de voltaje analógico en barra de 8 LEDs

#include <IO_Port_8bit.h>
IO_Port_8bit myport(2, 3, 4, 5, 6, 7, 8, 9, 'O');

void setup() {
  myport.send_8bit_data(255); delay(500);
  myport.send_8bit_data(0);
}

void loop() {
  int level = analogRead(A0);
  level = map(level, 0, 1023, 0, 80);
  if (level > 70) myport.send_8bit_data(255);
  else if (level > 60) myport.send_8bit_data(127);
  else if (level > 50) myport.send_8bit_data(63);
  else if (level > 40) myport.send_8bit_data(31);
  else if (level > 30) myport.send_8bit_data(15);
  else if (level > 20) myport.send_8bit_data(7);
  else if (level > 10) myport.send_8bit_data(3);
  else if (level > 0) myport.send_8bit_data(1);
  else myport.send_8bit_data(0);
}

Ejemplo 4: Leer 8 bits de interruptores DIP y mostrar en monitor serie

#include <IO_Port_8bit.h>
IO_Port_8bit myport(2, 3, 4, 5, 6, 7, 8, 9);

void setup() {
  Serial.begin(9600);
  myport.set_IO_direction('I');
  Serial.println("Test puerto entrada 8-bit");
}

void loop() {
  int input_byt = myport.get_8bit_data();
  Serial.print("entrada = ");
  Serial.println(input_byt);
  delay(1000);
}

Código

La librería completa (archivos .h y .cpp) está disponible para descarga. Crea puertos de 8 bits a partir de pines de Arduino y envía/recibe datos digitales de 8 bits directamente.

Esquemáticos

Librería Eficiente de Puerto I/O de 8 Bits para Arduino – Expande el Control Digital

El puerto I/O envía o recibe datos de 8 bits directamente desde diferentes pines.

Proceso de manufactura

  1. Panel de control para Flight Simulator 2020 con Arduino Nano: Pantallas LCD y CDI
  2. Panel de interruptores y LEDs para Microsoft Flight Simulator 2020 con Arduino
  3. Sistema inteligente de monitorización de temperatura para escuelas: preciso, en tiempo real y seguro
  4. Teclado Prototipo de 64 Teclas con Arduino: Matriz con Registros de Desplazamiento
  5. Crea una Zona Segura con Arduino para Desbloquear Android, iOS y Windows 10
  6. Pantalla TFT Shield de Alto Rendimiento 2.8” para Arduino Nano – Display SPI 320×240
  7. Sistema DIY de Control de Cucarachas con Arduino – Construcción por Menos de $30
  8. Circuito de entrada analógica aislada para Arduino
  9. Controlador de Respiración Arduino Asequible con Integración USB-MIDI
  10. Control Experto de Motores DC: Consejos y Trucos con Controlador PID
  11. Kit de Robot de Navegación Interior Inteligente para Proyectos Arduino