Biblioteca de puertos IO de 8 bits para Arduino
Componentes y suministros
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Aplicaciones y servicios en línea
|
Acerca de este proyecto
Arduinolibrary para puerto IO de 8 bits
Todos sabemos que el arduino da salida digital usando " digitalWrite () ”Y obtiene entrada digital a través de“ digitalRead () ”Función. Pero al usar estas dos funciones, puede dar salida o recibir entrada desde cualquier pin, lo que significa que en un momento puede dar salida o recibir entrada desde un solo pin. Si alguien desea conectar cualquier dispositivo IO de 8 bits, como una pantalla de 7 segmentos, interruptores DIP o DAC (convertidor digital a analógico) con arduino, no puede proporcionar una salida digital directa de 8 bits al dispositivo, sino que debe dar salida a 8 pines diferentes. .El patrón de bytes de datos (8 bits) se envía a diferentes pines en forma de 1 y 0. Por ejemplo, si el byte de datos es 37h (0011 0111), uno tiene que enviar estos patrones 0 n 1 a 8 pines diferentes usando la función digitalWrite () .
Entonces, para superar esta situación, aquí presento la biblioteca IO Port (puerto de entrada-salida) de 8 bits para arduino. Al usar esta biblioteca, uno puede enviar datos directos de 8 bits a cualquier pines de la placa Arduino configurados como un puerto combinado de 8 bits o puede obtener una entrada de 8 bits desde estos pines configurados. Esta biblioteca agrupa los 8 pines de arduino para que funcionen como puerto IO de 8 bits. Solo uno tiene que seleccionar cualquiera de los 8 pines arduino para combinarlos como puerto de 8 bits y debe configurar su dirección de datos como entrada o salida. La dirección de los datos se establece mediante el carácter "O" para la salida o "I" para la entrada.
La biblioteca tiene solo 5 funciones. Hay dos constructores que crearán portobject (s), una función para enviar salida digital de 8 bits a los pines del puerto, una función para obtener una entrada digital de 8 bits desde los pines del puerto y una función adicional para alterar / establecer la dirección IO del puerto. Aquí se explican brevemente las 5 funciones y, a continuación, se dan algunos ejemplos con explicaciones.
1. IO_Port_8bit (int pin1, intpin2, int pin3, int pin4, int pin5, int pin6, int pin7, int pin8, char dir)
Este es el constructor. Creará objetos de esta clase y, por lo tanto, creará uno o muchos puertos de 8 bits combinando pines arduino distintos. Uno tiene que especificar 8 pines arduino diferentes para combinarlos como puerto junto con la dirección de datos como entrada o salida, lo que significa portworks como entrada o salida. El último argumento dir en este constructor define puerto funciona como entrada o salida. Si dir ='O' significa que el puerto funciona como salida y ifdir ='I', el puerto funciona como entrada. El mismo puerto no puede funcionar como entrada y salida tanto de forma simultánea como alternativa. También indica error si la dirección de datos no está seleccionada
2. IO_Port_8bit (int pin1, intpin2, int pin3, int pin4, int pin5, int pin6, int pin7, int pin8)
Este es otro constructor. También creará objetos de esta clase y, por lo tanto, creará uno o muchos puertos de 8 bits combinando distintos pines arduino. Uno tiene que especificar 8 pines arduino diferentes para combinar como puerto. Pero no especifica la dirección de los datos como entrada o salida. Después de crear un objeto de puerto usando este constructor, uno tiene que establecer la dirección del puerto usando set_IO_direction función. Entonces, este constructor permite al programador alterar la dirección de los datos del puerto en tiempo de ejecución usando este constructor, el mismo puerto puede funcionar como entrada o salida de manera alternativa (pero no simultáneamente)
3. set_IO_direction (char dir)
Esta función especifica la dirección de entrada / salida del puerto. Tiene un argumento de carácter que puede ser 'I' para el puerto como entrada u 'O' para el puerto como salida. Si la dirección de datos no está seleccionada, muestra un error en el monitor serial de arduino
4. send_8bit_data (int byt)
Esta función envía datos de 8 bits a los pines especificados. Simplemente proporcione datos int (debe ser <255) como un argumento que se proporciona directamente a 8 pines diferentes. Si los datos son> 255, muestra un error en el monitor serial de arduino.
5. get_8bit_data (void)
Esta función obtiene datos de 8 bits de los pines especificados. Devuelve datos int de 8 bits leyendo el estado de 8 pines diferentes
Ejemplo 1:parpadea 8 leds alternativamente a una frecuencia de 1 Hz
#include
IO_Port_8bitmyport (2, 3, 4, 5, 6, 7, 8, 9, "O"); // crear puerto de salida
configuración void () // no se requiere nada en la configuración
{
}
bucle vacío ()
{
myport.send_8bit_data (85); // enviar datos para hacer parpadear todos los LED impares
retraso (500);
myport.send_8bit_data (170); enviar datos para hacer parpadear todos los LED pares
retraso (500);
}
Ejemplo 2:muestra el patrón de conteo binario en los LED de 0 a F
#include
IO_Port_8bitmy8bitport (2, 3, 4, 5, 6, 7, 8, 9); // crear objeto de puerto
configuración vacía ()
{
my8bitport.set_IO_direction ('O'); // establecer la dirección del puerto
}
bucle vacío ()
{
int i;
for (i =0; i <16; i ++) // enviar datos de 0 a 15 para mostrar
{// patrón binario
myport.send_8bit_data (i);
retraso (200);
}
}
Ejemplo 3:indicar el nivel de voltaje de entrada analógica en la pantalla de gráfico de barras LED de 8 bits
#include
IO_Port_8bitmyport (2, 3, 4, 5, 6, 7, 8, 9, "O"); // crea un objeto de puerto de salida
configuración vacía ()
{
myport.send_8bit_data (255); // hacer parpadear todos los LED del gráfico de barras una vez
retraso (500);
myport.send_8bit_data (0);
}
bucle vacío ()
{
nivel int;
nivel =analogRead (A0); // leer voltaje de entrada analógica
level =map (level, 0, 1023, 0, 80); // limitar el voltaje de 0 a 80
// aumenta o disminuye el nivel del gráfico de barras según la entrada
if ((nivel <80) &&(nivel> 70)) myport.send_8bit_data (255);
elseif ((nivel <=70) &&(nivel> 60)) myport.send_8bit_data (127);
elseif ((nivel <=60) &&(nivel> 50)) myport.send_8bit_data (63);
elseif ((nivel <=50) &&(nivel> 40)) myport.send_8bit_data (31);
elseif ((nivel <=40) &&(nivel> 30)) myport.send_8bit_data (15);
elseif ((nivel <=30) &&(nivel> 20)) myport.send_8bit_data (7);
elseif ((nivel <=20) &&(nivel> 10)) myport.send_8bit_data (3);
elseif ((nivel <=10) &&(nivel> 0)) myport.send_8bit_data (1);
elseif (nivel ==0) myport.send_8bit_data (0);
}
Ejemplo 4:obtenga una entrada digital de 8 bits de los interruptores DIP y muestre el valor en el monitor en serie
#include
IO_Port_8bitmyport (2, 3, 4, 5, 6, 7, 8, 9); // crear objeto de puerto
configuración vacía ()
{
Serial.begin (9600); // inicializa comunicación serial
myport.set_IO_direction ("Yo"); // establecer la dirección del puerto
Serial.println ("prueba de puerto de entrada de 8 bits");
}
bucle vacío ()
{
int input_byt;
input_byt =myport.get_8bit_data (); // lee el estado del interruptor DIP
Serial.print ("entrada recibida ="); // y
Serial.println (input_byt); // muestra su valor
retraso (1000);
}
Código
- Biblioteca Arduino para puerto IO de 8 bits
Biblioteca Arduino para puerto IO de 8 bits C / C ++
la biblioteca crea un puerto IO de 8 bits a partir de pines arduino y envía / obtiene salida / entrada digital de 8 bitsSin vista previa (solo descarga).
Esquemas
El puerto IO envía o recibe datos directos de 8 bits desde diferentes pinesProceso de manufactura
- Panel LCD con Arduino para Flight Simulator
- Panel de interruptores / LED con Arduino para FS2020
- Monitoreo SMART de temperatura para escuelas
- Matriz de teclado de prototipos de 64 teclas para Arduino
- Cree una zona segura para dispositivos Android / iOS / Win10 con Arduino
- TFT Shield para Arduino Nano - Iniciar
- Controla una cucaracha con Arduino por menos de $ 30
- Una entrada analógica aislada para Arduino
- Controlador de respiración Arduino barato (USB-MIDI)
- Trucos para controlar motores de CC
- Robot para navegación interior supercogedora