Início
/
Software
/
Dicas de Software
/
Como utilizar o operador ternário na programação com Arduino
Como utilizar o operador ternário na programação com Arduino
Angelo Luis Ferreira | 19/04/2021
Acessos: 5.046
Operador Ternário na programação com Arduino
Objetivo
Nesta dica vamos mostrar como usar o operador ternário na programação com Arduino. O operador ternário é uma alternativa elegante e compacta para substituir a estrutura condicional if/else na seguinte situação específica:
1. Operador Ternário
1.1. Como já mencionamos acima, o operador ternário possui 3 operandos: Condição, Operação 1 se for verdadeiro e Operação 2 se for falso.
1.1.1 Observe que a operação 1 (se for verdadeiro) é precedida pelo sinal de interrogação (?). Já a operação 2 (se for falso) deve ser precedida do símbolo de dois pontos (:).
1.1.2. O operador ternário é utilizado na principais linguagens de programação empregadas atualmente.
1.2. Veja a seguir a sintaxe utilizada para criarmos um operador ternário na linguagem C++ e também na programação com Arduino:
Sintaxe:
? : ;
2. Exemplo A
2.1 Neste exemplo, vamos calcular o imposto para duas condições de salário: salário maior que 2000, o imposto será de 20%, e salário menor ou igual a 2000, o imposto será de 10%.
void setup() {
Serial.begin(9600);
Serial.println("Digite o seu salário");
}
void loop() {
if (Serial.available()) {
int salario = Serial.parseInt();
int imposto = salario > 2000 ? salario * 0.20 : salario * 0.1;
Serial.print("Salario = ");
Serial.print(salario);
Serial.print(" | Imposto = ");
Serial.println(imposto);
}
}
2.2. Observe que utilizamos o operador ternário para calcular o valor do imposto:
int imposto = salario > 2000 ? salario * 0.20 : salario * 0.1;
2.2.1. No exemplo acima, temos:
2.2.1.1. condição: salario > 2000
2.2.1.2. se a condição for verdadeira, retorna a operação 1: salario * 0.20
2.2.1.3. se a condição for falsa retorna a operação 2: salario * 0.10
2.3. Abaixo, veja como ficaria o código com o condicional if/else.
int imposto;
if (salario > 2000) imposto = salario * 0.20;
else imposto = salario * 0.10;
2.3.1. Observe que no exemplo acima, onde usamos o operador condicional if/else, precisamos de no mínimo 2 linhas de código. Quando usamos o operador ternário, uma linha de código já é suficiente.
2.3.2. Observe que o uso de chaves {} para o operador condicional neste caso é opcional.
2.4. Copie o código nas 2 situações e rode na IDE do Arduino. Veja o resultado abaixo, para qualquer uma das situações (operador ternário ou operador condicional if/else):
3. Exemplo B
3.1 Neste exemplo, ao pressionarmos um botão (push button), podemos acender ou apagar um led.
const byte buttonPin = 2; // número do pino pushbutton
const byte ledPin = 8; // número do pino LED
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // pullup interno do Arduino
}
void loop(){
if (!digitalRead(buttonPin)) { // verifica se o botão foi acionado
digitalRead(ledPin) ? digitalWrite(ledPin, LOW) : digitalWrite(ledPin, HIGH);
while (!digitalRead(buttonPin)) {}
delay(50);
}
}
3.2. Da mesma forma que no exemplo anterior, usamos o operador ternário:
digitalRead(ledPin) ? digitalWrite(ledPin, LOW) : digitalWrite(ledPin, HIGH);
3.2.1. Resumindo o código acima temos:
3.2.1.1. Condição: Se o led estiver aceso (digitalRead(ledPin) == true)
3.2.1.2. se a condição for verdadeira retorna a operação 1: digitalWrite(ledPin, LOW) - apaga o led
3.2.1.3. se a condição for falsa retorna a operação 2: digitalWrite(ledPin, HIGH) - acende o led
3.3. Veja o mesmo código utilizando o operador if/else:
if (digitalRead(ledPin)) digitalWrite(ledPin, LOW);
else digitalWrite(ledPin, HIGH);
4. Documentação oficial
Estrutura de Controle If - Referência Arduino
Estrutura de Controle Else - Referência Arduino
O anúncio abaixo ajuda a manter o Squids Arduino funcionando
{source}
style="display:block"
data-ad-client="ca-pub-0154803398463315"
data-ad-slot="6385083147"
data-ad-format="auto">
{/source}
O anúncio abaixo ajuda a manter o Squids Arduino funcionando
Comentários