Funções de entrada e saída Arduino

Funções de entrada e saída Arduino
Para interagir a placa Arduino com diferentes chips, sensores, LEDs e outros periféricos integrados, são usados ​​para a entrada e saída. Da mesma forma, para executar o código compilado na placa Arduino, essas funções também são usadas. Essas funções de entrada e saída também definem as entradas e saídas do programa Arduino.

Funções de entrada/saída

Existem cinco tipos diferentes de funções usadas no Arduino para configurar suas entradas e saídas. As seguintes funções de saída de entrada são discutidas brevemente neste discurso:

  • função pinmode ()
  • Função DigitalRead ()
  • função digitalWrite ()
  • Função analogread ()
  • função analogwrite ()

função pinmode ()

Para conectar os periféricos à placa Arduino, seus pinos são atribuídos a cada dispositivo que deve ser conectado à placa Arduino. O número do pino é atribuído no código Arduino usando a função do modo PIN. A função do modo pino tem dois argumentos: um é o número do pino e o outro é o modo do pino. Os modos PIN são divididos em três tipos.

  • ENTRADA
  • SAÍDA
  • Input_pull

ENTRADA : Ele define o respectivo pino que será usado como uma entrada para o Arduino.

SAÍDA : Este modo é usado quando a instrução deve ser dada a qualquer dispositivo conectado.

Input_pull : Este modo também é usado para atribuir estado de entrada ao pino. Ao usar esse modo, a polaridade será revertida da entrada fornecida, por exemplo, se a entrada for alta, isso significa que o dispositivo estará desligado e se a entrada for baixa, isso significa que o dispositivo estiver ligado. Esta função funciona com a ajuda de resistores internos que são construídos em Arduino.

Sintaxe : Para usar o modo PIN, funcione a seguinte sintaxe deve ser seguida:

pinmode (número de pino, modo de pin);

Funções DigitalRead () e DigitalWrite ()

Existem 14 pinos digitais no Arduino Uno, que podem ser usados ​​para as funções de leitura e gravação. Quando o status de qualquer pino específico deve ser conhecido, a função digitalRead () é usada. Esta função é uma função do tipo de retorno, pois dirá o status do pino em sua saída.

Da mesma forma, quando um estado deve ser atribuído a qualquer pino, uma função digitalWrite () é usada. A função digitalWrite () tem dois argumentos que um é o número do pino e outro é o estado que será definido pelo usuário.

Ambas as funções são do tipo booleano, então, apenas dois tipos de estados são usados ​​na função de gravação digital um é alto e o outro é baixo. Para usar as funções DigitalRead () e DigitalWrite (), a seguinte sintaxe deve ser usada:

DigitalRead (número pino);
DigitalWrite (número pino, estado);

Exemplo

No exemplo abaixo mencionado, as funções Pinmode (), DigitalRead () e DigitalWrite () são usadas:

int buttonpin = 2;
int ledpin = 12;
// As variáveis ​​mudarão:
int buttonstate;
Void Setup ()
Serial.começar (9600);
pinmode (ledpin, saída);
pinmode (botão, input_pullup);

Void Loop ()
ButtonState = DigitalRead (ButtonPin);
Serial.println (ButtonState);
if (buttonState == 1)
// Ligue o LED:
DigitalWrite (Ledpin, 1);
outro
// Desligue o LED:
DigitalWrite (Ledpin, 0);

No código de exemplo, um LED é feito ligado e desativado usando as funções de entrada e saída e também um botão é usado.

Primeiro, o número do pino para o botão e o LED é declarado e o input_pullup é dado ao botão como seu modo e, em seguida, o LED recebe a saída como seu modo.

Para ler o estado do botão, ele deve estar no modo de entrada, é por isso que input_pullup é fornecido ao botão e na função de configuração usando o modo PIN, os pinos declarados são atribuídos a Arduino para o botão e o LED.

Da mesma forma, depois disso, o loop lê o estado inicial do botão usando a função DigitarRead ().Se o estado do botão estiver alto, o LED será dado o estado alto, o que significa que o LED ligará. No entanto, se o estado do botão estiver baixo, o estado do LED será baixo, o que significa que o LED desligará.

Como o input_pullup é usado para um botão que inverte as entradas do botão como alterar alto para baixo e vice -versa. Portanto, quando o programa é compilado, o LED também liga e, ao pressionar o botão, o LED desligará.

Saída

Funções analogread () e analogwrite ()

O Arduino Uno possui 6 portas analógicas que podem ser usadas por essas funções de leitura e gravação analógicas. A função analogread () lerá o estado do pino analógico e retornará um valor na forma de números no intervalo de 0 a 1024 para resolução de 10 bits e, para 12 bits Resolução, o intervalo será de 0 a 4095.

A resolução de bits é a conversão analógica para digital; portanto, por 10 bits, o intervalo pode ser calculado em 2^10 e por 12 bits será 2^12 respectivamente. No entanto, para atribuir um estado a qualquer pino analógico no Arduino uno, a função analogwrite () é usada. Ele gerará a onda de modulação de pulso e o estado será definido, dando ao seu ciclo de serviço que varia de 0 a 255.

A principal diferença entre as funções analógicas e digitais é que o digital define os dados na forma de alta ou baixa, enquanto o analógico fornece os dados na forma de um ciclo de trabalho de modulação de largura de pulso. A sintaxe da leitura e gravação analógica é dada e, depois disso, um código de exemplo é fornecido para fins de ilustração:

analogread (número pino);
analogwrite (número pino, valor de pino);

Exemplo

Para demonstrar o uso de DigitalRead () e DigitalWrite () Funções, um programa Arduino para alterar o LED de brilho é compilado. O brilho do LED é alterado usando o potenciômetro que está conectado ao pino analógico A3 do Arduino. A função analogread () lê a saída do potenciômetro e, em seguida, os valores do potenciômetro são escalierizados usando a função do mapa. Depois que o valor é escalierizado, é dado ao LED.

int led_pin = 4;
Void Setup ()
Serial.começar (9600);
pinmode (led_pin, saída);

Void Loop ()
int analogValue = analogread (A3);
INT BLILIÇÃO = MAP (ANALOGVALUE, 0, 1023, 0, 255);
analogwrite (led_pin, brilho);
Serial.print ("Analog:");
Serial.impressão (analogValue);
Serial.print (", brilho:");
Serial.println (brilho);
atraso (100);

Quando o valor do potenciômetro é zero, isso significa que a resistência é máxima e não haverá tensão fornecida ao LED. Portanto, o valor para o brilho também será zero, portanto, o LED permanecerá no estado fora.

Quando o valor do potenciômetro é diminuído, o valor do brilho aumentará e, portanto, o LED estará no estado.

Conclusão

As funções de saída de entrada desempenham um papel muito importante no que diz respeito a dispositivos de interface com Arduino ou ao fazer projetos baseados em hardware. Essas funções estão construindo blocos de todos os projetos Arduino. Neste, escreva, as funções de saída de entrada são discutidas em detalhes com a ajuda de códigos de exemplo.