Parte 2 de programação
Depois de entender a estrutura básica de nosso programa e como armazenar valores, precisamos explorar como interagir com os componentes em nossos circuitos.
Input
Uma operação de entrada é uma onde lemos ou recebemos dados de um componente em nosso circuito - um sensor. Conforme discutido na seção Circuitos , diferentes sensores podem ter digitais, bem como sinais analógicos.
Sinal | Instrução Arduino | Explicação |
---|---|---|
Análogo | analogRead(pin) | Retorna um valor inteiro entre 0 e 1023 leituras em pino |
Digital | digitalLeitura(pin) | Retorna 0 (LOW) ou 1 (HIGH) lido no pino |
Exemplo
// Lê o valor de um botão conectado ao pin digital 2
buttonState = digitalRead(2);
// Lê o valor de um sensor conectado a um pin analógico A3
sensorReading = analogRead(A3);
Saída
Inversamente, uma operação de saída é aquela onde enviamos dados para um componente em nosso circuito - um atuador.
Sinal | Instrução Arduino | Explicação |
---|---|---|
Análogo | analógicoWrite(pin, valor) | Envia um valor entre 0 e 1023 para pin |
Digital | escrever_digital(pin, valor) | Envia 0 (LOW) ou 1 (HIGH) para pino |
Exemplo
// Enviando um sinal de ALTO (mesmo que o valor 1) para o pin 3
digitalWrite(3, ALTO);
// Enviando um estado de 123 ao pin A1
analogWrite(A1, 123);
tomada de decisões
Para implementar tomada de decisão em programação, usamos condicionais. Eles nos permitem determinar o que deve acontecer (quais instruções devem ser executadas) com base em condições que definimos.
Sintaxe
// A simple if conditional
if (condition) {
// Instructions to be executed only if condition is true
}
// if-else conditional
// used when we check for two possible outcomes of a condition
if (condition) {
// Instructions to be executed if condition is true
} else {
// Instructions to be executed if condition is false
}
// if-else-if conditional
// used when we check for more than two possible outcomes of a condition
if (condition1) {
// Instructions to be executed if condition1 is true
} else if (condition2) {
// Instructions to be executed if condition1 is false but condition2 is true
} else {
// Instructions to be executed if all conditions are false
}
Onde a condição
geralmente pode ser uma das seguintes:
Operador | Descrição: | Exemplo |
---|---|---|
== | Igualdade | botao== BAIXA |
!= | Desigualdade | botao!= BAIXA |
> | maior que | Leitura de sensor > 300 |
>= | Maior ou igual | leituras de sensor >= 300 |
< | Menos de | Leitura de sensor < 300 |
< | Menor ou igual | leituras de sensor <= 300 |
Série
Uma funcionalidade de programação muito importante que usaremos tem a ver com o recebimento de informações do Arduino, pois nosso programa está sendo executado. A porta serial fornece essa comunicação e nós não precisamos criar um circuito para ela.
Configuração
void setup() {
// Inicie a porta serial e a configure para a velocidade da transferência de 9600 bits por segundo
Serial.begin(9600);
}
Manipulação
Evite loop(){
// Imprime a leitura de A0 sempre em uma nova linha
Serial. rintln( analogRead(A0)
// Aguarde 0. segundos (500 milissegundos) antes de executar a função loop novamente
delay (500);
}
Atraso
Como vimos no último exemplo, a função delay ()
pode ser usada para pausar a execução do nosso programa por um tempo especificado.
Sintaxe atraso (number_of_milliseconds)
Exemplo: Atraso (1000) para uma pausa de 1 seg, atraso (5000) para 5 segundos, atraso (50) para 50 milissegundos
Isso pode ser útil sempre que precisarmos de uma pausa entre a execução das instruções e é comumente colocado como a última instrução na função loop para fornecer uma pausa antes de executá-la novamente.