0% acharam este documento útil (0 voto)
2 visualizações2 páginas

Monitor de Energia Solar com LEDs

O documento descreve um código para um monitor de energia solar simples que utiliza LEDs para indicar o status da carga da placa solar. O sistema lê a tensão de um sensor analógico, converte o valor para tensão real e controla os LEDs de acordo com a carga detectada. O monitor também comunica os valores lidos e o status da carga via Serial.

Enviado por

arthuramsay
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
2 visualizações2 páginas

Monitor de Energia Solar com LEDs

O documento descreve um código para um monitor de energia solar simples que utiliza LEDs para indicar o status da carga da placa solar. O sistema lê a tensão de um sensor analógico, converte o valor para tensão real e controla os LEDs de acordo com a carga detectada. O monitor também comunica os valores lidos e o status da carga via Serial.

Enviado por

arthuramsay
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd

// =====================================

// MONITOR DE ENERGIA SOLAR SIMPLES


// =====================================

// Conexões físicas dos LEDs


const int verde = 2; // LED Verde no pino 2
const int amarelo = 3; // LED Amarelo no pino 3
const int vermelho = 4; // LED Vermelho no pino 4

// Sensor conectado na entrada analógica A0


const int sensor = A0;

void setup() {
// Configura cada pino de LED como saída
pinMode(verde, OUTPUT);
pinMode(amarelo, OUTPUT);
pinMode(vermelho, OUTPUT);

// Teste inicial: verifica se todos LEDs funcionam


digitalWrite(verde, HIGH);
digitalWrite(amarelo, HIGH);
digitalWrite(vermelho, HIGH);
delay(500);
digitalWrite(verde, LOW);
digitalWrite(amarelo, LOW);
digitalWrite(vermelho, LOW);

// Inicia comunicação com computador


[Link](9600);
[Link]("Monitor solar iniciado!");
}

void loop() {
// Passo 1: Ler valor do sensor
int valor_lido = analogRead(sensor);

// Passo 2: Converter para tensão (0-5V)


float tensao_medida = (valor_lido * 5.0) / 1023.0;

// Passo 3: Ajustar para tensão real da placa solar


// (Remova o *2 se não estiver usando divisor de tensão!)
tensao_medida = tensao_medida * 2;

// Passo 4: Mostrar valores no computador


[Link]("Leitura: ");
[Link](valor_lido);
[Link](" | Tensão: ");
[Link](tensao_medida);
[Link]("V");

// Passo 5: Controlar LEDs conforme tensão


if (tensao_medida >= 4.5) { // Boa carga (75-100%)
digitalWrite(verde, HIGH);
digitalWrite(amarelo, LOW);
digitalWrite(vermelho, LOW);
[Link]("Status: Ótimo!");
}
else if (tensao_medida >= 3.0) { // Carga média (50-75%)
digitalWrite(verde, LOW);
digitalWrite(amarelo, HIGH);
digitalWrite(vermelho, LOW);
[Link]("Status: Atenção!");
}
else { // Carga baixa (<50%)
digitalWrite(verde, LOW);
digitalWrite(amarelo, LOW);
digitalWrite(vermelho, HIGH);
[Link]("Status: CRÍTICO!");
}

// Esperar meio segundo antes de nova leitura


delay(500);
}

Você também pode gostar