Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Biblioteca de portas IO de 8 bits para Arduino

Componentes e suprimentos

Arduino UNO
× 1
LED de 5 mm:Vermelho
× 1
Potenciômetro de volta única - 10k ohms
× 1

Aplicativos e serviços online

Arduino IDE

Sobre este projeto


Arduinolibrary para porta IO de 8 bits





Todos nós sabemos disso, o arduino fornece saída digital usando “ digitalWrite () ”Função e obtém entrada digital por meio de“ digitalRead () ”Função. Mas, usando essas duas funções, ele pode fornecer saída ou obter entrada de qualquer pino - significa que em um momento ele pode fornecer saída ou receber entrada de apenas um pino. Se alguém quiser fazer a interface de qualquer dispositivo IO de 8 bits como display de 7 segmentos, interruptores DIP ou DAC (conversor digital para analógico) com o arduino, ele não pode fornecer saída digital direta de 8 bits para o dispositivo, mas em vez disso, deve fornecer saída para 8 pinos diferentes . O padrão de byte de dados (8 bits) é enviado para diferentes pinos na forma de 1 e 0. Por exemplo, se o byte de dados é 37h (0011 0111), é necessário enviar este padrão 0 n 1 para 8 pinos diferentes usando a função digitalWrite () .

Então, para superar essa situação aqui, apresento a biblioteca IO Port (porta de entrada-saída) de 8 bits para o Arduino. Usando esta biblioteca, pode-se enviar dados diretos de 8 bits para pinos da placa anyarduino configurados como uma porta combinada de 8 bits ou pode obter entrada de 8 bits desses pinos configurados. Esta biblioteca junta quaisquer 8 pinos do Arduino para funcionar como porta IO de 8 bits. Basta selecionar 8 pinos do Arduino para serem combinados como porta de 8 bits e configurar a direção dos dados como entrada ou saída. A direção dos dados é definida pelo caractere ‘O’ para saída ou ‘I’ para entrada.

A biblioteca possui apenas 5 funções. Existem dois construtores que criarão portobject (s), uma função para enviar saída digital de 8 bits aos pinos da porta, uma função para obter entrada digital de 8 bits dos pinos da porta e uma função adicional para alterar / definir a direção IO da porta. Aqui, todas as 5 funções são explicadas resumidamente e, a seguir, são fornecidos alguns exemplos com explicações.

1. IO_Port_8bit (int pin1, intpin2, int pin3, int pin4, int pin5, int pin6, int pin7, int pin8, char dir)

Este é o construtor. Ele criará o (s) objeto (s) desta classe e, portanto, criará uma ou várias portas de 8 bits combinando pinos arduino distintos. É preciso especificar 8 pinos arduino diferentes para serem combinados como porta junto com a direção de dados como entrada ou saída - significa portworks como entrada ou saída. O último argumento dir neste construtor defineport funciona como entrada ou saída. Se dir ='O' significa que a porta funciona como saída e ifdir ='I', a porta funciona como entrada. A mesma porta não pode funcionar como entrada e saída simultaneamente ou mesmo alternativamente. Também indica erro se a direção dos dados não for selecionada

2. IO_Port_8bit (int pin1, intpin2, int pin3, int pin4, int pin5, int pin6, int pin7, int pin8)

Este é outro construtor. Ele também criará objeto (s) desta classe e, portanto, criará uma ou várias portas de 8 bits combinando pinos arduino distintos. Deve-se especificar 8 pinos arduino diferentes para serem combinados como porta. Mas não especifica a direção dos dados como entrada ou saída. Depois de criar o objeto de porta usando este construtor, é necessário definir a direção da porta usando set_IO_direction função. Portanto, este construtor permite que o programador altere a direção dos dados da porta em tempo de execução usando este construtor, a mesma porta pode funcionar como entrada ou saída alternativamente (mas não simultaneamente)

3. set_IO_direction (dir char)

Esta função especifica a direção de entrada / saída da porta. Ele tem um argumento de caractere que pode ser 'I' para porta como entrada ou 'O' para porta como saída. Se a direção de dados não for selecionada, ele exibe erro no monitor serial do Arduino

4. send_8bit_data (int byt)

Esta função envia dados de 8 bits para pinos especificados. Apenas forneça dados int (deve ser <255) como um argumento que é dado diretamente a 8 pinos diferentes. Se os dados forem> 255, ele exibe um erro no monitor serial do Arduino.

5. get_8bit_data (void)

Esta função obtém dados de 8 bits de pinos especificados. Ele retorna dados internos de 8 bits lendo o status de 8 pinos diferentes

Exemplo 1:piscar 8 leds alternativamente a uma taxa de 1 Hz

#include

IO_Port_8bitmyport (2, 3, 4, 5, 6, 7, 8, 9, 'O'); // cria porta de saída

void setup () // nada necessário na configuração

{

}

void loop ()

{

myport.send_8bit_data (85); // enviar dados para piscar todos os LEDs estranhos

atraso (500);

myport.send_8bit_data (170); enviar dados para piscar todos os LEDs pares

atraso (500);

}

Exemplo 2:exibir padrão de contagem binária em LEDs de 0 a F

#include

IO_Port_8bitmy8bitport (2, 3, 4, 5, 6, 7, 8, 9); // criar objeto de porta

void setup ()

{

my8bitport.set_IO_direction ('O'); // definir portdirection

}

void loop ()

{

int i;

for (i =0; i <16; i ++) // enviar dados de 0 a 15 para exibir

{// padrão binário

myport.send_8bit_data (i);

atraso (200);

}

}

Exemplo 3:indica o nível de tensão de entrada analógica no display de gráfico de barras LED de 8 bits

#include

IO_Port_8bitmyport (2, 3, 4, 5, 6, 7, 8, 9, 'O'); // cria o objeto da porta de saída

void setup ()

{

myport.send_8bit_data (255); // pisca todos os LEDs do gráfico de barras uma vez

atraso (500);

myport.send_8bit_data (0);

}

void loop ()

{

nível interno;

nível =analogRead (A0); // ler a tensão de entrada analógica

level =map (level, 0, 1023, 0, 80); // limitar a tensão de 0 a 80

// aumenta ou diminui o nível do gráfico de barras asper input

if ((nível <80) &&(nível> 70)) myport.send_8bit_data (255);

elseif ((nível <=70) &&(nível> 60)) myport.send_8bit_data (127);

elseif ((nível <=60) &&(nível> 50)) myport.send_8bit_data (63);

elseif ((nível <=50) &&(nível> 40)) myport.send_8bit_data (31);

elseif ((nível <=40) &&(nível> 30)) myport.send_8bit_data (15);

elseif ((nível <=30) &&(nível> 20)) myport.send_8bit_data (7);

elseif ((nível <=20) &&(nível> 10)) myport.send_8bit_data (3);

elseif ((nível <=10) &&(nível> 0)) myport.send_8bit_data (1);

elseif (nível ==0) myport.send_8bit_data (0);

}

Exemplo 4:obtenha entrada digital de 8 bits dos interruptores DIP e exiba o valor no monitor serial

#include

IO_Port_8bitmyport (2, 3, 4, 5, 6, 7, 8, 9); // criar objeto de porta

void setup ()

{

Serial.begin (9600); // initializeserial commu.

myport.set_IO_direction (‘I’); // definir a direção da porta

Serial.println ("porttest de entrada de 8 bits");

}

void loop ()

{

int input_byt;

input_byt =myport.get_8bit_data (); // ler o status da chave DIP

Serial.print ("entrada recebida ="); // e

Serial.println (input_byt); // exibe seu valor

atraso (1000);

}

Código

  • Biblioteca Arduino para porta IO de 8 bits
Biblioteca Arduino para porta IO de 8 bits C / C ++
a biblioteca cria uma porta IO de 8 bits a partir de pinos do Arduino e envia / obtém saída / entrada digital de 8 bits
 Sem visualização (somente download). 

Esquemas

A porta IO envia ou obtém dados de 8 bits diretos de pinos diferentes

Processo de manufatura

  1. Painel LCD com Arduino para o simulador de vôo
  2. Switch / Painel de LED com Arduino para FS2020
  3. Monitoramento de temperatura SMART para escolas
  4. Matriz de teclado de prototipagem de 64 teclas para Arduino
  5. Crie uma zona segura para dispositivos Android / iOS / Win10 da Arduino
  6. TFT Shield para Arduino Nano - Iniciar
  7. Controle uma barata com Arduino por menos de $ 30
  8. Uma entrada analógica isolada para Arduino
  9. Arduino Breath Controller barato (USB-MIDI)
  10. Robô para navegação interna supercool