Biblioteca de portas IO de 8 bits para Arduino
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Aplicativos e serviços online
|
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 bitsSem visualização (somente download).
Esquemas
A porta IO envia ou obtém dados de 8 bits diretos de pinos diferentesProcesso de manufatura
- Painel LCD com Arduino para o simulador de vôo
- Switch / Painel de LED com Arduino para FS2020
- Monitoramento de temperatura SMART para escolas
- Matriz de teclado de prototipagem de 64 teclas para Arduino
- Crie uma zona segura para dispositivos Android / iOS / Win10 da Arduino
- TFT Shield para Arduino Nano - Iniciar
- Controle uma barata com Arduino por menos de $ 30
- Uma entrada analógica isolada para Arduino
- Arduino Breath Controller barato (USB-MIDI)
- Robô para navegação interna supercool