Supomos que você quisesse ter certeza que um programa sempre captura os pulsos de um codifcador rotativo, sem nunca perder um pulso, seria muito complicado criar um programa que pudesse fazer qualquer outra coisa além disso, porque o programa precisaria checar constantemente os pinos do codificador, para capturar os pulsos exatamente quando eles ocorreram. Outros sensores são similarmente dinâmicos também, como um sensor de som que pode ser usado para capturar um clique, ou um sensor infravermelho (foto-interruptor) para capturar a queda de uma moeda. Em todas essas situações, usar uma interrupção pode permitir o microcontrolador trabalhar em outras tarefas sem perder a interrupção.
Sobre Rotinas de Serviço de Interrupções (ISRs)


Sobre Rotinas de Serviço de Interrupções (ISRs)
ISRs são tipos especiais de funções que possuem  algumas limitações únicas que as outras funções não possuem. Uma ISR não recebe argumentos, e não devem retornar nada.


Geralmente, uma ISR deve ser o mais curta e rápida possível. Se o seu sketch usa múltiplas ISRs, apenas uma pode ser executada de cada vez, outras interrupções serão executadas após a atual terminar, em uma ordem que depende de sua prioridade. millis() depende de interrupções para contar, então essa nunca irá incrementar dentro de uma ISR. Como delay() também depende de interrupções, não irá funcionar dentro de uma ISR. micros() funciona inicialmente, mas começará a se comportar erraticamente após 1-2 ms. delayMicroseconds() não usa nenhum contador, então funciona normalmente.


Tipicamente variáveis globais são usadas para passar dados entre uma ISR e o programa principal. Tenha certeza que variáveis compartilhadas entre uma ISR e o programa principal são atualizadas corretamente, para isso, as declare usando o modificador volatile.
Para mais informações sobre interrupções, veja as notas de Nick Gammon’s (Em Inglês).
Sintaxe
attachInterrupt(digitalPinToInterrupt(pino), ISR, modo); (Recomendado)
attachInterrupt(interrupção, ISR, modo); (Não recomendado)
attachInterrupt(pino, ISR, modo); (Não recomendado. Além disso, essa sintaxe só funciona em placas Arduino SAMD, Uno WiFi Rev2, Due, e 101)
Parâmetros
interrupção: 	o número da interrupção (int)


Parâmetros
interrupção: 	o número da interrupção (int)
pino: 	      o número do pino do Arduino
ISR: 	      a ISR a ser chamada quando a interrupção ocorre; essa função deve não tomar nenhum parâmetro nem retornar nada. Essa função é chamada de rotina de serviço da interrupção ou ISR (do Inglês, interrupt service routine).
modo: 	     define quando a interrupção deve ser ativada. Quatro constantes estão predefinidas como valores válidos:
LOW acionar a interrupção quando o estado do pino for LOW,
CHANGE acionar a interrupção quando o sempre estado do pino mudar
RISING acionar a interrupção quando o estado do pino for de LOW para HIGH apenas,


FALLING acionar a interrupção quando o estado do pino for de HIGH para LOW apenas.
Placas Due, Zero e MKR1000 suportam também:
HIGH acionar a interrupção quando o estado do pino for HIGH.
Retorna
Nada
Código de Exemplo
O código abaixo usa uma interrupção para capturar a mudança no estado do pino 2 e acender o LED de acordo.
const byte ledPin = 13;
const byte interruptPin = 2;
volatile byte state = LOW;
void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(interruptPin, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(interruptPin), blink, CHANGE);
}
void loop() {
  digitalWrite(ledPin, state);
}
void blink() {
  state = !state;
}


}
void blink() {
  state = !state;
}
Números das Interrupções
Normalmente você deve usar digitalPinToInterrupt(pino), em vez de colocar diretamente o número da interrupção no seu sketch. Os pinos específicos para interrupções, e seu mapeamento para o número da interrupção variam para cada tipo de placa. O uso direto dos números das interrupções pode parecer mais simples, porém pode causar problemas de compatibilidade quando seu sketch for executado em uma placa diferente.
Mesmo assim, sketches mais antigos frequentemente têm os números das interrupções usados diretamente. Frequentemente o número 0 (para o pino digital 2) ou o número 1 (para o pino digital 3) foram usados. A tabela abaixo mostra os pinos com interrupções disponíveis em cada placa.


Note que na tabela abaixo, os números das interrupções se referem aos números a serem passados para attachInterrupt(). Por razões históricas, essa numeração nem sempre corresponde diretamente a numeração do chip ATmega (ex. int.0 corresponde à INT4 no chip ATmega2560).
Placa
int.0
int.1
int.2
int.3
int.4
int.5
Uno, Ethernet
2
3
Mega2560
2
3
21
20
19
18
Leonardo, Micro (32u4)
3
2
0
1
7
Para as placas Due, Zero, MKR1000 e 101 o número da interrupção = número do pino.
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Analog io
            > Analogreference

analogReference()
          [Analog I/O]

Descrição


analogReference()
          [Analog I/O]

Descrição
Configura a tensão de referência para a entrada analógica (o valor máximo do intervalo de entrada). As opções são:
Placas Arduino AVR (Uno, Mega, etc.)
DEFAULT: a referência analógica padrão de 5 volts (em placas Arduino de 5V) ou 3.3 volts (em placas Arduino de 3.3V)
INTERNAL: uma referência interna, igual a 1.1 volts no ATmega168 ou ATmega328P e 2.56 volts no ATmega8 (Não disponível no Arduino Mega)
INTERNAL1V1: uma referência interna de 1.1V (apenas Arduino Mega)
INTERNAL2V56: uma referência interna de 2.56V (apenas Arduino Mega)


EXTERNAL: a tensão aplicada ao pino AREF (0 a 5V apenas) é usada como referência.
Placas Arduino megaAVR (Uno WiFi Rev2)
DEFAULT: uma referência interna de 0.55V
INTERNAL: uma referência interna de 0.55V
VDD: Vdd do ATmega4809. 5V no Uno WiFi Rev2
INTERNAL0V55: uma referência interna de 0.55V
INTERNAL1V1: uma referência interna de 1.1V
INTERNAL1V5: uma referência interna de 1.5V
INTERNAL2V5: uma referência interna de 2.5V
INTERNAL4V3: uma referência interna de 4.3V


INTERNAL4V3: uma referência interna de 4.3V
EXTERNAL: a tensão aplicada ao pino AREF (0 a 5V apenas) é usada como referência.
Placas Arduino SAMD (Zero, etc.)
AR_DEFAULT: a referência analógica padrão de 3.3V
AR_INTERNAL: uma referência integrada de 2.23V
AR_INTERNAL1V0: uma referência integrada de 1.0V
AR_INTERNAL1V65: uma referência integrada de 1.65V
AR_INTERNAL2V23: uma referência integrada de 2.23V
AR_EXTERNAL: a tensão aplicada ao pino AREF é usada como referência
Placas Arduino SAM (Due)


Placas Arduino SAM (Due)
AR_DEFAULT: a referência analógica padrão de 3.3V. Essa é a única opção suportada pelo DUE.
Sintaxe
analogReference(tipo)
Parâmetros
tipo: qual tipo de referência usar (DEFAULT, INTERNAL, INTERNAL1V1, INTERNAL2V56 ou EXTERNAL).
Retorna
Nada
Notas e Advertências
Após mudar-se a referência analógica, as primeiras leituras com analogRead() podem ser imprecisas.


Não use menos que 0V ou mais que 5V como tensão de referência externa no pino AREF! Se você está usando uma referência externa no pino AREF, deve configurar a referência como EXTERNAL antes de chamar analogRead(). Do contrário, você irá curto-circuitar a tensão de referência ativa (gerada internamente) e o pino AREF, possivelmente danificando o microcontrolador da sua placa Arduino.


Alternativamente, você pode conectar a tensão de referência externa ao pino AREF através de um resistor de 5K ohm, permitindo-lhe trocar entre tensões de referência externas e internas. Note que o resistor irá alterar a tensão usada como referência, pois há um resistor interno de 32K ohm no pino AREF. Os dois em conjunto agem como um divisor de tensão, então, por exemplo, 2.5V aplicados através do resistor irão fornecer 2.5 * 32 / (32 + 5) = ~2.2V ao pino AREF.
Ver Também
EXEMPLO Descrição dos pinos de entrada analógica (Em Inglês)


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Analog io
            > Analogwrite

analogWrite()
          [Analog I/O]

Descrição


analogWrite()
          [Analog I/O]

Descrição
Aciona uma onda PWM (descrição (Em Ingês)) em um pino. Pode ser usada para variar o brilho de um LED ou acionar um motor a diversas velocidades. Após a função analogWrite() ser chamada, no pino haverá uma onda quadrada com o duty cycle (ciclo de trabalho) especificado até a próxima chamada de analogWrite() (ou uma chamada de digitalRead() ou digitalWrite() no mesmo pino). A frequência do sinal PWM na maioria dos pinos é aproximadamente 490 Hz. No Uno e placas similares, pinos 5 e 6 usam uma frequência de aproximadamente 980 Hz.


Na maioria das placas Arduino (as placas com o ATmega168 ou ATmega328), essa função funciona nos pinos 3, 5, 6, 9, 10, e 11. No Arduino Mega, essa funciona nos pinos 2 a 13 e 44 a 46. Placas mais antigas com o ATmega8 suportam analogWrite() apenas nos pinos 9, 10, and 11.
O Arduino DUE suporta analogWrite() nos pinos 2 a 13, mais pinos DAC0 e DAC1. Diferente dos pinos PWM, DAC0 e DAC1 são conversores Digital-Analógicos, e saídas analógicas legítimas.
Você não precisa chamar pinMode() para configurar um pino como saída antes de chamar analogWrite().


A função analogWrite() nada tem a ver com os pinos analógicos ou a função analogRead().
Sintaxe
analogWrite(pino, valor)
Parâmetros
pino: o pino escolhido do Arduino. Tipos de dados permitidos: int.
valor: o duty cycle: entre 0 (sempre desligado) and 255 (sempre ligado). Tipos de dados permitidos: int
Retorna
Nada
Código de Exemplo
Controla a saída para um LED proporcionalmente a um valor lido de um potenciômetro.
int ledPin = 9;     // LED conectado ao pino digital 9
int analogPin = 3;  // potenciômetro conectado ao pino analógico 3
int val = 0;        // variável para guradar o valor lido


int val = 0;        // variável para guradar o valor lido
void setup() {
  pinMode(ledPin, OUTPUT);  // configura  o pino como saída
}
void loop() {
  val = analogRead(analogPin);  // lê o pino de entrada analógica
  analogWrite(ledPin, val / 4); // analogRead retorna valores de 0 a 1023, analogWrite recebe de 0 a 255
}
Notas e Advertências


}
Notas e Advertências
As ondas PWM generadas nos pinos 5 e 6 terão duty cycles maiores que o esperado. Isso acontece porque ocorrem interações com as funções millis() e delay(), as quais compartilham o mesmo timer (temporizador) interno usado para gerar essas saídas PWM. Isso será constatado principalmente em duty-cycle baixos (ex. 0 - 10) e podem resultar em um valor de 0 não desligando completamente a saída nos pinos 5 e 6.
Ver Também
LINGUAGEM analogWriteResolution()
DEFINIÇÃO PWM
EXEMPLO Blink


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Analog io
            > Analogread

analogRead()
          [Analog I/O]

Descrição


analogRead()
          [Analog I/O]

Descrição
Lê o valor de um pino analógico especificado. A placa Arduino possui um conversor analógico-digital 10 bts de 6 canais (8 canais nos Mini e Nano, 16 no Mega, 7 canais em placas MKR). Isso significa que este irá mapear tensões entre 0 e a tensão operacional (5V or 3.3V) para valores inteiros entre 0 e 1023. No Arduino UNO, por exemplo, isso permite uma resolução entre leituras de: 5 volts / 1024 unidades, ou .0049 volts (4.9 mV) por unidade. Veja a tabela abaixo para os pinos utilizáveis, tensão de operação e resolução máxima para algumas placas Arduino.


O intervalo de entrada pode ser mudado atrvés da função analogReference(), enquanto a resolução pode ser mudada (apenas nas placas Zero, Due e MKR) usando-se analogReadResolution().
Em placas baseadas em microcontroladores AVR (UNO, Nano, Mini, Mega), ler um valor analógico leva em torno de 100 microssegundos (0.0001 s), então a taxa de leitura máxima é aproximadamente 10,000 leituras por segundo.
Board
Operating voltage
Usable pins
Max resolution
Uno
5 Volts
A0 to A5
10 bits
Mini, Nano
5 Volts
A0 to A7
10 bits
Mega, Mega2560, MegaADK
5 Volts
A0 to A14
10 bits
Micro
5 Volts
A0 to A11*
10 bits
Leonardo


Micro
5 Volts
A0 to A11*
10 bits
Leonardo
5 Volts
A0 to A11*
10 bits
Zero
3.3 Volts
A0 to A5
12 bits**
Due
3.3 Volts
A0 to A11
12 bits**
MKR Family boards
3.3 Volts
A0 to A6
12 bits**
*A0 through A5 are labelled on the board, A6 through A11 are respectively available on pins 4, 6, 8, 9, 10, and 12
**The default analogRead() resolution for these boards is 10 bits, for compatibility. You need to use analogReadResolution() to change it to 12 bits.
Sintaxe
analogRead(pino)
Parâmetros


Sintaxe
analogRead(pino)
Parâmetros
pino: o nome do pino de entrada analógica que se quer ler (A0 a A5 na maioria das placas, A0 a A6 em placas MKR, A0 a A7 no Mini e Nano, A0 a A15 no Mega).
Retorna
A leitura analógica no pino (int). No entanto esta é limitada a resolução do conversor analógico digital (0-1023 para 10 bits ou 0-4095 para 12 bits).
Código de Exemplo
O código abaixo lê o valor de um pino de entrada analógica e mostra seu valor na porta serial.
int analogPin = A3; // terminal do meio de um potênciometro conectado ao pino analógico 3


// terminais mais externos são conectados um no ground e o outro em +5V
int val = 0;        // variável para guardar o valor lido
void setup() {
  Serial.begin(9600);           // configura a porta serial
}
void loop() {
  val = analogRead(analogPin);  // lê o pino de entrada
  Serial.println(val);          // imprime o valor na porta serial
}
Notas e Advertências
Se o pino de entrada analógica não estiver conectado a nada, o valor retornado por analogRead() irá flutuar baseado numa gama de fatores (ex. o valor de outros pinos analógicos, quão próxima suu mão está da placa, etc.).
Ver Também
LINGUAGEM analogReadResolution()


Ver Também
LINGUAGEM analogReadResolution()
EXEMPLO Descrição dos pinos de entrada analógica (em inglês)


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Advanced io
            > Tone

tone()
          [Advanced I/O]

Descrição


tone()
          [Advanced I/O]

Descrição
Gera uma onda quadrada na frequência especificada (e duty cycle 50%) em um pino. A duração pode ser especificada, do contrário a onda continua até uma chamada de noTone(). O pino pode ser conectado a um buzzer piezo ou outro speaker para tocar tons.
Apenas um tom pode ser gerado de cada vez. Se um tom já está tocando em um pino diferente, a chamada de tone() não terá efeito. Se o tom está tocando no mesmo pino, a chamada irá mudar sua frequência para a nova especificada.
Uso da função tone() irá interferir com saída PWM nos pinos 3 e 11 (em placas diferentes do Mega).


Não é possível gerar tons de freqeuência mais baixa que 31Hz. Para detalhes técnicos, veja as notas de Brett Hagman’s(Em Inglês).
Sintaxe
tone(pino, frequência)
tone(pino, frequência, duração)
Parâmetros
pino: o pino do Arduino no qual gerar o tom
frequência: a frequência do tom em Hertz - unsigned int
duração: a duração do tom em milissegundos (opcional) - unsigned long
Retorna
Nada.
Notas e Advertências
Se você quiser tocar tons diferentes em múltiplos pinos, você precisa chamar noTone() em um pino antes de chamar tone() no próximo pino.
Ver Também
LINGUAGEM analogWrite()
EXEMPLO Tone Melody


Ver Também
LINGUAGEM analogWrite()
EXEMPLO Tone Melody
EXEMPLO Pitch Follower
EXEMPLO Tone Keyboard
EXEMPLO Tone Multiple
EXEMPLO PWM


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Advanced io
            > Pulsein

pulseIn()
          [Advanced I/O]

Descrição


pulseIn()
          [Advanced I/O]

Descrição
Captura a duração de um pulso em um pino (que pode ser HIGH ou LOW). Por exemplo, se o valor HIGH é passado para a função, a função pulseIn() espera o pino ir para do estado 'LOW' para HIGH, começa a temporizar, então espera o pino ir para o estado LOW e para de temporizar. Retorna o tamanho do pulso em microssegundos ou desiste e retorna 0 se não receber nenhum pulso dentro de um tempo máximo de espera especificado.
A temporização dessa função foi determinada empiricamente e irá provavelmente mostrar erros em pulsos mais longos. funciona em pulsos de 10 microssegundos a 3 minutos de duração.
Sintaxe
pulseIn(pino, valor)


Sintaxe
pulseIn(pino, valor)
pulseIn(pino, valor, tempo_de_espera)
Parâmetros
pino: o número do pino no Arduino no qual se quer capturar a duração de um pulso. (int)
valor: tipo de pulso a ser lido: pode ser HIGH ou LOW. (int)
tempo_de_espera (opcional): o número de microssegundos a se esperar pelo começo do pulso; o padrão é um segundo. (unsigned long)
Retorna
A duração do pulso (em microssegundos) ou 0 se nenhum pulso começar antes de se esgotar o tempo de espera (unsigned long).
Código de Exemplo
O exemplo abaixo imprime a duração de um pulso no pino 7.


O exemplo abaixo imprime a duração de um pulso no pino 7.
int pino = 7;           //pino para a entrada do pulso
unsigned long duracao; //variável para guardar a duração do pulso
void setup()
{
  Serial.begin(9600);
  pinMode(pino, INPUT);
}
void loop()
{
  duracao = pulseIn(pino, HIGH);
  Serial.println(duracao);
}
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Advanced io
            > Shiftin

shiftIn()
          [Advanced I/O]

Descrição


shiftIn()
          [Advanced I/O]

Descrição
Recebe um byte de dados, um bit de cada vez. Começa com ou o bit mais significante (o mais à esquerda) ou o menos significante (mais à direita). Para cada bit, o pino de clock é colocado em estado em HIGH, o próximo bit é lido no pino de dados (data), e então o pino é colocado em estado LOW novamente.
Se está conectando um dispositivo que funciona a partir da borda de subida sinal de clock, você irá precisar garantir que o pino de clock está em estado LOW antes da primeira chamada de shiftIn(), ex. chamando digitalWrite(clockPin, LOW).


Nota: essa é uma implementação por software; O Arduino também provê uma biblioteca SPI que faz a implementação em hardware, que é mais rápida, mas apenas funciona em pinos específicos.
Sintaxe
byte incoming = shiftIn(dataPin, clockPin, bitOrder)
Parâmetros
dataPin: o pino no qual receber cada bit (int).
clockPin: o pino alternado para sinalizar uma leitura de dataPin.
bitOrder: em que ordem receber os bits; pode ser MSBFIRST ou LSBFIRST.
Correspondendo respectivamente a primeiro o bit mais significativo (Most Significant Bit First), ou o primeiro o bit menos significativo (Least Significant Bit First)
Retorna
O valor lido (byte).
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Advanced io
            > Pulseinlong

pulseInLong()
          [Advanced I/O]

Descrição


pulseInLong()
          [Advanced I/O]

Descrição
pulseInLong() é uma alternativa à função pulseIn(), sendo melhor para lidar com pulsos longos e situações afetadas por interrupções.
Lê um pulso (HIGH ou LOW) em um pino. Por exemplo, se o valor for HIGH, pulseInLong() espera que o pino vá HIGH, começa a cronometrar e, em seguida, espera que o pino vá LOW e pára de cronometrar. Retorna a duração do pulso em microssegundos ou 0 se nenhum pulso completo foi recebido dentro do tempo limite.


A temporização dessa função foi determinada empiricamente e irá provavelmente mostrar erros em pulsos mais curtos. Funciona em pulsos de 10 microssegundos a 3 minutos de duração. Por favor note que se a função for configurada para recebr um pulso HIGH e o pino já estiver no estado HIGH quando a função for chamada, essa irá primeiro esperar o pino ir para estado LOW e então HIGH antes de começar a contar. Essa função pode ser utilizada apenas quando interrupções estiverem ativadas. Além disso, resoluções maiores são alcançadas com intervalos maiores.
Sintaxe
pulseInLong(pino, valor)
pulseInLong(pino, valor, tempo_de_espera)
Parâmetros


pulseInLong(pino, valor, tempo_de_espera)
Parâmetros
pino: o número do pino do Arduino no qual se quer capturar a duração de um pulso. (int)
valor: tipo de pulso a ser lido: pode ser HIGH ou LOW. (int)
tempo_de_espera (opcional): o número de microssegundos a se esperar pelo começo do pulso; o padrão é um segundo. (unsigned long)
Retorna
A duração do pulso (em microssegundos) ou 0 se nenhum pulso começar antes de se esgotar o tempo de espera (unsigned long).
Código de Exemplo
O exemplo abaixo imprime na porta serial a duração de um pulso no pino 7.
int pino = 7;              // pino para a entrada do pulso


int pino = 7;              // pino para a entrada do pulso
unsigned long duracao;   // variável para guardar a duração do pulso
void setup() {
  Serial.begin(9600);
  pinMode(pino, INPUT);
}
void loop() {
  duracao = pulseInLong(pino, HIGH);
  Serial.println(duracao);
}
Notes and Warnings
Essa função depende da função micros(), então não pode ser usada quando interrupções estiverem desativadas com noInterrupts().
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Advanced io
            > Shiftout

shiftOut()
          [Advanced I/O]

Descrição


shiftOut()
          [Advanced I/O]

Descrição
Transfere um byte de dados um bit de cada vez. Começa com ou o bit mais significante (o mais à esquerda) ou o menos significante (mais à direita). Cada bit é escrito em sequência em um pino data, logo após o pino clock é pulsado (colocado em HIGH, depois LOW) para indicar que aquele bit está disponível.
Nota - se você está conectando um dispositivo que é sincronizado pela borda de subida do clock, irá precisar fazer com que o pino clock seja  low antes de chamar shiftOut(), ex. com digitalWrite(clockPin, LOW).


Essa é uma implementação por software; O Arduino também provê uma biblioteca SPI que faz a implementação em hardware, que é mais rápida, mas apenas funciona em pinos específicos.
Sintaxe
shiftOut(dataPin, clockPin, bitOrder, value)
Parâmetros
dataPin: o pino no qual transferir cada bit (int)
clockPin: o pino a ser pulsado uma vez que o pino data estiver com o bit a ser trasnferido (int)
bitOrder: em que ordem receber os bits; pode ser MSBFIRST ou LSBFIRST. Respectivamente, primeiro o bit mais significativo (Most Significant Bit First), ou o primeiro o bit menos significativo (Least Significant Bit First)
value: o valor a ser transferido. (byte)
Retorna
Nada
Código de Exemplo


Retorna
Nada
Código de Exemplo
Para o circuito, ver o tutorial sobre o controle de um registrador de deslocamento 74HC595 (Em Inglês).
//**************************************************************//
//  Name    : shiftOutCode, Hello World                         //
//  Author  : Carlyn Maw,Tom Igoe                               //
//  Date    : 25 Oct, 2006                                      //
//  Version : 1.0                                               //
//  Notes   : Code for using a 74HC595 Shift Register           //
//          : to count from 0 to 255                            //
//****************************************************************
//Pino conectado a ST_CP no 74HC595
int latchPin = 8;
//Pino conectado a SH_CP no 74HC595
int clockPin = 12;
//Pino conectado a DS no 74HC595


//Pino conectado a DS no 74HC595
int dataPin = 11;
void setup() {
  //configura os pinos usados no loop principal como saídas
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}
void loop() {
  //rotina de contagem de 0 até 255
  for (int j = 0; j < 256; j++) {
    //coloca e mantém o pino latch em low enquanto ocorre a transmissão
    digitalWrite(latchPin, LOW);
    //transmite o valor de j, a começar pelo bit menos significativo
    shiftOut(dataPin, clockPin, LSBFIRST, j);
    //retorna o pino latch para high para sinalizar ao chip
    //que esse não precisa mais esperar por informação


//que esse não precisa mais esperar por informação
    digitalWrite(latchPin, HIGH);
    delay(1000);
  }
}
Notas e Advertências
Os pinos data e clock devem ser configurados como saídas com uma chamada de pinMode().
A função shiftOut() atualmente funciona para transferir apenas 1 byte (8 bits) então requer uma operação em dois passos para transferir valores maiores que 255.
// Para serial MSBFIRST, faça:
int data = 500;
// transfere o byte mais significativo
shiftOut(dataPin, clock, MSBFIRST, (data >> 8));
// trasnfere o byte menos significativo
shiftOut(dataPin, clock, MSBFIRST, data);
// Para serial LSBFIRST, faça:
data = 500;
// transfere o byte menos significativo


data = 500;
// transfere o byte menos significativo
shiftOut(dataPin, clock, LSBFIRST, data);
// transfere o byte mais significativo
shiftOut(dataPin, clock, LSBFIRST, (data >> 8));
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Advanced io
            > Notone

noTone()
          [Advanced I/O]

Descrição


noTone()
          [Advanced I/O]

Descrição
Interrompe a geração de uma onda quadrada iniciada pela função tone(). Não tem nenhum efeito se nenhum tom está sendo gerado.
Sintaxe
noTone(pino)
Parâmetros
pino: o pino do Arduino no qual se quer parar de gerar um tom.
Retorna
Nada
Notas e Advertências
Se você quiser tocar tons diferentes em múltiplos pinos, você precisa chamar noTone() em um pino antes de chamar tone() no próximo pino.
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Random numbers
            > Randomseed

randomSeed()
          [Random Numbers]

Descrição


randomSeed()
          [Random Numbers]

Descrição
randomSeed() inicializa o gerador de números pseudoaleatórios, fazendo o começar em um ponto arbitrário em sua sequência aleatória. Essa sequência, enquanto muito longa, e aleatória, é sempre a mesma.
Se é importante que uma sequência de valores gerados por random() seja diferente em execuções subsequentes de um sketch, use randomSeed() para inicializar o gerador de números aleatórios com uma entrada significantemente aleatória, como analogRead() em um pino desconectado.
Por outro lado, pode ser ocasionalmente útil usar sequências pseudoaleatórias exatamente repetidas. Isso pode ser conseguido chamando-se  randomSeed() com um número fixo, antes de começar a usar a sequência aleatória.
Parâmetros


Parâmetros
seed - número para inicializar a sequência pseudoaleatória (long).
Retorna
Nada
Código de Exemplo
O código abaixo imprime números aleatórios na porta serial.
long randNumber;
void setup() {
  // inicializa a porta serial.
  Serial.begin(9600);
  // inicializa o gerador de números aleatórios.
  // um pino analógico desconectado irá retornar um
  // valor aleatório de tensão em analogRead()
  randomSeed(analogRead(0));
}
void loop() {
  // calcula o próximo número aleatório entre 0 e 299
  randNumber = random(300);
  // imprime o valor na porta serial
  Serial.println(randNumber);
  delay(50);
}
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Random numbers
            > Random

random()
          [Random Numbers]

Descrição
A função random() gera números pseudoaleatórios.
Sintaxe
random(max)


Sintaxe
random(max)
random(min, max)
Parâmetros
min - menor limite do valor aleatório, inclusivo e opcional  (long)
max - maior limite do valor aleatório, exclusivo (long)
Retorna
Um número inteiro aleatório entre min e max-1 (long) .
Código de exemplo
O código abaixo gera números aleatórios e os imprime na porta serial.
long randNumber;
void setup() {
  Serial.begin(9600);
  // Se o pino de entrada analógica 0 é deixado desconectado,
  // o ruído aleatório analógico irá causar a chamada de randomSeed()
  //  gerar sementes aleatórias diferentes cada vez que o sketch roda.
  // randomSeed() basicamente "embaralha" a função random().


// randomSeed() basicamente "embaralha" a função random().
  randomSeed(analogRead(0));
}
void loop() {
  // imprime um número aleatório entre 0 e 299
  randNumber = random(300);
  Serial.println(randNumber);
  // imprime um valor aleatório entre 10 e 19
  randNumber = random(10, 20);
  Serial.println(randNumber);
  delay(50);
}
Notas e Advertências
Se é importante que uma sequência de valores gerados por random() seja diferente em execuções subsequentes de um sketch, use randomSeed() para inicializar o gerador de números aleatórios com uma entrada significantemente aleatória, como analogRead() em um pino desconectado.


Por outro lado, pode ser ocasionalmente útil usar sequências pseudoaleatórias exatamente repetidas. Isso pode ser conseguido chamando-se  randomSeed() com um número fixo, antes de começar a usar a sequência aleatória.
O parâmetro max deve ser escolhido de acordo com o tipo de dado da variável na qual o valor será guardado. De qulquer forma, o valor máximo absoluto é limitado pela natureza long (32 bit - 2,147,483,647) do valor gerado. Escolher um valor max maior que isso não irá gerar erros durante a compilação, mas durante a execução do sketch, os números gerados irão se comportar de forma impredizível.
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Characters
            > Ishexadecimaldigit

isHexadecimalDigit()
          [Characters]

Descrição


isHexadecimalDigit()
          [Characters]

Descrição
Analisa se uma caractere é um digito hexadecimal (A-F, 0-9). Retorna true se thisChar contém um digito hexadecimal.
Sintaxe
isHexadecimalDigit(thisChar)
Parâmetros
thisChar: variável. Tipos de dados permitidos: char
Retorna
true: se thisChar é um digito hexadecimal.
Código de Exemplo
if (isHexadecimalDigit(meuChar)) { // testa se meuChar é um digito hexadecimal
  Serial.println("The character is an hexadecimal digit");
}
else {
  Serial.println("The character is not an hexadecimal digit");
}
Ver Também
INGUAGEM char
LINGUAGEM if (operadores condicionais)
LINGUAGEM while (operadores condicionais)


LINGUAGEM while (operadores condicionais)
LINGUAGEM read()


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Characters
            > Islowercase

isLowerCase()
          [Characters]

Descrição


isLowerCase()
          [Characters]

Descrição
Analisa se uma caractere é minúsculo (isto é, uma letra minúscula). Retorna true se thisChar contém uma letra minúscula.
Sintaxe
isLowerCase(thisChar)
Parâmetros
thisChar: variável. Tipos de dados permitidos: char
Retorna
true: se thisChar é minúsculo.
Código de Exemplo
if (isLowerCase(meuChar)) {  // testa se meuChar é uma letra minúscula
  Serial.println("The character is lower case");
}
else {
  Serial.println("The character is not lower case");
}
Ver Também
LINGUAGEM char
LINGUAGEM if (operadores condicionais)
LINGUAGEM while (operadores condicionais)
LINGUAGEM read()


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Characters
            > Ispunct

isPunct()
          [Characters]

Descrição


isPunct()
          [Characters]

Descrição
Analisa se uma caractere é pontuação (isto é, uma vírgula, um ponto-e-vírgula, um ponto de exlamação etc). Retorna true se thisChar é um caractere de pontuação.
Sintaxe
isPunct(thisChar)
Parâmetros
thisChar: variável. Tipos de dados permitidos: char
Retorna
true: se thisChar é um caractere de pontuação
Código de Exemplo
if (isPunct(meuChar)) {  // testa se meuChar é um caractere de pontuação
  Serial.println("The character is a punctuation");
}
else {
  Serial.println("The character is not a punctuation");
}
Ver Também
LINGUAGEM char
LINGUAGEM if (operadores condicionais)


LINGUAGEM char
LINGUAGEM if (operadores condicionais)
LINGUAGEM while (operadores condicionais)
LINGUAGEM read()


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Characters
            > Isuppercase

isUpperCase()
          [Characters]

Descrição


isUpperCase()
          [Characters]

Descrição
Analisa se uma caractere é maiúsculo (isto é, uma letra maisúcula). Retorna true se thisChar é uma letra maiúscula.
Sintaxe
isUpperCase(thisChar)
Parâmetros
thisChar: variável. Tipos de dados permitidos: char
Retorna
true: se thisChar é uma letra maiúscula.
Código de Exemplo
if (isUpperCase(meuChar)) {  // testa se meuChar é uma letra maiúscula
  Serial.println("The character is upper case");
}
else {
  Serial.println("The character is not upper case");
}
Ver Também
LINGUAGEM char
LINGUAGEM if (operadores condicionais)
LINGUAGEM while (operadores condicionais)


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Characters
            > Isspace

isSpace()
          [Characters]

Descrição
Analisa se uma caractere é o caractere de espaço. Retorna true se thisChar contém um espaço.


Sintaxe
isSpace(thisChar)
Parâmetros
thisChar: variável. Tipos de dados permitidos: char
Retorna
true: se thisChar é o caractere de espaço.
Código de Exemplo
if (isSpace(meuChar)) {  // testa se meuChar é o caractere de espaço
  Serial.println("The character is a space");
}
else {
  Serial.println("The character is not a space");
}
Ver Também
LINGUAGEM char
LINGUAGEM if (operadores condicionais)
LINGUAGEM while (operadores condicionais)
LINGUAGEM read()


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Characters
            > Isalpha

isAlpha()
          [Characters]

Descrição


isAlpha()
          [Characters]

Descrição
Analisa se um caractere é alfabético (isto é, se é uma letra). Retorna true (verdadeiro) se thisChar contém uma letra.
Sintaxe
isAlpha(thisChar)
Parâmetros
thisChar: variável. Tipos de dados permitidos: char
Retorna
true: se thisChar é um caractere alfabético.
Código de Exemplo
if (isAlpha(meuChar)) {  // testa se a variável meuChar é uma letra
  Serial.println("The character is a letter");
}
else {
  Serial.println("The character is not a letter");
}
Ver Também
LINGUAGEM char
LINGUAGEM if (operadores condicionais)
LINGUAGEM while (operadores condicionais)
LINGUAGEM read()


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Characters
            > Isprintable

isPrintable()
          [Characters]

Descrição


isPrintable()
          [Characters]

Descrição
Analisa se uma caractere é imprimível (isto é, qualquer caractere que produz uma saída, até mesmo um espaço). Retorna true se thisChar é imprimível. Por impimível diz-se os caracteres que pode ser impressos, como letras e números. Alguns caracteres são para controle e não podem ser impressos como o new line ('\n') e o tab ('\t').
Sintaxe
isPrintable(thisChar)
Parâmetros
thisChar: variável. Tipos de dados permitidos: char
Retorna
true: se thisChar é imprimível.
Código de Exemplo
if (isPrintable(meuChar)) {  // testa se meuChar é imprimível
  Serial.println("The character is printable");
}
else {
  Serial.println("The character is not printable");


}
else {
  Serial.println("The character is not printable");
}
Ver Também
LINGUAGEM char
LINGUAGEM if (operadores condicionais)
LINGUAGEM while (operadores condicionais)
LINGUAGEM read()


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Characters
            > Iscontrol

isControl()
          [Characters]

Descrição


isControl()
          [Characters]

Descrição
Analisa se uma caractere é um caractere de controle. Retorna true (verdadeiro) se thisChar é um caractere de controle.
Sintaxe
isControl(thisChar)
Parâmetros
thisChar: variável. Tipos de dados permitidos: char
Retorna
true: se thisChar é um caractere de controle.
Código de Exemplo
if (isControl(meuChar)) {  // testa se a variável meuChar é um caractere de controle
  Serial.println("The character is a control character");
}
else {
  Serial.println("The character is not a control character");
}
Ver Também
LINGUAGEM char
LINGUAGEM if (operadores condicionais)
LINGUAGEM while (operadores condicionais)


LINGUAGEM while (operadores condicionais)
LINGUAGEME read()


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Characters
            > Isgraph

isGraph()
          [Characters]

Descrição


isGraph()
          [Characters]

Descrição
Analisa se um caractere é imprimível com algum conteúdo (espaços são imprimíveis, mas não possuem conteúdo). Retorna true se thisChar é imprimível.
Sintaxe
isGraph(thisChar)
Parâmetros
thisChar: variável. Tipos de dados permitidos: char
Retorna
true: se thisChar é imprimível.
Código de Exemplo
if (isGraph(meuChar)) {  // testa se meuChar é um caractere imprimível mas não um espaço.
  Serial.println("The character is printable");
}
else {
  Serial.println("The character is not printable");
}
Ver Também
LINGUAGEM char
LINGUAGEM if (operadores condicionais)
LINGUAGEM while (operadores condicionais)


LINGUAGEM while (operadores condicionais)
LINGUAGEM read()


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Characters
            > Iswhitespace

isWhitespace()
          [Characters]

Descrição


isWhitespace()
          [Characters]

Descrição
Analisa se um caractere é um espaço em branco, isto é o próprio caractere de espaço (' '), formfeed ('\f'), nova linha ('\n'), retorno ('\r'), tab horizontal tab ('\t') e tab vertical ('\v')).
Retorna true se thisChar contém um espaço em branco.
Sintaxe
isWhitespace(thisChar)
Parâmetros
thisChar: variável. Tipos de dados permitidos: char
Retorna
true: se thisChar é um caractere de espaço em branco.
Código de Exemplo
if (isWhitespace(meuChar)) { // testa se meuChar é um caractere de espaço em branco
  Serial.println("The character is a white space");
}
else {
  Serial.println("The character is not a white space");
}
Ver Também


Serial.println("The character is not a white space");
}
Ver Também
LINGUAGEM char
LINGUAGEM if (operadores condicionais)
LINGUAGEM while (operadores condicionais)
LINGUAGEM read()


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Characters
            > Isascii

isAscii()
          [Characters]

Descrição


isAscii()
          [Characters]

Descrição
Analisa se um caractere é Ascii. Retorna true se a variável thisChar contém um caractere Ascii.
Sintaxe
isAscii(thisChar)
Parâmetros
thisChar: variável. Tipos de dados permitidos: char
Retorna
true: se thisChar é um caractere Ascii.
Código de Exemplo
if (isAscii(meuChar)) {  // testa se meuChar é  um caractere Ascii
  Serial.println("The character is Ascii");
}
else {
  Serial.println("The character is not Ascii");
}
Ver Também
LINGUAGEM char
LINGUAGEM if (operadores condicionais)
LINGUAGEM while (operadores condicionais)
LINGUAGEM read()


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Characters
            > Isalphanumeric

isAlphaNumeric()
          [Characters]

Descrição


isAlphaNumeric()
          [Characters]

Descrição
Analisa se um caractere é alfanumérico (isto é, uma letra ou um número). Retorna true (verdadeiro) se thisChar contém ou uma letra ou um número.
Sintaxe
isAlphaNumeric(thisChar)
Parâmetros
thisChar: variável. Tipos de dados permitidos: char
Retorna
true: se a variável thisChar é uma letra ou um número..
Código de Exemplo
if (isAlphaNumeric(meuChar)) { // testa se meuChar é uma letra ou um número
  Serial.println("The character is alphanumeric");
}
else {
  Serial.println("The character is not alphanumeric");
}
Ver Também
LINGUAGEM char
LINGUAGEM if (operadores condicionais)


LINGUAGEM char
LINGUAGEM if (operadores condicionais)
LINGUAGEM while (operadores condicionais)
LINGUAGEM read()


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Characters
            > Isdigit

isDigit()
          [Characters]

Descrição


isDigit()
          [Characters]

Descrição
Analisa se uma caractere é um digito (isto é, um número). Retorna true (verdadeiro) se thisChar é um número.
Sintaxe
isDigit(thisChar)
Parâmetros
thisChar: variável. Tipos de dados permitidos: char
Retorna
true: se thisChar é um número.
Código de Exemplo
if (isDigit(meuChar)) {  // testa se meuChar é um digito
  Serial.println("The character is a number");
}
else {
  Serial.println("The character is not a number");
}
Ver Também
LINGUAGEM char
LINGUAGEM if (operadores condicionais)
LINGUAGEM while (operadores condicionais)
LINGUAGEM read()


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Zero due mkr family
            > Analogwriteresolution

analogWriteResolution()
          [Zero, Due & MKR Family]

Descrição


[Zero, Due & MKR Family]

Descrição
analogWriteResolution() é uma extensão da API Analog para os Arduinos Due, Zero e MKR.
analogWriteResolution() configura a resolução da função analogWrite(). O padrão é 8 bits (valores entre 0-255) para compatibilidade com placas baseadas em microcontroladores AVR.
O Due possui as seguintes capacidades em seu hardware:
12 pinos com PWM de 8-bit por padrão, como as placas baseadas em AVR. Estes podem ser mudados para resolução 12-bits.
2 pinos com DAC 12-bit (Do Inglês, Digital-to-Analog Converter).


Ao configurar a resolução para 12 bits, você pode usar analogWrite() com valores entre 0 e 4095 para tirar vantagem da resolução completa do DAC ou do sinal PWM.
O Zero possui as seguintes capacidades em seu hardware:
10 pinos com PWM de 8-bit por padrão, como as placas baseadas em AVR. Estes podem ser mudados para resolução 12-bits.
1 pinos com DAC 12-bit (Do Inglês, Digital-to-Analog Converter).
Ao configurar a resolução para 10 bits, você pode usar analogWrite() com valores entre 0 e 1023 para tirar vantagem da resolução completa do DAC.
A família MKR de placas possui as seguintes capacidades em seu hardware:


A família MKR de placas possui as seguintes capacidades em seu hardware:
4 pinos com PWM de 8-bit por padrão, como as placas baseadas em AVR. Estes podem ser mudados para resolução 12-bits.
1 pino com DAC 10-bit (Do Inglês, Digital-to-Analog Converter).
Ao configurar a resolução para 12 bits, você pode usar analogWrite() com valores entre 0 e 4095 para sinais PWM; Use  10 bits no pino do conversor digital-analógico para tira vantagem da resoulção completa de 1024 valores do DAC.
Sintaxe
analogWriteResolution(bits)
Parâmetros


Sintaxe
analogWriteResolution(bits)
Parâmetros
bits: determina a resolução (em bits) dos valores usados na função analogWrite(). Se você escolher uma resolução maior ou menor que a capacidade do hardware da sua placa, o valor usado em analogWrite() será ou truncado se é muito grande ou completo com preenchido com zeros se for muito pequeno. Veja a nota  abaixo para detalhes.
Retorna
Nada
Código de Exemplo
O código configura a resolução da saída PWM para diferentes valores.
void setup() {
  // inicia a porta serial
  Serial.begin(9600);
  // configura os pinos digitais 11 a 13 como saída
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}
void loop() {


pinMode(13, OUTPUT);
}
void loop() {
  // Lê o valor analógico em A0 e mapeia-o para
  // um pino PWM com um LED conectado
  int sensorVal = analogRead(A0);
  Serial.print("Analog Read) : ");
  Serial.print(sensorVal);
  // a resolução PWM padrão
  analogWriteResolution(8);
  analogWrite(11, map(sensorVal, 0, 1023, 0, 255));
  Serial.print(" , 8-bit PWM value : ");
  Serial.print(map(sensorVal, 0, 1023, 0, 255));
  // Muda a reolução PWM para 12 bits
  // A resolução completa de 12 bits é suportada
  // apenas no Due
  analogWriteResolution(12);


// apenas no Due
  analogWriteResolution(12);
  analogWrite(12, map(sensorVal, 0, 1023, 0, 4095));
  Serial.print(" , 12-bit PWM value : ");
  Serial.print(map(sensorVal, 0, 1023, 0, 4095));
  // Muda a reolução PWM para 4 bits
  analogWriteResolution(4);
  analogWrite(13, map(sensorVal, 0, 1023, 0, 15));
  Serial.print(", 4-bit PWM value : ");
  Serial.println(map(sensorVal, 0, 1023, 0, 15));
  delay(5);
}
Notas e Advertências


delay(5);
}
Notas e Advertências
Se você configurar analogWriteResolution() com um valor maior que a capacidade de sua placa, o Arduino irá descartar os bits extras. Por exemplo: ao configurar o Due com analogWriteResolution(16) em um pino DAC 12-bit, apenas os primeiros 12 bits dos valores passados para analogWrite() serão usados e os outros 4 bits serão descartados.


Se você configurar analogWriteResolution() com um valor menor que a capacidade de sua placa, os bits ausentes serão completos com zeros para preencher o tamanho requerido pelo hardware. Por exemplo: ao configurar o Due com analogWriteResolution(8) em um pino DAC 12-bit, o Arduino irá adicionar 4 bits zero a esquerda do valor 8-bit usado em analogWrite() para obter os 12 bits requeridos.
Ver Também
LINGUAGEM analogWrite()
LINGUAGEM analogRead()
LINGUAGEM map()
EXAMPLO Descrição dos pinos analógicos de entrada(Em Inglês)


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Zero due mkr family
            > Analogreadresolution

analogReadResolution()
          [Zero, Due & MKR Family]

Descrição


[Zero, Due & MKR Family]

Descrição
analogReadResolution() é um extensão da API Analog para o Arduino Due, Zero e família MKR.
Configura o tamanho (em bits) do valor retornado por analogRead(). O padrão é 10 bits (retorna valores entre 0-1023) para compatibilidade com placas baseadas em microcontroladores AVR.
As placas Due, Zero e da família MKR possuem um conversor analógico digital (ADC) com capacidade 12-bits que pode ser accessado, em completude, mudando-se a resolução para 12. Isso fará com que os valores retornados por analogRead() estejam entre 0 e 4095.
Sintaxe
analogReadResolution(bits)
Parâmetros


Sintaxe
analogReadResolution(bits)
Parâmetros
bits: determina a resolução (em bits) dos valores retornados pela função analogRead(). Você pode configurar esse valor entre 1 e 32. Você pode escolher resoluções mais altas que 12, porém assim, valores retornados por analogRead() irão sofrer aproximação. Veja a nota abaixo para detalhes.
Retorna
Nada
Código de Exemplo
O código abaixo mostra como usar o conversor analógico digital com resoluções diferentes.
void setup() {
  // abre a conexão serial
  Serial.begin(9600);
}
void loop() {
  // lê o valor no pino A0 na resolução padrão (10 bits)
  // e o envia pela conexão serial
  analogReadResolution(10);


// e o envia pela conexão serial
  analogReadResolution(10);
  Serial.print("ADC 10-bit (padrão) : ");
  Serial.print(analogRead(A0));
  // muda a resolução para 12 bits e lê o pino A0
  analogReadResolution(12);
  Serial.print(", 12-bit : ");
  Serial.print(analogRead(A0));
  // muda a resolução para 16 bits e lê o pino A0
  analogReadResolution(16);
  Serial.print(", 16-bit : ");
  Serial.print(analogRead(A0));
  // muda a resolução para 8 bits e lê o pino
  analogReadResolution(8);
  Serial.print(", 8-bit : ");
  Serial.println(analogRead(A0));


Serial.print(", 8-bit : ");
  Serial.println(analogRead(A0));
  // um pequeno delay para não enviar dados muito rapidamente para o Serial Monitor
  delay(100);
}
Notas e Advertências
Se você configurar o valor de analogReadResolution() para um valor maior que acapacidade de sua placa, o Arduino irá retornar apenas na sua resolução máxima, preenchendo os bits extras com zeros.
Por exemplo: usando-se o DUE com analogReadResolution(16) irá retornar um número 16-bit aproximado, com os primerios 12 bits contendo a leitura real do ADC  e os últimos 4 bits preenchidos com zeros.


Se você configurar o valor de analogReadResolution()  para um valor menor que acapacidade de sua placa, os bits menos significantes extras lidos do ADC serão descartados.
Usar uma resolução de 16 bits (ou qualquer resolução mais alta que as capacidades reais do hardware) permite escrever sketches que automaticamente suportam dispositivos com uma resolução do ADC mais alta quando estes estiverem disponíveis em placas futuras, sem a necessidade de se fazer mudanças no código.
Ver Também
EXEMPLO Descrição dos pinos analógicos de entrada(Em Inglês)
LINGUAGEM analogRead()


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Time
            > Millis

millis()
          [Time]

Descrição


millis()
          [Time]

Descrição
Retorna o número de milissegundos passados desde que a placa Arduino começou a executar o programa atual. Esse número irá sofrer overflow (chegar ao maior número possível e então voltar pra zero), após aproximadamente 50 dias.
Sintaxe
time = millis()
Parâmetros
Nenhum
Retorna
O número de milissegundos passados desde que o programa iniciou (unsigned long)
Código de Exemplo
O código imprime na porta serial o tempo em milissegundos passado desde que a placa Arduino começou a executar o código em si.
unsigned long time;
void setup() {
  Serial.begin(9600);
}
void loop() {
  Serial.print("Time: ");
  time = millis();


void loop() {
  Serial.print("Time: ");
  time = millis();
  Serial.println(time); // imprime o tempo desde que o programa iniciou
  delay(1000);          // espera um segundo, para não enviar quantidades massivas de dados
}
Notas e Advertências
Note que o valor retornado por millis() é unsigned long, erros podem ser gerados se o programador tentar fazer operações matemáticas com outros tipos de dados, como int. Até mesmo o tipo long com sinal pode causar erros, já que seu valor máximo é metade de sua contraparte sem sinal.
Ver Também
EXEMPLO Blink Sem Delay (Em Inglês)


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Time
            > Delay

delay()
          [Time]

Descrição


> Delay

delay()
          [Time]

Descrição
Pausa o programa por uma quantidade especificada de tempo (em milissegundos). Cada segundo equivale a 1000 milissegundos.
Sintaxe
delay(ms)
Parâmetros
ms: o número de milissegundos para pausar o programa (unsigned long)
Retorna
Nada
Código de Exemplo
O código pausa o programa por um segundo antes de trocar o estado do pino 13.
int ledPin = 13;              // LED conectado ao pino digital 13
void setup() {
  pinMode(ledPin, OUTPUT);    // configura o pino digital como saída
}
void loop() {
  digitalWrite(ledPin, HIGH); // acende o LED
  delay(1000);                // espera por um segundo


delay(1000);                // espera por um segundo
  digitalWrite(ledPin, LOW);  // apaga o LED
  delay(1000);                // espera por um segundo
}
Notas e Advertências


}
Notas e Advertências
Mesmo que seja fácil fazer um LED piscar usando a função delay(), e muitos sketches usam delays pequenos para tarefas como debouncing de botões, o uso de delay() em um sketch possui desvantagens significantes. Nenhuma leitura de sensores, cálculos matemáticos, ou manipulação de pinos podem ocorrer durante a função delay(), para resumir, causa a pausa de qualquer atividade. Para métodos alternativos de controlar temporizações, veja o sketch Blink Sem Delay (Em Inglês), que verifica a função millis() até que o tempo suficiente tenha passado. Programadores mais habilidosos usualmente evitam o uso da função delay() para timing de eventos mais longos que dezenas de milissegundos, a menos que o sketch Arduino seja muito simples.


No entanto, certas coisas continuam a acontecer enquanto a função delay() está controlando o microcontrolador, porque a função delay não desativa interrupções. Comunicação serial recebida no pino RX é armazenada, valores PWM de (analogWrite) e estados dos pinos são mantidos, e interrupções externas irão funcionar como devem.
Ver Também
EXEMPLO Blink Sem Delay (Em Inglês)


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Time
            > Delaymicroseconds

delayMicroseconds()
          [Time]

Descrição


delayMicroseconds()
          [Time]

Descrição
Pausa o programa pela quantidade de tempo especificada como parâmetro (em microssegundos). Há mil microssegundos em um milissegundo, e um milhão de microssegundos em um segundo.
Atualmente, o maior valor que irá porduzir um delay preciso é 16383. Isso pode mudar em versões futuras do Arduino. Para delays mais longos que alguns milhares de microssegundos, você deve usar delay() em vez disso.
Sintaxe
delayMicroseconds(us)
Parâmetros
us: o número emm microssegundos para pausar o programa (unsigned int)
Retorna
Nada
Código de Exemplo


Retorna
Nada
Código de Exemplo
O código abaixo configura o pino 8 para funcionar como pino de saída. Ele então gera um trem de pulsos com período de 100 microssegundos.
int outPin = 8;               // pino digital 8
void setup() {
  pinMode(outPin, OUTPUT);    // configura o pino digital como saída
}
void loop() {
  digitalWrite(outPin, HIGH); // ativa o pino
  delayMicroseconds(50);      // pausa por 50 microssegundos
  digitalWrite(outPin, LOW);  // desativa o pino
  delayMicroseconds(50);      // pausa por 50 microssegundos
}
Notas e Advertências


}
Notas e Advertências
Essa função funciona bastante precisamente para valores maiores que 3 microssegundos. Não é possível assegurar que delayMicroseconds() irá funcionar corretamente para valores menores.
A partir da versão Arduino 0018, delayMicroseconds() não mais desativa interrupções.
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Time
            > Micros

micros()
          [Time]

Descrição


micros()
          [Time]

Descrição
Retorna o número de microssegundos passados desde que a placa Arduino começou a executar o programa atual. Esse número irá sofrer overflow (chegar ao maior número possível e então voltar pra zero), após aproximadamente 70 minutos. Em placas Arduino 16 MHz (ex. UNO e Nano), essa função possui uma resolução de quatro microssegundos (isto é, o número retornado é sempre um múltiplo de quatro). Em placas Arduino 8 MHz (ex. LilyPad), essa função possui uma resolução de oito microssegundos.
Sintaxe
time = micros()
Parâmetros
Nenhum
Retorna
O número de microssegundos desde que o programa iniciou (unsigned long).
Código de Exemplo


Código de Exemplo
O código abaixo imprime o número de microssegundos passados desde que a placa Arduino foi ligada.
unsigned long time;
void setup() {
  Serial.begin(9600);
}
void loop() {
  Serial.print("Time: ");
  time = micros();
  Serial.println(time); // imprime o tempo desde que o programa iniciou
  delay(1000);          // espera um segundo, para não enviar quantidades massivas de dados
}
Notas e Advertências
Há 1000 (mil) microssegundos em um milissegundo e 1000000 (um milhão) de microssegundos em um segundo.
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Interrupts
            > Nointerrupts

noInterrupts()
          [Interrupts]

Descrição


noInterrupts()
          [Interrupts]

Descrição
Desativa interrupções (você pode reativá-las com interrupts()). Interrupções permitem certas tarefas importantes acontecerem ao fundo e são, por padrão, ativadas. Algumas funções não irão funcionar enquanto as interrupções estiverem desativadas, e dados recebidos podem ser ignorados. Interrupções podem levemente interferir no timing do código, no entanto, e podem ser desativadas em seções particulamente críticas do código.
Sintaxe
noInterrupts()
Parâmetros
Nothing
Retorna
Nada
Código de Exemplo
O código abaixo mostra como desativar e reativar interrupções.
void setup() {}
void loop() {
  noInterrupts();


void setup() {}
void loop() {
  noInterrupts();
  // código crítico e sensível ao tempo aqui
  interrupts();
  // códigos regulares aqui
}
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Interrupts
            > Interrupts

interrupts()
          [Interrupts]

Descrição


interrupts()
          [Interrupts]

Descrição
Reativa interrupções (quando elas tiverem sido desativadas por nointerrupts(). Interrupções permitem certas tarefas importantes acontecerem ao fundo e são, por padrão, ativadas. Algumas funções não irão funcionar enquanto as interrupções estiverem desativadas, e dados recebidos podem ser ignorados. Interrupções podem levemente interferir no timing do código, no entanto, e podem ser desativadas em seções particulamente críticas do código.
Sintaxe
interrupts()
Parâmetros
Nothing
Retorna
Nada
Código de Exemplo
O código abaixo mostra como desativar e reativar interrupções.
void setup() {}
void loop() {
  noInterrupts();


void setup() {}
void loop() {
  noInterrupts();
  // código crítico e sensível ao tempo aqui
  interrupts();
  // códigos regulares aqui
}
Ver também
LINGUAGEM attachInterrupts()
LINGUAGEM detachInterrupts()


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Math
            > Sq

sq()
          [Math]

Descrição
Calcula o quadrado de um número: o número multiplicado por si mesmo.
Sintaxe
sq(x)


Sintaxe
sq(x)
Parâmetros
x: o número que se deseja calcular o quadrado, qualquer tipo de dados
Retorna
O quadrado do número. (double)
Notas e Advertências
Por causa da forma como a função sq() é implementada, evite usar outras funções dentro dos parênteses, pois isso pode levar a resultados incorretos.
Esse código gerará resultados incorretos:
int inputSquared = sq(Serial.parseInt()); // evite isso
Faça dessa forma:
int input = Serial.parseInt();  // manter outras operações fora da função sq()
int inputSquared = sq(input);
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Math
            > Min

min()
          [Math]

Descrição
Calcula o menor de dois números.
Sintaxe
min(x, y)
Parâmetros


Sintaxe
min(x, y)
Parâmetros
x: o primeiro número, qualquer tipo de dado
y: o segundo número, qualquer tipo de dado
Retorna
O menor dos dois números passados para a função.
ECódigo de Exemplo
O código garante que o valor de sensVal nunca é maior que 100.
sensVal = min(sensVal, 100);  // atribui a sensVal o menor valor, seja sensVal ou 100
                              // garantindo que esse nunca seja maior que 100.
Notas e Advertências
Talvez contraintuitivamente, max() é constantemente usada para restringir o extremo inferior do intervalo de uma variável, enquanto min() é usado para restringir o extremo superior do intervalo.


Por causa da forma em que a função max() é implementada, evite usar outras funções dentro dos parênteses, isso pode levar a resultados incorretos.
min(a++, 100);  // evitar isso - causa resultados incorretos
min(a, 100);    // ao invés disso, usar esta forma
a++;            // manter a aritmética fora da função
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Math
            > Pow

pow()
          [Math]

Descrição


> Pow

pow()
          [Math]

Descrição
Calcula o valor de um número elevado a uma potência. pow() pode ser usada para transformar um número em uma potência fracionária. Isso pode ser útil para gerar mapeamentos exponenciais de valores ou curvas.
Sintaxe
pow(base, expoente)
Parâmetros
base: o número (float)
expoente: a potência a qual o número deve ser elevado (float)
Retorna
O resultado da exponenciação (double)
Código de exemplo
Z recebe o valor de x elevado a y:
z = pow(x, y);
Veja o sketch (fscale) para um exemplo mais complexo do uso de pow().
Ver Também
DEFINIÇÃO float
DEFINIÇÃO double


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Math
            > Max

max()
          [Math]

Descrição
Calcula o maior de dois números.
Sintaxe
max(x, y)
Parâmetros


Sintaxe
max(x, y)
Parâmetros
x: o primeiro número, qualquer tipo de dado
y: o segundo número, qualquer tipo de dado
Retorna
O maior dos dois números passados para a função.
Código de Exemplo
O código garante que o valor de sensVal seja pelo menos 20.
sensVal = max(sensVal, 20); // atribui a sensVal o maior valor, seja sensVal ou 20
                            // (efetivamente garantindo que sensVal seja ao menos 20)
Notas e Advertências
Talvez contraintuitivamente, max() é constantemente usada para restringir o extremo inferior do intervalo de uma variável, enquanto min() é usado para restringir o extremo superior do intervalo.


Por causa da forma em que a função max() é implementada, evite usar outras funções dentro dos parênteses, isso pode levar a resultados incorretos.
max(a--, 0);  // evitar isso - causa resultados incorretos
max(a, 0);    // ao invés disso, usar esta forma
a--;          // manter a aritmética fora da função
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Math
            > Abs

abs()
          [Math]

Descrição
Calcula o módulo (ou valor absoluto) de um número.
Sintaxe
abs(x)


Sintaxe
abs(x)
Parâmetros
x: o número do qual se deseja saber o módulo
Retorna
x: se x é maior ou igual a 0.
-x: se x é menor que 0.
Notas e Advertências
Por causa da forma em que a função abs() é implementada, evite usar outras funções dentro dos parênteses, isso pode levar a resultados incorretos.
abs(a++); // evitar isso - causa resultados incorretos
abs(a);   // Ao invés disso, usar esta forma
a++;      // manter a aritmética fora da função
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Math
            > Constrain

constrain()
          [Math]

Descrição
Restringe um número a ficar dentro de um intervalo.
Sintaxe


Restringe um número a ficar dentro de um intervalo.
Sintaxe
constrain(x, a, b)
Parâmetros
x: o número a se restringir, qualquer tipo de dado
a: o extremo inferior do intervalo, qualquer tipo de dado
b: o extremo superior do intervalo, qualquer tipo de dado
Retorna
x: se x está entre a e b
a: se x é menor que a
b: se x é maior que b
Código de Exemplo
O código limita os valores de uma variável com a leitura de um sensor entre 10 e 150.
sensVal = constrain(sensVal, 10, 150);  // limita os valores entre 10 e 150
Notas e Advertências


Notas e Advertências
Por causa da forma como a função constrain() é implementada, evite usar outras funções dentro dos parênteses, pois isso pode levar a resultados incorretos.
Esse código gerará resultados incorretos:
int constrainedInput = constrain(Serial.parseInt(), minimumValue, maximumValue);   // evite isso
Faça essa forma:
int input = Serial.parseInt();  // manter outras operações fora da função constrain()
int constrainedInput = constrain(input, minimumValue, maximumValue);
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Math
            > Map

map()
          [Math]

Descrição


> Map

map()
          [Math]

Descrição
Remapeia um número de um intervalo para outro. Isto é, um valor de deMenor seria mapeado para paraMenor, um valor de deMaior para paraMaior, valores dentro de uma faixa para valores dentro da outra faixa, etc.
Não restringe valores a ficar dentro do intervalo, porque valores fora do intervalo são as vezes úteis e pretendidos. A função constrain() pode ser usada tanto antes como depois dessa função, se limites para os intervalos são desejados.
Note que os "limites mínimos" de cada intervalo podem ser maiores ou menores que os "limites máximos" tal que a função map() pode ser usada para reverter um intervalo de números, por exemplo


y = map(x, 1, 50, 50, 1);
A função também funciona bem com números negativos, tal que esse exemplo
y = map(x, 1, 50, 50, -100);
também é valido e funciona bem.
A função map() usa números inteiros e não irá gerar números fracionários, quando a matemática indicar que deveria. Resíduos fracionários são truncados e não são arredondados.
Sintaxe
=map(valor, deMenor, deMaior, paraMenor, paraMaior);
Parâmetros
valor: o número a ser mapeado
deMenor: o menor limite do intervalo atual do valor
deMaior: o maior limite do intervalo atual do valor
paraMenor: o menor limite do intervalo alvo


paraMenor: o menor limite do intervalo alvo
paraMaior: o maior limite do intervalo alvo
Retorna
O valor mapeado para o novo intervalo.
Código de Exemplo
/* Mapeia um valor analógico para 8 bits (0 a 255) */
void setup() {}
void loop() {
  int val = analogRead(0);
  val = map(val, 0, 1023, 0, 255);
  analogWrite(9, val);
}
Apêndice
Para os matematicamnete interessados, aqui tem-se o código da função:
long map(long x, long in_min, long in_max, long out_min, long out_max) {
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}


}
Notes & Warnings
Como mencionado anteriormente, a função map() usa matemática inteira. Então frações podem ser suprimidas devido a isso. Por exemplo, frações como 3/2, 4/3, 5/4 irão ser retornadas como 1 pela função map(), apesar de os valores esperados serem diferentes. Então, se seu projeto requer cálculos precisos (ex. tensão elétrica com precisão de três decimais), por gentileza considere evitar a função map() e implementar os cálculos manualmente no seu código.
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Math
            > Sqrt

sqrt()
          [Math]

Descrição
Calcula a raiz quadrada de um número.
Sintaxe
sqrt(x)
Parâmetros


Sintaxe
sqrt(x)
Parâmetros
x: o número a se calcular a raiz quadrada, qualquer tipo de dados
Retorna
A raiz quadrada do número. (double)
Ver Também


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Trigonometry
            > Cos

cos()
          [Trigonometry]

Descrição


cos()
          [Trigonometry]

Descrição
Calcula o cosseno de um ângulo (em radianos). O resultado é dado entre -1 e 1.
Sintaxe
cos(rad)
Parâmetros
rad: O ângulo em radianos (float).
Retorna
O cosseno do ângulo (double).
Ver Também
LINGUAGEM float
LINGUAGEM double


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Trigonometry
            > Tan

tan()
          [Trigonometry]

Descrição


tan()
          [Trigonometry]

Descrição
Calcula a tangente de um ângulo (em radianos). O resultado é dado entre -infinito e +infinito (limitado pela tamanho do tipo de dado double).
Sintaxe
tan(rad)
Parâmetros
rad: O ângulo em radianos (float).
Retorna
A tangente do ângulo (double).
Ver Também
LINGUAGEM float
LINGUAGEM double


Linguagem
funções
variáveis
estrutura
Bibliotecas
IoT Cloud API
Glossário
        A documentação de referência da linguagem Arduino está licenciada sob a licença Creative Commons Attribution-Share Alike 3.0.

    Encontrou alguma coisa que pode ser melhorada? Sugira correções e nova documentação via GitHub.

    Dúvidas sobre como usar o Github? Aprenda tudo o que precisa saber nesse tutorial.

Last Revision: Searching...
Last Build: 2023/06/30
Editar essa Página
Reference
            >  Language
            >  Functions
            >  Trigonometry
            > Sin

sin()
          [Trigonometry]

Descrição


sin()
          [Trigonometry]

Descrição
Calcula o seno de um ângulo (em radianos). O resultado é dado entre -1 e 1.
Sintaxe
sin(rad)
Parâmetros
rad: O ângulo em radianos (float).
Retorna
O seno do ângulo (double).
Ver Também
LINGUAGEM float
LINGUAGEM double