Entrada e saída de dados
O armazenamento de dados em uma variável ocorre por meio do comando de atribuição, simbolizado por "="; por exemplo,
num = 17; //atribui o valor inteiro 17 à variável "num"
que deve ter sido declarada previamente. Uma declaração com atribuição em uma única linha pode ser feita como segue
int num = 17;
Vale ressaltar que o símbolo "=" é exclusivamente utilizado para atribuição, sendo que a igualdade matemática no sentido comparativo é representada pela dupla igualdade "==”.
A visualização do valor de uma variável no monitor serial (saída de dados) é realizada com as funções Serial.print() ou Serial.println(). A diferença entre elas reside no fato de que a última adiciona uma quebra de linha após a impressão do valor no monitor serial. Abaixo, apresento um código exemplificando o uso da função Serial.println(). Para utilizá-la, é necessário incluir a função Serial.begin() dentro da função setup().
O valor de 9600 refere-se à taxa de transmissão de dados pela porta USB do computador. É importante notar que, como a chamada da função Serial.println() foi realizada dentro da função loop(), o valor da variável "num" só será exibido no monitor serial até que o programa seja encerrado. Além disso, é fundamental destacar que o monitor serial só pode ser utilizado quando o programa estiver carregado na memória do Arduino, exigindo a conexão do Arduino com o computador via porta USB.
int num = 17;
void setup() {
Serial.begin(9600); }
void loop() {
Serial.println(num); delay(2000);
}
Além disso, é possível realizar a leitura de uma variável inserida no monitor serial. Isso é viabilizado pela função Serial.parseInt(), que retorna o número inteiro digitado no monitor serial. O monitor serial permanece em espera por até 1 segundo, e caso esse intervalo seja ultrapassado, a função retorna o valor zero. Esse tempo de espera pode ser ajustado de acordo com as necessidades por meio da função Serial.setTimeout(), a qual determina o período de espera em milissegundos.
int a, b, resultado; // declaracao das variaveis
void setup() {
Serial.begin(9600); // Inicializa a comunicação serial com uma taxa de 9600 bps
Serial.setTimeout(3000); // Configura o tempo limite para leitura serial como 3000 milissegundos (3 segundos)
Serial.println("Este programa calcula o valor de (a + b)ˆ3."); // Imprime uma mensagem explicativa
Serial.print("a = "); // Solicita a entrada do valor de 'a'
a = Serial.parseInt(); // Lê um número inteiro da entrada serial e armazena em 'a'
Serial.println(a); // Imprime o valor de 'a'
Serial.print("b = "); // Solicita a entrada do valor de 'b'
b = Serial.parseInt(); // Lê um número inteiro da entrada serial e armazena em 'b'
Serial.println(b); // Imprime o valor de 'b'
resultado = (a + b) * (a + b) * (a + b); // Calcula (a + b)ˆ3 e armazena o resultado em 'resultado'
Serial.print("(a + b)ˆ3 = "); // Imprime uma mensagem indicando a operação realizada
Serial.print(resultado); // Imprime o resultado do cálculo
}
void loop() {
// O bloco loop() está vazio, já que a lógica principal foi realizada no setup()
// Este loop é executado continuamente após a conclusão do setup()
// Dependendo do seu projeto, você pode adicionar lógica adicional aqui se necessário.
}
Projeto
projeto que pisca após entrada
Componentes
1 x Placa UNO R3;
1 x Cabo USB;
1 x Protoboard;
1 x Resistores;
1 x Leds
3 x Jumpers MxM
Projeto Simulador ThinkerCad
Código Arduíno
// Pisca quando recebe 1
int ledPin = 13; // Pino do LED
void setup() {
pinMode(ledPin, OUTPUT); // Configura o pino do LED como saída
Serial.begin(9600); // Inicia a comunicação serial com taxa de 9600 bps
}
void loop() {
// Aguarda a entrada de dados do monitor serial
while (Serial.available() == 0) {
// Aguarda até que algum dado seja recebido
}
// Lê o valor do monitor serial
int valorRecebido = Serial.parseInt();
// Acende ou apaga o LED com base no valor recebido
if (valorRecebido == 1) {
digitalWrite(ledPin, HIGH); // Liga o LED
} else {
digitalWrite(ledPin, LOW); // Desliga o LED
}
// Aguarda um curto período para evitar leituras repetidas
delay(500);
}