Alguem me ajuda a juntar esses dois codigos

int sensor = 0;      //Pino analógico em que o sensor está conectado.
int valorSensor = 0; //Usada para ler o valor do sensor em tempo real.
 
const int ledVerde = 8;
const int ledAmarelo = 9;
const int ledVermelho = 10;
 
//Função setup, executado uma vez ao ligar o Arduino.
void setup(){
  //Ativando o serial monitor que exibirá os valores lidos no sensor.
  Serial.begin(9600);
   
  //Definindo pinos digitais dos leds como de saída.
  pinMode(ledVerde,OUTPUT);
  pinMode(ledAmarelo,OUTPUT);
  pinMode(ledVermelho,OUTPUT);
}
 
//Função loop, executado enquanto o Arduino estiver ligado.
void loop(){
   
  //Lendo o valor do sensor.
  int valorSensor = analogRead(sensor);
   
 
  //Valores da luminosidade podem ser alterados conforme necessidade.
 
  //Luminosidade baixa.
  if (valorSensor /code> 750) {
    apagaLeds();
    digitalWrite(ledVermelho,HIGH);
  }
   
  //Luminosidade média.
  if (valorSensor >= 750 && valorSensor <= 800) {
    apagaLeds();
    digitalWrite(ledAmarelo,HIGH);
  }
   
  //Luminosidade alta.
  if (valorSensor > 800) {
    apagaLeds();
    digitalWrite(ledVerde,HIGH);
  }
   
  //Exibindo o valor do sensor no serial monitor.
  Serial.println(valorSensor);
   
  delay(50);
}
 
//Função criada para apagar todos os leds de uma vez.
void apagaLeds() {
  digitalWrite(ledVerde,LOW);
  digitalWrite(ledAmarelo,LOW);
  digitalWrite(ledVermelho,LOW);
#include "LiquidCrystal.h"
#include "Limits.h"
const int sensorLuz  = 0; //Pino analógico que o sensor de luz está conectado.
const int sensorTemp = 1; //Pino analógico que o sensor de temperatura está conectado.
 
//Variáveis
int valorSensorLuz  = 0 //usada para ler o valor do sensor de luz.
int valorSensorTemp = 0 //usada para ler o valor do sensor de temperatura.
int menorValorTemp  = INT_MAX; //usada para armazenar o menor valor da temperatura.
 
//Criando um objeto da classe LiquidCrystal e
//inicializando com os pinos da interface.
LiquidCrystal lcd(9, 8, 5, 4, 3, 2);
 
void setup() {
  //Inicializando o LCD e informando o tamanho de 16 colunas e 2 linhas
  //que é o tamanho do LCD JHD 162A usado neste projeto.
  lcd.begin(16, 2);   
}
 
void loop() {
  //Lendo o valor do sensor de luz
  valorSensorLuz  = analogRead(sensorLuz);
   
  //Para evitar as grandes variações de leitura do componente
  //LM35 são feitas 8 leitura é o menor valor lido prevalece. 
  menorValorTemp  = INT_MAX; //Inicializando com o maior valor int possível
  for (int i = 1; i <= 8; i++) {
    //Lendo o valor do sensor de temperatura.
    valorSensorTemp = analogRead(sensorTemp);  
  
    //Transformando valor lido no sensor de temperatura em graus celsius aproximados.
    valorSensorTemp *= 0.54 ;
     
    //Mantendo sempre a menor temperatura lida
    if (valorSensorTemp < menorValorTemp) {
      menorValorTemp = valorSensorTemp;
    }
    
   delay(150);
  }  
     
  //Exibindo valor da leitura do sensor de temperatura no display LCD.
  lcd.clear();  //limpa o display do LCD.    
  lcd.print("Temp: ");  //imprime a string no display do LCD.                
  lcd.print(menorValorTemp);
  lcd.write(B11011111); //Simbolo de graus celsius
  lcd.print("C");
   
  //Exibindo valor da leitura do sensor de luz no display LCD.
  lcd.setCursor(0,1);  //posiciona o cursor na coluna 0 linha 1 do LCD.
  lcd.print("Luz: ");  //imprime a string no display do LCD.      
  lcd.print(valorSensorLuz); 
    
  delay(2000); //aguarda 2 segundos
}
eu tinha juntado, mas os valores do ldr ficaram variando loucamente kkkk e esse é o problema
links dos dois projetos 

Exibições: 562

As respostas para este tópico estão encerradas.

Respostas a este tópico

Olhando por cima o segundo código, vemos o seguinte:

const int sensorLuz  = 0; //Pino analógico que o sensor de luz está conectado.
const int sensorTemp = 1; //Pino analógico que o sensor de temperatura está conectado.
Você está usando usando os pinos 0 e 1 realmente?
Na verdade os pinos 0 e 1 são os pinos tx-rx do arduino
Os analógicos são A0 e A1 para cima...
Isso não teria problema se o sensor for digital e as ligações estão corretas (somente o comentário estaria errado). Caso contrário, isso teria que ser corrigido.
Verifique também se os dois códigos estão usando o mesmos pinos...

sim, um dos pinos esta o sensor de luz e o outro o de temperatura 

quando eu juntei os dois ficou assim

#include "LiquidCrystal.h"
#include "Limits.h"
const int sensorLuz = 0; //Pino analógico que o sensor de luz está conectado.
const int sensorTemp = 1; //Pino analógico que o sensor de temperatura está conectado.

const int ledVerde = 13;
const int ledAmarelo = 12;
const int ledVermelho = 11;


int valorSensorLuz = 0; //usada para ler o valor do sensor de luz.
int valorSensorTemp = 0; //usada para ler o valor do sensor de temperatura.
int menorValorTemp = INT_MAX; //usada para armazenar o menor valor da temperatura.

//Criando um objeto da classe LiquidCrystal e
//inicializando com os pinos da interface.
LiquidCrystal lcd(9, 8, 5, 4, 3, 2);

void setup() {

Serial.begin(9600);
lcd.begin(16, 2);

pinMode(ledVerde,OUTPUT);
pinMode(ledAmarelo,OUTPUT);
pinMode(ledVermelho,OUTPUT);
}


void loop() {
//Lendo o valor do sensor de luz
valorSensorLuz = analogRead(sensorLuz);

//Luminosidade baixa.
if (valorSensorLuz < 750) {
apagaLeds();
digitalWrite(ledVermelho,HIGH);
}

//Luminosidade média.
if (valorSensorLuz >= 750 && valorSensorLuz <= 800) {
apagaLeds();
digitalWrite(ledAmarelo,HIGH);
}

//Luminosidade alta.
if (valorSensorLuz > 800) {
apagaLeds();
digitalWrite(ledVerde,HIGH);
}

//Exibindo o valor do sensor no serial monitor.
Serial.println(valorSensorLuz);

delay(50);

//Para evitar as grandes variações de leitura do componente
//LM35 são feitas 8 leitura é o menor valor lido prevalece.
menorValorTemp = INT_MAX; //Inicializando com o maior valor int possível
for (int i = 1; i <= 8; i++) {
//Lendo o valor do sensor de temperatura.
valorSensorTemp = analogRead(sensorTemp);

//Transformando valor lido no sensor de temperatura em graus celsius aproximados.
valorSensorTemp *= 0.54 ;

//Mantendo sempre a menor temperatura lida
if (valorSensorTemp < menorValorTemp) {
menorValorTemp = valorSensorTemp;
}

delay(150);
}

//Exibindo valor da leitura do sensor de temperatura no display LCD.
lcd.clear(); //limpa o display do LCD.
lcd.print("Temp: "); //imprime a string no display do LCD.
lcd.print(menorValorTemp);
lcd.write(B11011111); //Simbolo de graus celsius
lcd.print("C");

//Exibindo valor da leitura do sensor de luz no display LCD.
lcd.setCursor(0,1); //posiciona o cursor na coluna 0 linha 1 do LCD.
lcd.print("Luz: "); //imprime a string no display do LCD.
lcd.print(valorSensorLuz);

delay(2000); //aguarda 2 segundos
}

void apagaLeds() {
digitalWrite(ledVerde,LOW);
digitalWrite(ledAmarelo,LOW);
digitalWrite(ledVermelho,LOW);
}

eu mudei as portas digitais dos leds pra n bater com os pinos do lcd

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço