Esses operadores podem ser usados dentro de sentenças condicionais if, while.
&& (logica "e")
True somente se os dois operadores forem verdadeiros
Exemplo:
if (digitalRead(2) == HIGH && digitalRead(3) == HIGH) {
}
Será verdadeiro se as duas leituras forem altas (HIGH).
|| (lógica "ou")
True se qualquer uma das sentenças forem verdadeiras.
Exemplo:
if (x > 0 || y > 0 {
}
Será verdadeiro se x ou y for maior que 0.
Mostrando postagens com marcador Referência. Mostrar todas as postagens
Mostrando postagens com marcador Referência. Mostrar todas as postagens
Referência: % (resto da divisão)
Calcula o resto da divisão quando um inteiro é dividido por outro. É útil para manter uma variável dentro de um patemar específico (e.g. o tamanho de um array).
Sintaxe:
resultado = dividendo % divisor
Parâmetros:
dividendo: o número que será dividido
divisor: o número a dividir por
Retorna:
o resto
Exemplo:
x = 7 % 5; // x agora comtém 2
x = 9 % 5; // x agora comtém 4
x = 5 % 5; // x agora comtém 0
x = 4 % 5; // x agora comtém 4
Sintaxe:
resultado = dividendo % divisor
Parâmetros:
dividendo: o número que será dividido
divisor: o número a dividir por
Retorna:
o resto
Exemplo:
x = 7 % 5; // x agora comtém 2
x = 9 % 5; // x agora comtém 4
x = 5 % 5; // x agora comtém 0
x = 4 % 5; // x agora comtém 4
Referência: = (operador de atribuição)
= é um operador de atribuição ou caractere de igualdade único.
Armazena o valor à direita do caractere de igualdade único à variável nomeada à esquerda.
O caractere de igualdade único na linguagem de programação C é chamado operador de atribuição. Ele possui um significado diferente do presente na classe de álgebra, onde ele indica uma equação ou igualdade. O operador de atribuição diz ao microcontrolador para definir qualquer valor ou expressão no lado direito do caractere de igualdade e armazená-lo na variável à direita do mesmo.
Exemplo:
int sensVal; // declara uma variável inteira, nomeada sensVal
senVal = analogRead(0); // armazena a voltagem de entrada (digital) no pino analógico 0 em SensVal
Armazena o valor à direita do caractere de igualdade único à variável nomeada à esquerda.
O caractere de igualdade único na linguagem de programação C é chamado operador de atribuição. Ele possui um significado diferente do presente na classe de álgebra, onde ele indica uma equação ou igualdade. O operador de atribuição diz ao microcontrolador para definir qualquer valor ou expressão no lado direito do caractere de igualdade e armazená-lo na variável à direita do mesmo.
Exemplo:
int sensVal; // declara uma variável inteira, nomeada sensVal
senVal = analogRead(0); // armazena a voltagem de entrada (digital) no pino analógico 0 em SensVal
Referência: Constantes
Constantes são expressões predefinidas na linguagem Arduino. Eles são usados para fazer os programas mais fáceis de ler. Podemos classificar a constantes em grupos:
Definindo níveis lógicos: true e false (booleano constantes)
lá são duas constantes usadas para representar a verdade e falsidade na linguagem Arduino: true e false.
false é definido como 0 (zero).
true muitas vezes é dito ser definido como 1, o que é correto, mas é verdade, tem uma definição mais ampla. Qualquer número inteiro que é diferente de zero é verdade, no sentido de Boolean. Então -1 e 2 -200 são todos definidos como verdadeiro, também, em um sentido booleano.
Definindo níveis lógicos: true e false (booleano constantes)
lá são duas constantes usadas para representar a verdade e falsidade na linguagem Arduino: true e false.
false é definido como 0 (zero).
true muitas vezes é dito ser definido como 1, o que é correto, mas é verdade, tem uma definição mais ampla. Qualquer número inteiro que é diferente de zero é verdade, no sentido de Boolean. Então -1 e 2 -200 são todos definidos como verdadeiro, também, em um sentido booleano.
Referência: { } (chaves)
Chaves são elementos principais da linguagem de programação C. Elas são usadas em diversas construções diferentes, como as destacadas abaixo, e algumas vezes podem ser confusas para os iniciantes.
Uma chave aberta "{" sempre deve ser seguida de uma chave fechada "}". Esta é uma condição que é comumente mencionada para que as chaves sejam balanceadas. A IDE (Integrated Development Environment) do Arduino inclui um recurso conveniente para verificar o balanço das chaves. Selecione uma chave ou clique no ponto de inserção imediatamente após uma delas e sua companheira lógica será destacada.
No momento, este recurso está com alguns probleminhas porque a IDE sempre irá encontrar (incorretamente) uma chave no texto, mesmo que tenha sido "comentada".
Uma chave aberta "{" sempre deve ser seguida de uma chave fechada "}". Esta é uma condição que é comumente mencionada para que as chaves sejam balanceadas. A IDE (Integrated Development Environment) do Arduino inclui um recurso conveniente para verificar o balanço das chaves. Selecione uma chave ou clique no ponto de inserção imediatamente após uma delas e sua companheira lógica será destacada.
No momento, este recurso está com alguns probleminhas porque a IDE sempre irá encontrar (incorretamente) uma chave no texto, mesmo que tenha sido "comentada".
Referência: ; (ponto e virgula)
Usado para finalizar declarações de variáveis, loops ou chamadas a funções.
Exemplo:
int a = 13;
Esquecer o término de uma linha com um ponto-e-vírgula irá resultar em um erro do compilador. O texto do erro pode ser óbvio e se referir ao ponto-e-vírgula esquecido.
Se um erro de compilação impossível de entender ou ilógicamente visto for detectado, uma das primeiras ações a tomar é verificar a falta do ponto-e-vírgula nas imediações, antecedendo a linha que o compilador reclamou.
Exemplo:
int a = 13;
Esquecer o término de uma linha com um ponto-e-vírgula irá resultar em um erro do compilador. O texto do erro pode ser óbvio e se referir ao ponto-e-vírgula esquecido.
Se um erro de compilação impossível de entender ou ilógicamente visto for detectado, uma das primeiras ações a tomar é verificar a falta do ponto-e-vírgula nas imediações, antecedendo a linha que o compilador reclamou.
Referência: goto
Transfere o fluxo do programa para um outro ponto etiquetado
Sintaxe:
label:
//código ou não
goto label; // envia o fluxo do programa para label:
O uso do goto é desencorajado em programação C e inclusive alguns autores afirmam que o goto nunca é realmente necessário, mas usado com cautela pode simplificar alguns programas. A razão pela qual muitos programadores desaprovam seu uso é que com o uso indiscriminado é fácil de se criar um programa com um fluxo indefinido e muito difícil de ser depurado.
Sintaxe:
label:
//código ou não
goto label; // envia o fluxo do programa para label:
O uso do goto é desencorajado em programação C e inclusive alguns autores afirmam que o goto nunca é realmente necessário, mas usado com cautela pode simplificar alguns programas. A razão pela qual muitos programadores desaprovam seu uso é que com o uso indiscriminado é fácil de se criar um programa com um fluxo indefinido e muito difícil de ser depurado.
Referência: return
Finaliza uma função e retorna um valor, se necessário.
Sintaxe:
return;
return valor; // ambas formas são válidas
Parâmetros:
valor: alguma variável ou constante
Exemplo:
Uma função para comparar o valor de um sensor com um limite
int checkSensor(){
if (analogRead(0) > 400) {
return 1;
else{
return 0;
}
}
Sintaxe:
return;
return valor; // ambas formas são válidas
Parâmetros:
valor: alguma variável ou constante
Exemplo:
Uma função para comparar o valor de um sensor com um limite
int checkSensor(){
if (analogRead(0) > 400) {
return 1;
else{
return 0;
}
}
Referência: continue
expressão continue pula o resto da interação de um loop (do,for ou while). Ela volta para o teste condicional do loop, e prossegue com quaisquer iterações subsequentes.
Exemplo:
for (x = 0; x < 255; x ++)
{
if (x > 40 && x < 120){ // volta para o começo caso x > 40 e x <120
continue;
}
digitalWrite(pinoPWM, x);
delay(50);
}
Exemplo:
for (x = 0; x < 255; x ++)
{
if (x > 40 && x < 120){ // volta para o começo caso x > 40 e x <120
continue;
}
digitalWrite(pinoPWM, x);
delay(50);
}
Referência : break
break é utilizado para sair de um expressão do, for, ou um loop while, ignorando a condicional que alimenta o loop. É também utilizado para sair de uma expressão switch.
Exemplo:
for (x = 0; x < 255; x ++)
{
digitalWrite(pinoPWM, x);
sens = analogRead(pinoSensor);
if (sens > limite){ // para se atingir um limite
x = 0;
break;
}
delay(50);
}
Exemplo:
for (x = 0; x < 255; x ++)
{
digitalWrite(pinoPWM, x);
sens = analogRead(pinoSensor);
if (sens > limite){ // para se atingir um limite
x = 0;
break;
}
delay(50);
}
Referência: do...while
O do loop funciona da mesma maneira como o while, no entanto a condição sempre é testada no fim do loop, isso implica que o do loop sempre irá rodar pelo menos uma vez mais.
do
{
// bloco de intruções
} while (testa a condição);
do
{
// bloco de intruções
} while (testa a condição);
Referência: While
Os loops while vão rodar continuamente e infinitamente, até que a expressão dentro dos parêntesis, () torne-se falsa. A variável testada deve mudar dinamicamente, caso contrário o loop while nunca terminará. Algo como uma variável sendo incrementada, ou uma condição externa, como o teste de um sensor ou um contador de tempo.
Sintaxe:
while(expressão){
// instrução(s)
}
Sintaxe:
while(expressão){
// instrução(s)
}
Referência: Switch Case
Assim como na instrução if, o switch...case permite programar diferentes blocos de instruções para diferentes condições. Em particular, o switch compara o valor de uma única variável com diferentes valores especificados nas declarações do case. Quando um valor do case é igual ao valor da variável, o código definido naquele caso é executado.
O comando break para o teste do switch, e normalmente é utilizado no fim de cada caso, case. Sem o break, o switch continuará executando as instruções seguintes até que encontre um break ou chegue no fim da expressão do switch.
Exemplo
switch (valor) {
case 1:
//fazer algo quando valor == 1
break;
case 2:
//fazer algo quando valor == 2
break;
default:
// se nada mais encaixa, fazer o padrão
}
O comando break para o teste do switch, e normalmente é utilizado no fim de cada caso, case. Sem o break, o switch continuará executando as instruções seguintes até que encontre um break ou chegue no fim da expressão do switch.
Exemplo
switch (valor) {
case 1:
//fazer algo quando valor == 1
break;
case 2:
//fazer algo quando valor == 2
break;
default:
// se nada mais encaixa, fazer o padrão
}
Referência: for
A instrução for é usada para repetir um bloco de instruções definido entre as chaves. Geralmente utiliza-se um contador para incrementar e finalizar o loop. A instrução for é útil para quaisquer operações repetitivas, e é normalmente combinada com arrays para operar em uma coleção de dados ou pinos.
O header para o loop com for é composto por três partes:
for (inicialização; condição; incremento)
{
//instrução(ou instruções);
}
O header para o loop com for é composto por três partes:
for (inicialização; condição; incremento)
{
//instrução(ou instruções);
}
Referência: if...else
if/else permite que você tenha mais controle sobre o fluxo do seu código do que apenas utilizando a declaração If. Permite que você faça múltiplos testes agrupados entre si. Por exemplo, se você quiser testar um input analógico e baseado no seu valor realizar certa tarefa ou caso contrário realizar outra tarefa, por exemplo: se o input for menor que 500 faça alguma coisa, caso contrário faça outra:
if (input < 500)
{
// fazer A
}
else // caso contrário, isto é input > 500
{
// fazer B
}
if (input < 500)
{
// fazer A
}
else // caso contrário, isto é input > 500
{
// fazer B
}
Referência: IF
if (condicional) e ==, !=, <, > (operadores de comparação)
if é sempre utilizado em conjunto com os operadores de comparação, ele testa se um certa condição foi alcançada, como por exemplo se uma variável atingiu um certo valor. O formato para testes com o (if) é o seguinte:
if (algumaVariavel > 50)
{
// faça algo aqui
}
O programa testa pra ver se algumaVariavel é maior do que 50. Se for, o programa executa uma determinada ação. Ou seja, se o que estiver declarado nos parênteses for verdadeiro, as instruções entre as chaves são executadas. Se não, o programa pula para a próxima parte do código.
if é sempre utilizado em conjunto com os operadores de comparação, ele testa se um certa condição foi alcançada, como por exemplo se uma variável atingiu um certo valor. O formato para testes com o (if) é o seguinte:
if (algumaVariavel > 50)
{
// faça algo aqui
}
O programa testa pra ver se algumaVariavel é maior do que 50. Se for, o programa executa uma determinada ação. Ou seja, se o que estiver declarado nos parênteses for verdadeiro, as instruções entre as chaves são executadas. Se não, o programa pula para a próxima parte do código.
Referência void loop()
No Arduino após a função setup(), que inicializa e declara os valores iniciais, a função loop() faz precisamente o que seu nome indica: ela repete-se continuamente permitindo que seu programa funcione dinamicamente. É utilizada para controlar de forma ativa a placa Arduino.
Exemplo:
int botaoPino = 3;
/*
* setup() inicializa a comunicação serial e o modo do
* pino conectado ao pulsador, como entrada
*/
void setup()
{
Serial.begin(9600); // inicia uma comunicação serial arduino - PC
pinMode(botaoPino, INPUT); //define o pino do botao como entrada
}
Exemplo:
int botaoPino = 3;
/*
* setup() inicializa a comunicação serial e o modo do
* pino conectado ao pulsador, como entrada
*/
void setup()
{
Serial.begin(9600); // inicia uma comunicação serial arduino - PC
pinMode(botaoPino, INPUT); //define o pino do botao como entrada
}
Referencia void setup()
No Arduino a função setup() é chamada no momento em que o programa começa. É usada para inicializar variáveis, definir os modos de entrada ou saída dos pinos, indicar bibliotecas, etc. Essa função é executada somente uma vez, quando o Arduino é iniciado ou quando é resetado.
Exemplo:
int buttonPin = 3; // declaração de uma variável global
void setup() // função setup - início do programa
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
void loop() // função loop
{
//...
}
Exemplo:
int buttonPin = 3; // declaração de uma variável global
void setup() // função setup - início do programa
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
void loop() // função loop
{
//...
}
Assinar:
Comentários (Atom)