
PRogramação
Todos os códigos utilizados em cada etapa durante o projeto serão colocados nessa pagina. Assim é possível visualizar o refinamento do código e relacionar com cada etapa da montagem do projeto.
A explicação dos comandos estarão no código, dentro dos comentários de forma "//explicação//".
Código do teste Nº 1
int pot = A0; //variável LDR
int PWM = 5;
int valorpot = 0; //Armazena valor do LDR
float luminosidade = 0; //Valor de luminosidade do led
void setup() {
Serial.begin(9600);
pinMode(pot, INPUT);
pinMode(PWM, OUTPUT);
}
void loop() {
valorpot = analogRead(pot);
luminosidade = map(valorpot, 0, 1023, 0, 255);
Serial.print("Valor lido do LDR: ");
Serial.print(valorpot);
Serial.print(" = Luminosidade: ");
Serial.println(luminosidade);
analogWrite(PWM, 0);
if (luminosidade <255 && luminosidade >=200)
{
for (int i= 0; i <= 255; i++)
{
analogWrite(PWM, i);
}
}
if (luminosidade <100 && luminosidade >=50)
{
//o valor de i é escrito no pinoPWM
delay(15);
for (int i= 255; i >= 50; i--)
{
analogWrite(PWM, i);
//o valor de i é escrito no pinoPWM
delay(15);
}
}
//delay(50);
}
Código do teste Nº 2
int pot = A0; //variável LDR
int PWM = 5;
int valorpot = 0; //Armazena valor do LDR
float luminosidade = 0; //Valor de luminosidade do led
void setup() {
Serial.begin(9600);
pinMode(pot, INPUT);
pinMode(PWM, OUTPUT);
}
void loop() {
valorpot = analogRead(pot);
//luminosidade = map(valorpot, 0, 1023, 0, 255);
//Serial.print("Valor lido do LDR: ");
Serial.print(valorpot);
Serial.println(" ");
//Serial.print(" = Luminosidade: ");
Serial.println(luminosidade++);
if (luminosidade > 255) luminosidade = 0;
analogWrite(PWM, luminosidade);
delay (10);
if (0) {
if (luminosidade < 255 && luminosidade > 150)
{
for (int i = 0; i <= 10; i++)
{
analogWrite(PWM, i);
}
}
if (luminosidade < 140 && luminosidade >= 50)
{
//o valor de i é escrito no pinoPWM
delay(15);
for (int i = 255; i >= 240; i--)
{
analogWrite(PWM, i);
//o valor de i é escrito no pinoPWM
delay(15);
}
}
}
}
Código do teste Nº 3
int pot = A0; //variável LDR
int PWM = 5;
int valorpot = 0; //Armazena valor do LDR
float luminosidade = 0; //Valor de luminosidade do led
void setup() {
Serial.begin(9600);
pinMode(pot, INPUT);
pinMode(PWM, OUTPUT);
}
void loop() {
valorpot = analogRead(pot);
Serial.print(valorpot);
Serial.print(" ");
//Serial.print(" = Luminosidade: ");
//Serial.println(" ");
//Serial.println(luminosidade++);
//if (luminosidade > 255) luminosidade = 50;
analogWrite(PWM, luminosidade);
delay (50);
//luminosidade = (255-((valorpot-457)*0.604265));//Fórmula
//luminosidade = (((255-((valorpot-457)*0.604265))+(2*luminosidade))/3);
Serial.println(luminosidade);
if (valorpot >688)
{
luminosidade = luminosidade + 3;
}
if (valorpot <648)
{
luminosidade = luminosidade - 3;
}
if (luminosidade<=0)luminosidade=0;
if (luminosidade>=255)luminosidade=255;}
Código do teste Nº 4(final)
#include "DHT.h" // Biblioteca do Sensor DHT11
#define DHTPIN 2 // Pino do Sensor DHT11
#define DHTTYPE DHT11 // Modelo do Sensor
DHT dht(DHTPIN, DHTTYPE); // Algoritmo do Sensor
int pot = A0; //variável LDR
int PWM = 5; // Saída do PWM da fita de led
int valorpot = 0; //Armazena valor do LDR
float luminosidade = 0; //Valor de luminosidade do led
int percentual = 10; // Porcentagem da luminosidade. Pode variar de 0 a 100%
int dado; // Resultado da Equação
int inByte = 0; // Ler Serial Monitor;
int led = 13; // Led de Sinalização
void setup() {
Serial.begin(9600); // Habilitar Monitor Serial
pinMode(pot, INPUT); // Entrada do Led
pinMode(PWM, OUTPUT); // Saída do PWM fita de led
pinMode(led, OUTPUT); // Saída do Led de Sinalização
Serial.println("Insira a porcentagem");
Serial.println("DHTxx test!");
dht.begin(); // Inicio da leitura do DHT
}
void loop() {
valorpot = analogRead(pot); // Ler o LDR
Serial.print("LDR= ");
Serial.print(valorpot); // Enviar para monitor serial o valor lido LDR
Serial.print(" ");
Serial.print("LED= ");
Serial.print(luminosidade); // Enviar para monitor serial o valido lido do PWM fita de led
Serial.print(" ");
Serial.print("Dado= ");
Serial.println(dado); // Enviar para monitor serial o valor de Luminosidade obtida
analogWrite(PWM, luminosidade); // Enviar dados para saída da fita de led e do LDR
delay (50); // Tempo entre as leituras
if (valorpot > (dado+40)) // Condição (Se o LDR tiver pouca luminosidade)
{
luminosidade = luminosidade + 2; // Incrementa o PWM da fita de led
}
if (valorpot < (dado-40)) // Condição (Se o LDR tiver muita luminosidade)
{
luminosidade = luminosidade - 2; // Decrementa o PWM da fita de led
}
if (luminosidade<=0)luminosidade=0; // Condição (Se o PWM da fita de led estiver desligada)
if (luminosidade>=255)luminosidade=255; // Condição (Se o PWM da fita de led estiver ligada no máximo)
dado = (6*percentual)+170; // Fórmula para habilitar Interface Homem Máquina
if (Serial.available() > 0) // Condição (Habilitar a Interface Homem Maquina
{
inByte = Serial.read(); // Leitura do byte de entrada
if(inByte == 'Z')percentual=100; // Condição (Atribuir 0% de luminosidade)
if(inByte == '0')percentual=90; // Condição (Atribuir 10% de luminosidade)
if(inByte == '1')percentual=80; // Condição (Atribuir 20% de luminosidade)
if(inByte == '2')percentual=70; // Condição (Atribuir 30% de luminosidade)
if(inByte == '3')percentual=60; // Condição (Atribuir 40% de luminosidade)
if(inByte == '4')percentual=50; // Condição (Atribuir 50% de luminosidade)
if(inByte == '5')percentual=40; // Condição (Atribuir 60% de luminosidade)
if(inByte == '6')percentual=30; // Condição (Atribuir 70% de luminosidade)
if(inByte == '7')percentual=20; // Condição (Atribuir 80% de luminosidade)
if(inByte == '8')percentual=10; // Condição (Atribuir 90% de luminosidade)
if(inByte == '9')percentual=0; // Condição (Atribuir 100% de luminosidade)
if(inByte == 'G') // Condição (Confirmar a atribuição de luminosidade)
{
for (int w=0; w<=30; w++)
{
digitalWrite(led, HIGH);
delay(15);
}
digitalWrite(led,LOW);
}
}
float h = dht.readHumidity(); // Ler a umidade
float t = dht.readTemperature(); // Ler a Temperatura em graus Celsius
float f = dht.readTemperature(true); // Ler a Temperatura em graus Fahrenheit
if (isnan(h) || isnan(t) || isnan(f)) // Condição (Verificar se houve falha na leitura do sensor)
{
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(h); // Enviar para monitor serial o valor lido da Umidade
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t); // Enviar para monitor serial o valor lido da Temperatura
Serial.print(" *C ");
Serial.print(f);
}