Escolar Documentos
Profissional Documentos
Cultura Documentos
digitalRead()
[E/S digital]
Descrição
Sintaxe
digitalRead(pin)
Parâmetros
devoluções
HIGHouLOW
Código de exemplo
Define o pino 13 com o mesmo valor do pino 7, declarado como uma entrada.
void setup() {
pinMode(ledPin, OUTPUT); // sets the digital pin 13 as output
pinMode(inPin, INPUT); // sets the digital pin 7 as input
}
void loop() {
val = digitalRead(inPin); // read the input pin
digitalWrite(ledPin, val); // sets the LED to the button's value
}
Notas e avisos
Se o pino não estiver conectado a nada, digitalRead()pode retornar HIGHou LOW(e
isso pode mudar aleatoriamente).
Os pinos de entrada analógica podem ser usados como pinos digitais, referidos como
A0, A1, etc. A exceção são os pinos Arduino Nano, Pro Mini e A6 e A7 do Mini, que
só podem ser usados como entradas analógicas.
digitalWrite()
[E/S digital]
Descrição
Se o pino foi configurado como um OUTPUT com pinMode(), sua tensão será ajustada
para o valor correspondente: 5V (ou 3,3V em placas de 3,3V) para HIGH, 0V (terra)
para LOW.
Sintaxe
digitalWrite(pin, value)
Parâmetros
Nada
Exemplo de código
void setup() {
pinMode(13, OUTPUT); // sets the digital pin 13 as output
}
void loop() {
digitalWrite(13, HIGH); // sets the digital pin 13 on
delay(1000); // waits for a second
digitalWrite(13, LOW); // sets the digital pin 13 off
delay(1000); // waits for a second
}
Notas e avisos
Os pinos de entrada analógica podem ser usados como pinos digitais, referidos como
A0, A1, etc. A exceção são os pinos Arduino Nano, Pro Mini e A6 e A7 do Mini, que
só podem ser usados como entradas analógicas.
pinMode()
[E/S digital]
Descrição
Sintaxe
pinMode(pin, mode)
Parâmetros
devoluções
Nada
Exemplo de código
void setup() {
pinMode(13, OUTPUT); // sets the digital pin 13 as output
}
void loop() {
digitalWrite(13, HIGH); // sets the digital pin 13 on
delay(1000); // waits for a second
digitalWrite(13, LOW); // sets the digital pin 13 off
delay(1000); // waits for a second
}
Notas e avisos
Os pinos de entrada analógica podem ser usados como pinos digitais, referidos como
A0, A1, etc.
E/S ANALÓGICA
analogRead()
[E/S analógica]
Descrição
Em placas baseadas em ATmega (UNO, Nano, Mini, Mega), leva cerca de 100
microssegundos (0,0001 s) para ler uma entrada analógica, portanto, a taxa
máxima de leitura é de cerca de 10.000 vezes por segundo.
uno 5 volts A0 a A5 10 b
Sintaxe
analogRead(pin)
Parâmetros
pin: o nome do pino de entrada analógica a ser lido (A0 a A5 na maioria das placas,
devoluções
Exemplo de código
void setup() {
Serial.begin(9600); // setup serial
}
void loop() {
val = analogRead(analogPin); // read the input pin
Serial.println(val); // debug value
}
Notas e avisos
analogReference()
[E/S analógica]
Descrição
Configura a tensão de referência usada para entrada analógica (ou seja, o valor
usado como o topo da faixa de entrada). As opções são:
Placas Arduino AVR (Uno, Mega, Leonardo, 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)
INTERNO: uma referência interna, igual a 1,1 volts no ATmega168 ou ATmega328P
e 2,56 volts no ATmega32U4 e ATmega8 (não disponível no Arduino Mega)
INTERNAL1V1: uma referência integrada de 1,1 V (somente Arduino Mega)
INTERNAL2V56: uma referência integrada de 2,56 V (somente Arduino Mega)
EXTERNAL: a tensão aplicada no pino AREF (somente 0 a 5V) é usada como
referência.
Arduino Mbed OS Nano Boards (Nano 33 BLE), Arduino Mbed OS Edge Boards (Edge
Control)
AR_VDD: a referência padrão de 3,3 V
AR_INTERNAL: referência de 0,6 V integrada
AR_INTERNAL1V2: referência de 1,2 V (referência interna de 0,6 V com ganho de
2x)
AR_INTERNAL2V4: referência de 2,4 V (referência interna de 0,6 V com ganho de
4x)
Sintaxe
analogReference(type)
Parâmetros
devoluções
Nada
Notas e avisos
Não use nada menos que 0V ou mais que 5V para tensão de referência
externa no pino AREF! Se estiver usando uma referência externa no pino
AREF, você deve definir a referência analógica como EXTERNAL antes de
chamar analogRead(). Caso contrário, você causará um curto-circuito entre a tensão
de referência ativa (gerada internamente) e o pino AREF, possivelmente danificando
o microcontrolador em sua placa Arduino.
Como alternativa, você pode conectar a tensão de referência externa ao pino AREF
por meio de um resistor de 5K, permitindo alternar entre as tensões de referência
externa e interna. Observe que o resistor alterará a tensão usada como referência
porque há um resistor interno de 32K no pino AREF. Os dois agem como um divisor
de tensão, então, por exemplo, 2,5V aplicados através do resistor resultarão em 2,5
* 32 / (32 + 5) = ~2,2V no pino AREF.
analogWrite()
[E/S analógica]
Descrição
Grava um valor analógico ( onda PWM ) em um pino. Pode ser usado para acender
um LED em vários brilhos ou acionar um motor em várias velocidades. Após uma
chamada para analogWrite(), o pino gerará uma onda retangular constante do ciclo
de trabalho especificado até a próxima chamada para analogWrite()(ou uma
chamada para digitalRead()ou digitalWrite()) no mesmo pino.
* Além dos recursos de PWM nos pinos mencionados acima, as placas MKR, Nano 33
IoT e Zero têm saída analógica verdadeira ao usar analogWrite()no pino DAC0( ). **
Além dos recursos de PWM nos pinos mencionados acima, o Due possui saída
analógica real ao usar pinos e .A0
analogWrite()DAC0DAC1
Você não precisa chamar pinMode()para definir o pino como uma saída antes de
chamar analogWrite().
A analogWritefunção não tem nada a ver com os pinos analógicos ou
a analogReadfunção.
Sintaxe
analogWrite(pin, value)
Parâmetros
devoluções
Nada
Exemplo de código
void setup() {
pinMode(ledPin, OUTPUT); // sets the pin as output
}
void loop() {
val = analogRead(analogPin); // read the input pin
analogWrite(ledPin, val / 4); // analogRead values go from 0 to 1023, analogWrite
values from 0 to 255
}
Notas e avisos
As saídas PWM geradas nos pinos 5 e 6 terão ciclos de trabalho maiores que o
esperado. Isso ocorre devido às interações com as funções millis()e delay(), que
compartilham o mesmo timer interno usado para gerar essas saídas PWM. Isso será
notado principalmente em configurações de ciclo de trabalho baixo (por exemplo, 0 -
10) e pode resultar em um valor de 0 não desligando totalmente a saída nos pinos 5
e 6.
Família Zero, Due e MKR
analogReadResolution()
[Família Zero, Due & MKR]
Descrição
A família Zero, Due, MKR e as placas Nano 33 (BLE e IoT) possuem recursos ADC
de 12 bits que podem ser acessados alterando a resolução para 12. Isso retornará
valores analogRead()entre 0 e 4095.
O Portenta H7 tem um 16 bit ADC, que permitirá valores entre 0 e 65535.
Sintaxe
analogReadResolution(bits)
Parâmetros
devoluções
Nada
Exemplo de código
void setup() {
// open a serial connection
Serial.begin(9600);
}
void loop() {
// read the input on A0 at default resolution (10 bits)
// and send it out the serial connection
analogReadResolution(10);
Serial.print("ADC 10-bit (default) : ");
Serial.print(analogRead(A0));
Notas e avisos
Descrição
analogWriteResolution(bits)
Parâmetros
valor pode variar de 1 a 32. Se você escolher uma resolução maior ou menor do que
as capacidades de hardware de sua placa, o valor usado analogWrite()será truncado
se for muito alto ou preenchido com zeros se for muito baixo. Veja a nota abaixo
para mais detalhes.
devoluções
Nada
Exemplo de código
Explicar Código
void setup() {
// open a serial connection
Serial.begin(9600);
// make our digital pin an output
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
// read the input on A0 and map it to a PWM pin
// with an attached LED
int sensorVal = analogRead(A0);
Serial.print("Analog Read) : ");
Serial.print(sensorVal);
delay(5);
}
Notas e avisos
analogReference()
[E/S analógica]
Descrição
Configura a tensão de referência usada para entrada analógica (ou seja, o valor
usado como o topo da faixa de entrada). As opções são:
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)
Arduino Mbed OS Nano Boards (Nano 33 BLE), Arduino Mbed OS Edge Boards (Edge
Control)
Sintaxe
analogReference(type)
Parâmetros
devoluções
Nada
Notas e avisos
Não use nada menos que 0V ou mais que 5V para tensão de referência
externa no pino AREF! Se estiver usando uma referência externa no pino
AREF, você deve definir a referência analógica como EXTERNAL antes de
chamar analogRead(). Caso contrário, você causará um curto-circuito entre a tensão
de referência ativa (gerada internamente) e o pino AREF, possivelmente danificando
o microcontrolador em sua placa Arduino.
Como alternativa, você pode conectar a tensão de referência externa ao pino AREF
por meio de um resistor de 5K, permitindo alternar entre as tensões de referência
externa e interna. Observe que o resistor alterará a tensão usada como referência
porque há um resistor interno de 32K no pino AREF. Os dois agem como um divisor
de tensão, então, por exemplo, 2,5V aplicados através do resistor resultarão em 2,5
* 32 / (32 + 5) = ~2,2V no pino AREF.
analogWrite()
[E/S analógica]
Descrição
Grava um valor analógico ( onda PWM ) em um pino. Pode ser usado para acender
um LED em vários brilhos ou acionar um motor em várias velocidades. Após uma
chamada para analogWrite(), o pino gerará uma onda retangular constante do ciclo
de trabalho especificado até a próxima chamada para analogWrite()(ou uma
chamada para digitalRead()ou digitalWrite()) no mesmo pino.
* Além dos recursos de PWM nos pinos mencionados acima, as placas MKR, Nano 33
IoT e Zero têm saída analógica verdadeira ao usar analogWrite()no pino DAC0( ). **
Além dos recursos de PWM nos pinos mencionados acima, o Due possui saída
analógica real ao usar pinos e .A0
analogWrite()DAC0DAC1
Você não precisa chamar pinMode()para definir o pino como uma saída antes de
chamar analogWrite().
A analogWritefunção não tem nada a ver com os pinos analógicos ou
a analogReadfunção.
Sintaxe
analogWrite(pin, value)
Parâmetros
devoluções
Nada
Código de Exemplo
void setup() {
pinMode(ledPin, OUTPUT); // sets the pin as output
}
void loop() {
val = analogRead(analogPin); // read the input pin
analogWrite(ledPin, val / 4); // analogRead values go from 0 to 1023, analogWrite
values from 0 to 255
}
Notas e avisos
As saídas PWM geradas nos pinos 5 e 6 terão ciclos de trabalho maiores que o
esperado. Isso ocorre devido às interações com as funções millis()e delay(), que
compartilham o mesmo timer interno usado para gerar essas saídas PWM. Isso será
notado principalmente em configurações de ciclo de trabalho baixo (por exemplo, 0 -
10) e pode resultar em um valor de 0 não desligando totalmente a saída nos pinos 5
e 6.
Família Zero, Due e MKR
analogReadResolution()
[Família Zero, Due & MKR]
Descrição
A família Zero, Due, MKR e as placas Nano 33 (BLE e IoT) possuem recursos ADC
de 12 bits que podem ser acessados alterando a resolução para 12. Isso retornará
valores analogRead()entre 0 e 4095.
O Portenta H7 tem um 16 bit ADC, que permitirá valores entre 0 e 65535.
Sintaxe
analogReadResolution(bits)
Parâmetros
devoluções
Nada
Exemplo de código
void loop() {
// read the input on A0 at default resolution (10 bits)
// and send it out the serial connection
analogReadResolution(10);
Serial.print("ADC 10-bit (default) : ");
Serial.print(analogRead(A0));
Notas e avisos
Descrição
analogWriteResolution(bits)
Parâmetros
valor pode variar de 1 a 32. Se você escolher uma resolução maior ou menor do que
as capacidades de hardware de sua placa, o valor usado analogWrite()será truncado
se for muito alto ou preenchido com zeros se for muito baixo. Veja a nota abaixo
para mais detalhes.
devoluções
Nada
Exemplo de código
Explicar Código
void setup() {
// open a serial connection
Serial.begin(9600);
// make our digital pin an output
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
// read the input on A0 and map it to a PWM pin
// with an attached LED
int sensorVal = analogRead(A0);
Serial.print("Analog Read) : ");
Serial.print(sensorVal);
delay(5);
}
Notas e avisos
E/S avançada
nenhum()
[E/S avançada]
Descrição
Sintaxe
noTone(pin)
Parâmetros
devoluções
Nada
Notas e avisos