Montar um projeto de detecção de distância, detecção de velocidade e semáforo com Arduino Uno envolve a conexão de sensores apropriados e a escrita do código necessário para controlar os sensores e LEDs.
Aqui estão os passos gerais para criar esses projetos:
Detecção de distância: para medir a distância, um sensor ultrassônico é uma opção comum.
Conecte o pino Trig do sensor ao pino digital 9 do Arduino e o pino Echo ao pino digital 10.
O código necessário para ler a distância e exibir a medição no monitor serial seria o seguinte:
int trigPin = 9;
int echoPin = 10;
float duration, distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) * 0.0343;
Serial.print("Distância: ");
Serial.print(distance);
Serial.print(" cm");
delay(100);
}
Detecção de velocidade: para medir a velocidade, um sensor de rotação, como um sensor de efeito hall, pode ser usado.
Conecte o sensor ao pino digital 2 do Arduino.
O código necessário para ler a velocidade e exibir a medição no monitor serial seria o seguinte:
int sensorPin = 2;
int count = 0;
unsigned long timeold;
float rpm;
float vel;
void setup() {
pinMode(sensorPin, INPUT);
Serial.begin(9600);
attachInterrupt(0, rpm_fun, FALLING);
timeold = millis();
}
void loop() {
if((millis()-timeold)>1000){
detachInterrupt(0);
rpm = count*60/7.5;
vel = (rpm*3.14*5)/60;
Serial.print("Velocidade: ");
Serial.print(vel);
Serial.print(" cm/s");
timeold = millis();
count = 0;
attachInterrupt(0, rpm_fun, FALLING);
}
}
void rpm_fun(){
count++;
}
Para montar um Arduino Uno para fazer vários LEDs piscarem, você precisará conectar os LEDs aos pinos digitais do Arduino e definir os pinos como saída (OUTPUT) no código.
O código abaixo fará com que os LEDs conectados aos pinos 2 a 8 pisquem em um padrão sequencial:
int ledPin1 = 2;
int ledPin2 = 3;
int ledPin3 = 4;
int ledPin4 = 5;
int ledPin5 = 6;
int ledPin6 = 7;
int ledPin7 = 8;
void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
pinMode(ledPin7, OUTPUT);
}
void loop() {
digitalWrite(ledPin1, HIGH);
delay(500);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, HIGH);
delay(500);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, HIGH);
delay(500);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, HIGH);
delay(500);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, HIGH);
delay(500);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, HIGH);
delay(500);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin7, HIGH);
delay(500);
digitalWrite(ledPin7, LOW);
}
Observe que o código usa a função digitalWrite()
para acender e apagar os LEDs e a função delay()
para definir a duração do tempo em que cada LED ficará aceso. Nesse exemplo, cada LED permanecerá aceso por meio segundo antes de ser desligado e passar para o próximo LED. Você pode ajustar o tempo e a sequência dos LEDs para criar diferentes padrões de piscagem.
Para fazer vários LEDs piscarem ao mesmo tempo com Arduino, você pode usar um loop para percorrer cada um dos pinos de LED e alternar seu estado.
O código a seguir faz isso para 4 LEDs conectados aos pinos digitais 2, 3, 4 e 5:
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
}
void loop() {
// Faz os LEDs piscarem simultaneamente
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
delay(500);
}
Para fazer os LEDs piscarem ritmicamente, você pode usar um temporizador e alterar o período de tempo em que os LEDs estão ligados ou desligados.
O código a seguir faz com que 4 LEDs conectados aos pinos digitais 2, 3, 4 e 5 pisquem em um ritmo diferente:
const int LED_PINS[] = {2, 3, 4, 5};
const int DELAYS[] = {100, 250, 500, 1000};
int currentIndex = 0;
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(LED_PINS[i], OUTPUT);
}
}
void loop() {
// Faz os LEDs piscarem no ritmo atual
digitalWrite(LED_PINS[currentIndex], HIGH);
delay(DELAYS[currentIndex]);
digitalWrite(LED_PINS[currentIndex], LOW);
delay(DELAYS[currentIndex]);
// Alterna para o próximo ritmo
currentIndex++;
if (currentIndex >= 4) {
currentIndex = 0;
}
}
Esse código utiliza duas variáveis para armazenar os pinos de LED e os intervalos de tempo para cada LED piscar. O índice currentIndex
é usado para percorrer esses arrays e alternar entre os diferentes intervalos de tempo. Você pode modificar os valores no array DELAYS
para alterar os intervalos de tempo entre os piscas.
Para montar um circuito com Arduino para fazer vários LEDs piscarem ao mesmo tempo, você precisará conectar os LEDs aos pinos digitais do Arduino. Por exemplo, para fazer 4 LEDs piscarem ao mesmo tempo, você pode conectar cada LED aos pinos digitais 2, 3, 4 e 5 do Arduino. Você também precisará de resistores para limitar a corrente que passa através dos LEDs. O valor dos resistores dependerá do tipo de LED que você está usando e da fonte de alimentação do circuito.
Aqui está um exemplo de como você pode conectar 4 LEDs aos pinos digitais do Arduino:
Agora, vamos ver como podemos fazer os LEDs piscarem ao mesmo tempo. Podemos usar o seguinte código para fazer isso:
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
}
void loop() {
// Faz os LEDs piscarem simultaneamente
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
delay(500);
}
Esse código alterna o estado dos 4 LEDs entre ligado e desligado com um intervalo de 500 milissegundos.
Para fazer os LEDs piscarem ritmicamente, podemos usar um temporizador para controlar o intervalo de tempo entre cada piscada. Podemos usar o seguinte código para fazer os LEDs piscarem em diferentes ritmos:
const int LED_PINS[] = {2, 3, 4, 5};
const int DELAYS[] = {100, 250, 500, 1000};
int currentIndex = 0;
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(LED_PINS[i], OUTPUT);
}
}
void loop() {
// Faz os LEDs piscarem no ritmo atual
digitalWrite(LED_PINS[currentIndex], HIGH);
delay(DELAYS[currentIndex]);
digitalWrite(LED_PINS[currentIndex], LOW);
delay(DELAYS[currentIndex]);
// Alterna para o próximo ritmo
currentIndex++;
if (currentIndex >= 4) {
currentIndex = 0;
}
}
Esse código usa uma matriz LED_PINS
para armazenar os pinos dos LEDs e uma matriz DELAYS
para armazenar os intervalos de tempo para cada LED piscar. O índice currentIndex
é usado para percorrer essas matrizes e alternar entre os diferentes intervalos de tempo. Nesse exemplo, cada LED piscará em um intervalo de tempo diferente. Você pode modificar os valores na matriz DELAYS
para alterar os intervalos de tempo entre as piscadas.
Outras formas de fazer fazer vários LEDs piscarem ao mesmo tempo com Arduino, você pode conectar os LEDs em diferentes pinos digitais do Arduino e usar um loop para percorrer cada um dos pinos de LED e alternar seu estado. O código a seguir faz isso para 4 LEDs conectados aos pinos digitais 2, 3, 4 e 5:
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
}
void loop() {
// Faz os LEDs piscarem simultaneamente
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
delay(500);
}
Para fazer os LEDs piscarem ritmicamente, você pode usar um temporizador e alterar o período de tempo em que os LEDs estão ligados ou desligados. O código a seguir faz com que 4 LEDs conectados aos pinos digitais 2, 3, 4 e 5 pisquem em um ritmo diferente:
const int LED_PINS[] = {2, 3, 4, 5};
const int DELAYS[] = {100, 250, 500, 1000};
int currentIndex = 0;
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(LED_PINS[i], OUTPUT);
}
}
void loop() {
// Faz os LEDs piscarem no ritmo atual
digitalWrite(LED_PINS[currentIndex], HIGH);
delay(DELAYS[currentIndex]);
digitalWrite(LED_PINS[currentIndex], LOW);
delay(DELAYS[currentIndex]);
// Alterna para o próximo ritmo
currentIndex++;
if (currentIndex >= 4) {
currentIndex = 0;
}
}
Esse código utiliza duas variáveis para armazenar os pinos de LED e os intervalos de tempo para cada LED piscar. O índice currentIndex
é usado para percorrer esses arrays e alternar entre os diferentes intervalos de tempo. Você pode modificar os valores no array DELAYS
para alterar os intervalos de tempo entre os piscas.
Para fazer a montagem do circuito, siga os seguintes passos:
- Conecte o Arduino ao seu computador através de um cabo USB.
- Conecte os LEDs aos pinos digitais 2, 3, 4 e 5 do Arduino, respectivamente. Certifique-se de que o LED anodo (+) esteja conectado ao pino e o catodo (-) esteja conectado ao GND do Arduino.
- Abra o software Arduino IDE em seu computador.
- Crie um novo sketch e copie o código acima para o sketch.
- Carregue o código para o Arduino clicando no botão "Enviar" na barra de ferramentas do Arduino IDE.
Pronto! Seu circuito agora deve estar funcionando e os LEDs piscando ao mesmo tempo ou de forma ritmica.
O código a seguir faz isso para 4 LEDs conectados aos pinos digitais 2, 3, 4 e 5:
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
}
void loop() {
// Faz os LEDs piscarem simultaneamente
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
delay(500);
}
Para fazer os LEDs piscarem ritmicamente, você pode usar um temporizador e alterar o período de tempo em que os LEDs estão ligados ou desligados. O código a seguir faz com que 4 LEDs conectados aos pinos digitais 2, 3, 4 e 5 pisquem em um ritmo diferente:
const int LED_PINS[] = {2, 3, 4, 5};
const int DELAYS[] = {100, 250, 500, 1000};
int currentIndex = 0;
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(LED_PINS[i], OUTPUT);
}
}
void loop() {
// Faz os LEDs piscarem no ritmo atual
digitalWrite(LED_PINS[currentIndex], HIGH);
delay(DELAYS[currentIndex]);
digitalWrite(LED_PINS[currentIndex], LOW);
delay(DELAYS[currentIndex]);
// Alterna para o próximo ritmo
currentIndex++;
if (currentIndex >= 4) {
currentIndex = 0;
}
}
Esse código utiliza duas variáveis para armazenar os pinos de LED e os intervalos de tempo para cada LED piscar. O índice currentIndex
é usado para percorrer esses arrays e alternar entre os diferentes intervalos de tempo. Você pode modificar os valores no array DELAYS
para alterar os intervalos de tempo entre os piscas. Certifique-se de conectar os LEDs aos pinos digitais corretos e com os resistores adequados para evitar danos ao microcontrolador.