Postagens

Mostrando postagens de julho, 2025
Imagem
  💡 Projeto Interativo com LCD 16x2: Barras de Progresso e Feedback Visual Dinâmico No projeto de hoje, vamos mostrar que o clássico display LCD 16x2 pode ir além de textos estáticos. Com um pouco de criatividade e código bem estruturado, é possível transformar esse componente simples em um painel cheio de vida: barras de progresso, animações de carregamento e feedback visual em tempo real . Ideal para indicadores de carga , níveis de sensor , status de processos ou projetos de interface intuitiva , essa abordagem pode ser aplicada em inúmeros contextos. 🔧 Materiais Utilizados Arduino Uno (ou Nano) Display LCD 16x2 Módulo I2C (opcional, mas facilita conexões) Potenciômetro (para simular um sensor) Jumpers e protoboard 🎯 O Que Vamos Fazer Você verá neste projeto: Uma barra de progresso horizontal que se atualiza com a leitura de um potenciômetro. Um indicador visual animado de carregamento . Uma mensagem dinâmica dependendo do valor lido. ?...
Imagem
  🧠 Aplicação Estendida: Menu com Submenus e Ações no LCD 16x2 📌 Componentes: Display LCD 16x2 (com interface I2C ou pinos diretos, usando Adafruit_LiquidCrystal ) 3 Botões (Navegar, Selecionar e Voltar) 1 LED (acionado pelo menu) Sensor de temperatura LM35 (opcional para leitura no submenu) Arduino Uno ✅ Código Arduino Atualizado # include <Adafruit_LiquidCrystal.h> Adafruit_LiquidCrystal lcd ( 0 ); // Endereço 0 para placas com backpack I2C integrado // Pinos dos botões const int botaoNavegar = 2 ; const int botaoSelecionar = 3 ; const int botaoVoltar = 4 ; // LED de teste const int ledPin = 13 ; // Menu int menuIndex = 0 ; int subMenuIndex = 0 ; bool inSubMenu = false ; String opcoesMenu[] = { "LED" , "Sensor" , "Sobre" }; const int totalOpcoes = 3 ; void setup () { lcd. begin ( 16 , 2 ); pinMode (botaoNavegar, INPUT_PULLUP); pinMode (botaoSelecionar, INPUT_PULLUP); pinMode (botaoVoltar, INPUT_PULLUP)...
Imagem
  Menu com Botões no LCD 16x2 🧾 Descrição: Chegamos à aplicação final desta série com o LCD! Agora vamos criar um menu interativo com três botões: Um botão para navegar para baixo nas opções, Um botão para navegar para cima , E outro para selecionar a opção desejada. O display mostrará opções como: "Ver temperatura" "Iniciar motor" "Configurações" Ao selecionar uma, o LCD exibirá uma mensagem correspondente. 📦 Materiais necessários: Arduino Uno Display LCD 16x2 3 botões (push buttons) 3 resistores de 10k Ohm Protoboard e cabos jumper 🧠 Conceitos abordados: Controle de menus em sistemas embarcados Lógica de seleção com arrays de strings Atualização dinâmica do display LCD Uso de switch-case para ações distintas 💻 Código: # include <Adafruit_LiquidCrystal.h> Adafruit_LiquidCrystal lcd_1 ( 0 ); const int botaoCima = 2 ; const int botaoBaixo = 3 ; const int botaoSeleciona ...
Imagem
  Cronômetro com Botões: Início, Pausa e Reset 🧾 Descrição: Nesta aplicação, vamos transformar o display LCD em um cronômetro digital , controlado por três botões: Um botão inicia ou retoma a contagem, Outro pausa a contagem, E o terceiro reinicia o cronômetro. 📦 Materiais necessários: Arduino Uno Display LCD 16x2 3 botões (push buttons) 3 resistores de 10k Ohm (pull-down) Protoboard e cabos jumper 🧠 Conceitos abordados: Leitura de botões com digitalRead() Controle de tempo com millis() Uso de boolean para alternar estados Exibição de minutos e segundos no display LCD 💻 Código: # include <Adafruit_LiquidCrystal.h> Adafruit_LiquidCrystal lcd_1 ( 0 ); const int botaoInicio = 2 ; const int botaoPausa = 3 ; const int botaoReset = 4 ; unsigned long tempoAnterior = 0 ; unsigned long tempoDecorrido = 0 ; bool emExecucao = false ; void setup () { lcd_1. begin ( 16 , 2 ); lcd_1. print ( "Cronometro: 0:00...
Imagem
   Termômetro com Sensor de Temperatura (LM35) 🧾 Descrição: Essa aplicação mostra a temperatura ambiente no display LCD em tempo real. Utilizaremos um sensor analógico LM35, que fornece 10 mV por grau Celsius. 📦 Materiais necessários: Arduino Uno Display LCD 16x2 Sensor LM35 Protoboard e cabos jumper 🧠 Conceitos abordados: Leitura de entrada analógica com analogRead() Conversão de tensão para temperatura Exibição de valores numéricos no LCD 💻 Código: # include <Adafruit_LiquidCrystal.h> Adafruit_LiquidCrystal lcd_1 ( 0 ); const int lm35Pin = A0; float temperatura = 0 ; void setup () { lcd_1. begin ( 16 , 2 ); lcd_1. print ( "Temp:" ); } void loop () { int leitura = analogRead (lm35Pin); temperatura = (leitura * 5.0 * 100.0 ) / 1023.0 ; lcd_1. setCursor ( 6 , 0 ); lcd_1. print (temperatura); lcd_1. print ( " C " ); lcd_1. setCursor ( 0 , 1 ); if (temperatura < 25 ) { lcd_1. print ( ...
Imagem
  Aplicação 2 – Relógio de Contador com Pisca LED no Display Descrição: Essa aplicação cria um relógio contador de segundos com um LED virtual (ou real, se desejar) que pisca em sincronia com o display. A cada segundo, o display é atualizado com o valor do tempo, e o backlight do LCD pisca. 📦 Materiais necessários: 1 Display LCD 16x2 (com interface I2C ou paralela, conforme seu setup) Arduino Uno Cabos jumper Protoboard (se usar LED externo) 1 LED (opcional) 1 resistor de 220 Ω (se usar LED externo)  🖼️ Imagem da montagem: 🧠 Conceitos abordados: Uso do lcd.setCursor() Controle de lcd.setBacklight() Uso de delay() para temporização Contagem de tempo simples 💻 Código atualizado: cpp Copiar Editar # include <Adafruit_LiquidCrystal.h> int seconds = 0 ; Adafruit_LiquidCrystal lcd_1 ( 0 ); // Porta padrão I2C ou endereço paralelo void setup () { lcd_1. begin ( 16 , 2 ); lcd_1. print ( "Tempo:" ); } void loop () ...
Imagem
Exibindo a Distância no Display LCD 16x2 com o Sensor Ultrassônico Hoje vamos conectar um display LCD 16x2 com módulo I2C ao Arduino para mostrar a distância em tempo real medida pelo sensor HC-SR04 . Essa técnica é muito útil para projetos com visualização direta dos dados. 📦 Materiais necessários: 1 Sensor HC-SR04 1 Display LCD 16x2 com módulo I2C Cabos jumper Arduino Uno 📷 Esquema de ligação HC-SR04: TRIG → pino 8, ECHO → pino 7 LCD I2C: VCC → 5V | GND → GND | SDA → A4 | SCL → A5 📚 Bibliotecas necessárias: Adicione a biblioteca LiquidCrystal_I2C pela IDE do Arduino: // Vá em: Sketch → Incluir Biblioteca → Gerenciar Bibliotecas // Procure: LiquidCrystal I2C // Instale a biblioteca de Frank de Brabander 💻 Código para exibir a distância #include <Wire.h> #include <LiquidCrystal_I2C.h> #define TRIG 8 #define ECHO 7 LiquidCrystal_I2C lcd(0x27, 16, 2); // Endereço padrão do LCD void setup() { pinMode(TRIG, OUTPUT); pin...
Imagem
Medidor de Distância com Barra de LEDs e Sensor Ultrassônico Hoje vamos criar um indicador visual de distância com o sensor HC-SR04 e vários LEDs. Cada LED representa uma faixa de distância, acendendo conforme o objeto se aproxima. Esse tipo de projeto é comum em sensores de ré, robôs ou alarmes visuais. 📦 Materiais necessários: 1 Sensor ultrassônico HC-SR04 5 LEDs 5 resistores de 220 Ohm Protoboard Cabos jumper Arduino Uno 📷 Esquema de ligação HC-SR04: TRIG → pino 8, ECHO → pino 7 LEDs nos pinos 2, 3, 4, 5 e 6 com resistores 💻 Código para barra de LEDs #define TRIG 8 #define ECHO 7 int leds[] = {2, 3, 4, 5, 6}; void setup() { Serial.begin(9600); pinMode(TRIG, OUTPUT); pinMode(ECHO, INPUT); for (int i = 0; i < 5; i++) { pinMode(leds[i], OUTPUT); } } void loop() { digitalWrite(TRIG, LOW); delayMicroseconds(2); digitalWrite(TRIG, HIGH); delayMicroseconds(10); digitalWrite(TRIG, LOW); long duracao = pulseIn(...
Imagem
Acionando um LED com Sensor de Distância Ultrassônico (HC-SR04) Hoje vamos aprender como detectar objetos próximos com o sensor ultrassônico HC-SR04 e acionar um LED quando a distância estiver abaixo de um valor definido. Esse projeto simula um alarme de proximidade simples e eficiente. 📦 Materiais necessários: 1 Sensor HC-SR04 1 LED 1 Resistor de 220 Ohm Protoboard Cabos jumper Arduino Uno 📷 Esquema de ligação HC-SR04: VCC → 5V | GND → GND | TRIG → pino 8 | ECHO → pino 7 LED no pino 9 com resistor de 220 Ohm 💻 Código para detectar proximidade #define TRIG 8 #define ECHO 7 #define LED 9 void setup() { Serial.begin(9600); pinMode(TRIG, OUTPUT); pinMode(ECHO, INPUT); pinMode(LED, OUTPUT); } void loop() { long duracao, distancia; digitalWrite(TRIG, LOW); delayMicroseconds(2); digitalWrite(TRIG, HIGH); delayMicroseconds(10); digitalWrite(TRIG, LOW); duracao = pulseIn(ECHO, HIGH); distancia = duracao * 0.034 / 2...
Imagem
Controlando a Velocidade de um Ventilador com Temperatura (LM35 + PWM) Hoje vamos automatizar a velocidade de um ventilador de acordo com a temperatura medida pelo sensor LM35. Quanto mais quente, mais rápido o ventilador gira. Usaremos PWM para controlar suavemente o motor DC. 📦 Materiais necessários: 1 Sensor LM35 1 Motor DC pequeno (ventilador) 1 Transistor NPN (TIP120, BD135 ou 2N2222) 1 Diodo 1N4007 (proteção do motor) 1 Resistor de 1k Ohm (base do transistor) Protoboard Cabos jumper Fonte de 5V ou alimentação externa Arduino Uno 📷 Esquema de ligação Pino central do LM35 → A0 Base do transistor → pino 9 do Arduino com resistor de 1k Coletor do transistor → polo negativo do motor Emissor do transistor → GND Polo positivo do motor → 5V Diodo em paralelo com o motor (protegendo contra picos) 💻 Código para controle de velocidade térmico int pinoTemp = A0; int pinoPWM = 9; void setup() { Serial.begin(9600); pinM...
Imagem
Acendendo um LED com o Sensor de Temperatura LM35 Hoje vamos usar um sensor de temperatura LM35 para acionar um LED. O LED será aceso automaticamente quando a temperatura ultrapassar um limite definido, como 30 °C. Esse projeto é uma ótima introdução ao monitoramento ambiental com Arduino. 📦 Materiais necessários: 1 Sensor de temperatura LM35 1 LED 1 Resistor de 220 Ohm (para o LED) Protoboard Cabos jumper Arduino Uno 📷 Esquema de ligação Pino 1 (esquerda) do LM35 → 5V Pino 2 (centro) do LM35 → A0 Pino 3 (direita) do LM35 → GND LED → Pino 9 do Arduino, com resistor de 220 Ohm 💻 Código para monitorar a temperatura int pinoLM35 = A0; int pinoLED = 9; void setup() { Serial.begin(9600); pinMode(pinoLED, OUTPUT); } void loop() { int leitura = analogRead(pinoLM35); float temperatura = leitura * 0.488; // Conversão aproximada para °C Serial.print("Temperatura: "); Serial.print(temperatura); Serial.println("...
Imagem
Controlando o Brilho do LED com Sensor de Luz (LDR) e PWM Hoje vamos avançar no projeto anterior: em vez de acender o LED de forma brusca, agora o brilho será ajustado gradualmente com base na luz ambiente. Isso torna o sistema mais inteligente e suave, como acontece em automações residenciais. 📦 Materiais necessários: 1 LED 1 Resistor de 220 Ohm (para o LED) 1 LDR (sensor de luz) 1 Resistor de 10k Ohm (para o divisor com o LDR) Protoboard Cabos jumper Arduino Uno 📷 Esquema de ligação 💻 Código para controle de brilho com LDR int pinoLDR = A0; int pinoLED = 9; void setup() { pinMode(pinoLED, OUTPUT); Serial.begin(9600); } void loop() { int leituraLDR = analogRead(pinoLDR); int brilho = map(leituraLDR, 0, 1023, 255, 0); // mais luz = menos brilho analogWrite(pinoLED, brilho); Serial.print("Luz: "); Serial.print(leituraLDR); Serial.print(" → Brilho: "); Serial.println(brilho); delay(100); } 🧠 Explicaçã...
Imagem
Acendendo um LED com Sensor de Luz (LDR) Hoje vamos interagir com o Arduino usando um sensor de luz (LDR). Quando o ambiente escurecer, o LED acende automaticamente. Essa é uma das formas mais simples de automação com sensores analógicos! 📦 Materiais necessários: 1 LED 1 Resistor de 220 Ohm (para o LED) 1 LDR (sensor de luz) 1 RESISTOR OU UM POTENCIOMETRO de 10k Ohm (para o divisor com o LDR PARA AJUSTAR A SENCIBILIDADE. Protoboard Cabos jumper Arduino Uno 📷 Esquema de ligação DETALIHES DO PONTENCIOMETRO FACILITA O DISPARO 💻 Código do projeto int pinoLDR = A0; int pinoLED = 9; void setup() { pinMode(pinoLED, OUTPUT); Serial.begin(9600); } void loop() { int valorLuz = analogRead(pinoLDR); Serial.println(valorLuz); if (valorLuz < 500) { digitalWrite(pinoLED, HIGH); } else { digitalWrite(pinoLED, LOW); } delay(200); } 🧠 Explicação: O LDR varia a resistência conforme a luz: quanto mais escuro, maior o valor lido. Usa...
Imagem
Controlando a Velocidade de um Motor DC com Potenciômetro e PWM No conteúdo anterior, usamos um potenciômetro para ajustar o brilho de um LED. Hoje vamos aplicar o mesmo conceito para controlar a velocidade de um motor DC com o Arduino, usando a função analogWrite() . 📦 Materiais necessários: 1 Motor DC pequeno 1 Transistor NPN (ex: TIP120 ou 2N2222) 1 Diodo 1N4007 (proteção) 1 Potenciômetro de 10k 1 Resistor de 1k Ohm (base do transistor) Protoboard, fonte 5V externa (opcional) e Arduino Uno 📷 Esquema de ligação ) Pino central do potenciômetro → A0 Pino PWM (ex: 9) → resistor de 1k → base do transistor Coletor do transistor → polo negativo do motor Emissor do transistor → GND Polo positivo do motor → 5V (com diodo em paralelo) 💻 Código para controle de velocidade int potPin = A0; int motorPin = 9; void setup() { pinMode(motorPin, OUTPUT); } void loop() { int valorPot = analogRead(potPin); // Lê valor do pote...
Imagem
Controlando o Brilho do LED com Potenciômetro e PWM Hoje vamos aprender como controlar a intensidade de um LED com um potenciômetro usando o recurso de PWM (Modulação por Largura de Pulso) do Arduino. 📦 Materiais necessários: 1 LED 1 Resistor de 220 Ohm 1 Potenciômetro de 10k Ohm Protoboard Cabos jumper Arduino Uno 📷 Esquema de ligação/ vamos mater o esquemas anterior entendendo que o leitor nao tem mas dificuldade com o tema adicionando o novo O pino central do potenciômetro vai ao A0 do Arduino As laterais vão ao 5V e ao GND O LED está ligado ao pino 9 do Arduino 💻 Código: Brilho controlado por potenciômetro int pinoPot = A0; int pinoLED = 9; void setup() { pinMode(pinoLED, OUTPUT); } void loop() { int valor = analogRead(pinoPot); // Lê valor de 0 a 1023 int brilho = map(valor, 0, 1023, 0, 255); // Converte para 0-255 analogWrite(pinoLED, brilho); // Ajusta brilho do LED delay(10); ...
Imagem
Botão Tipo Liga/Desliga com Arduino (Toggle) Hoje vamos transformar o botão em um interruptor inteligente : cada toque muda o estado do LED. Esse tipo de lógica é usada em luzes de automação, acionamento de relés e muito mais! 📦 Materiais necessários 1 LED 1 Resistor de 220 Ohm 1 Push button 1 Resistor de 10k Ohm (pull-down) Protoboard, Arduino Uno e cabos jumper 📷 Esquema de ligação 💻 Código para botão tipo liga/desliga // Pinos int led = 7; int botao = 2; // Controle do estado bool estadoLED = false; bool estadoAnterior = LOW; unsigned long ultimaLeitura = 0; unsigned long debounceDelay = 50; void setup() { pinMode(led, OUTPUT); pinMode(botao, INPUT); } void loop() { int leitura = digitalRead(botao); if (leitura != estadoAnterior) { ultimaLeitura = millis(); } if ((millis() - ultimaLeitura) > debounceDelay) { if (leitura == HIGH && estadoAnterior == LOW) { estadoLED = !estadoLED; // alterna o estado digit...