Funções
Em linguagens de programação, funções são blocos de instruções que podem ser chamados em qualquer parte do corpo do programa. Esses blocos de instruções podem, ou retornar um valor, ou executar uma tarefa específica. As funções são utilizadas quando os blocos de instruções são chamados mais de uma vez, evitando a necessidade de digitá-los repetidamente. Isso não apenas melhora a estética do código, tornando-o mais organizado, mas também facilita a correção, compreensão e aprimoramento do código.
Criação e chamada de funções
As funções podem ser criadas pelo programador, assim como podem ser utilizadas as predefinidas pelo Arduino (por exemplo, pinMode(), digitalWrite(), delay(), for(), etc).
tipo_do_retorno nome(tipo variavel1, tipo variavel2, ...) {
declaracao de variaveis; (quando necessario)
instrucao 1;
instrucao 2;
...
return variavel; (opcional)
Se a função retornar um valor, é obrigatório determinar o tipo do retorno, que pode ser um número inteiro, um número real ou até mesmo um caractere. As variáveis dentro dos parênteses são as variáveis de entrada, cujos tipos também devem ser explicitados.
Projeto
projeto com sensor de som
Componentes
1 x Placa arduino uno
4 x cabos jumpers FxM
2 x cabos jumpers MxM
1 x Sensor de som (HW-485)
Projeto
projeto com sensor de som
Componentes
1 x Placa arduino uno
4 x cabos jumpers FxM
2 x cabos jumpers MxM
1 x Sensor de som (HW-485)
Código Arduíno
int microfonePin = A0; // Pino do microfone conectado à entrada analógica A0
int ledPin = 8; // Pino do LED conectado ao pino digital 8
int limiarSom = 500; // Limiar de intensidade de som para ativar/desativar o LED
void setup(){
Serial.begin(9600); // Inicia a comunicação serial com uma taxa de 9600 bauds para depuração
pinMode(microfonePin, INPUT); // Configura o pino do microfone como entrada
pinMode(ledPin, OUTPUT); // Configura o pino do LED como saída
}
void loop(){
int valorSom = analogRead(microfonePin); // Lê o valor da intensidade de som no pino analógico
DetectarSom(valorSom);
}
void DetectarSom(int valorSom){
// Verifica se o valor do som é superior ao limiar e o LED está ligado
if(valorSom > limiarSom && (digitalRead(ledPin) == HIGH)){
digitalWrite(ledPin, LOW); // Desliga o LED
delay(1000); // Aguarda 1000 milissegundos (1 segundo)
}
// Verifica se o valor do som é superior ao limiar e o LED está desligado
else if (valorSom > limiarSom && (digitalRead(ledPin) == LOW)){
digitalWrite(ledPin, HIGH); // Liga o LED
delay(1000); // Aguarda 1000 milissegundos (1 segundo)
Serial.println("Passou o som\n"); // Imprime mensagem no monitor serial
}
}