top of page
logo_unisal.png

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);
}

bottom of page