Baseado nos componentes fundamentais do vídeo, completa os desafios abaixo para dominares a eletrónica digital.
Download Arduino IDE || Tinkercad siteObjetivo: Fazer um LED piscar com intervalos de 1 segundo.
void setup() {
pinMode(13, OUTPUT); // Configura o pino 13 como saída
}
void loop() {
digitalWrite(13, HIGH); // Liga o LED
delay(1000); // Espera 1 segundo
digitalWrite(13, LOW); // Desliga o LED
delay(1000);
}
Objetivo: Acender o led quando fica escuro
int temt6000Pin = A0;
float light;
int light_value;
void setup()
{
Serial.begin(112500);
pinMode(temt6000Pin, INPUT);
pinMode(11, OUTPUT);
}
void loop()
{
int light_value=analogRead(temt6000Pin);
//light = light_value * 0.0976;
light = light_value;
Serial.println(light);
delay(100);
if(light_value<300){
digitalWrite(11, HIGH);
}
else {digitalWrite(11, LOW);}
}
}
Objetivo: Medir a distância de um objeto e mostrar no Monitor Série.
// Definição dos pinos do sensor para facilitar a leitura do código
const int trigPin = 9; // Pino que envia o sinal (gatilho)
const int echoPin = 10; // Pino que recebe o eco (retorno)
void setup() {
// Inicia a comunicação com o Monitor Série a 9600 bits por segundo
Serial.begin(9600);
// Define o modo de cada pino
pinMode(trigPin, OUTPUT); // O pino Trig emite som (Saída)
pinMode(echoPin, INPUT); // O pino Echo deteta som (Entrada)
}
void loop() {
// Limpa o pino Trig para garantir um sinal limpo
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Envia um pulso ultrassónico durante 10 microssegundos
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Mede o tempo que o som demorou a voltar (em microssegundos)
//long (Longo): Consegue guardar números muito maiores (até mais de 2 mil milhões).
long duracao = pulseIn(echoPin, HIGH);
/* Cálculo da distância em cm:
O som viaja a ~340m/s (0.034 cm/us).
Dividimos por 2 porque o som vai até ao objeto e volta.
*/
int distancia = duracao * 0.034 / 2;
// Imprime o resultado no Monitor Série
Serial.print("Distancia: ");
Serial.print(distancia);
Serial.println(" cm");
// Aguarda meio segundo antes da próxima medição
delay(500);
}
Objetivo: Medir a distância de um objeto e mostrar no Monitor Série.
// Definição dos pinos
const int trigPin = 9;
const int echoPin = 10;
const int buzzerPin = 8;
// Variáveis
long duracao;
float distanciaMM;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Limpa o trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Ativa o sensor por 10 microsegundos
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Lê o tempo de resposta em microsegundos
duracao = pulseIn(echoPin, HIGH);
// Cálculo da distância:
// (Tempo * Velocidade do Som) / 2
// Em cm seria: duracao * 0.034 / 2
// Para milímetros, multiplicamos o resultado por 10:
distanciaMM = (duracao * 0.034 / 2) * 10;
// Exibe o valor no Monitor Serial
Serial.print("Distancia: ");
Serial.print(distanciaMM);
Serial.println(" mm");
// Lógica do Buzzer (Aciona se for <= 50mm)
if (distanciaMM <= 50) {
digitalWrite(buzzerPin, HIGH); // Liga o buzzer
} else {
digitalWrite(buzzerPin, LOW); // Desliga o buzzer
}
delay(100); // Pequena pausa para estabilidade
}
Objetivo: Fazer um Servo Motor oscilar entre 0º e 180º.
#include <Servo.h> // Inclui a biblioteca necessária para controlar servomotores
Servo meuServo; // Cria um objeto (como se fosse um nome próprio) para o nosso servo
void setup() {
// Indica ao Arduino que o servo está fisicamente ligado ao pino digital 6
// Nota: Os servos devem ser ligados a pinos PWM (identificados com ~)
meuServo.attach(6);
}
void loop() {
meuServo.write(0); // Roda o motor para a posição de 0 graus
delay(1000); // Aguarda 1 segundo nesta posição
meuServo.write(180); // Roda o motor para a posição de 180 graus (o limite máximo)
delay(1000); // Aguarda 1 segundo nesta posição
}
O Desafio: Cria um sistema onde o **Sensor Ultrassónico** deteta um carro. Se a distância for menor que 10cm, o **LED** acende e o **Servo Motor** levanta 90º (abre a cancela).
Tenta escrever o código sozinho usando os exemplos anteriores como base!
Solução