Errores para poder establecer el programa

Hola a todos soy nueva en esto demasiadoTexto preformateado diría yo
Porfis ayúdenme no le encuentro los errores para solucionarlos
Solucionó uno y sale otro y así me trae
Este es el programa que llevo hasta ahorita ahun faltan más cosas pero pues aun no logro hacer que funcione esto


#include <TimerOne.h>
#include <DHT.h>
#define DHTPIN 5
#define DHTTYPE DHT11
 DHT dht(DHTPIN, DHTTYPE);//
 
#include <LiquidCrystal_I2C.h>//libreria para LCD
#include <Wire.h>//Libreria que permite conectarse con dispositivos por el bus I2C


LiquidCrystal_I2C lcd(0x27,16,2);



float Setpoint = 26;       // Celsius
int vdeseado=30;

#define SPEED 40

#define GATE_IMPULSE 5

#define FREQ 60

int dimmerPin[4]={11,12};
int acd = 12;//Declaro constante entera y le asigno el pin 12
const int zeroCrossPin = 5;//Declaro una constante entera y le asigno el pin 2

// Constantes de PID/Control proporcional
int ut=0;
int vactual;
int error=0;
int kp=2;

unsigned int  CH1,CH2;
unsigned int  buf_CH1,buf_CH2;
unsigned char clock_cn;    
unsigned int  clock_tick;      
bool flagDim[4];
unsigned char date;
int dimmerValue;
int i=0;
int zero_crosss_int;
int timerIsr;
#define buf_CH1DIMM_VALUE;
#define buf_CH2DIMM_VALUE;
#define CH3==;
#define CH4==;

byte data = 0;
long response = 200;

void setup() {
  dht.begin();
   Serial.begin(115200); //initialize the serial transmition 
lcd.init(); //Inicializo el LCD
 lcd.backlight();//Encendiendo la luz de fondo
 
   for(int i=0;i<4;i++) pinMode(dimmerPin[i], OUTPUT);
 pinMode(12,OUTPUT);//declaro PIN 12 como salida
 
  attachInterrupt(digitalPinToInterrupt(3), zero_crosss_int, RISING);
  Timer1.initialize(40); 
  Timer1.attachInterrupt( timerIsr );

  flagDim[0]=1;
  flagDim[1]=1;
  flagDim[2]=0;
  flagDim[3]=1;
  
   buf_CH1DIMM_VALUE(100);
   buf_CH2DIMM_VALUE(100); 

 

}


void loop () {
   
  float h = dht.readHumidity();
  float vactual = dht.readTemperature();
  error=vdeseado-vactual;
  ut= kp*error;
  if(error>0)
 lcd.setCursor(0, 0);// Coloco el cursor enla columna 0 fila 0
 lcd.print("TEMP ");// 
 lcd.setCursor(6,0);//Coloco el cursor enn la columna 6 y fila 0
 Serial.print(vactual);//
 lcd.print(vactual);
 Serial.println(vactual);//
 Serial.println(error);//
 lcd.setCursor(0,1);//Coloco el cursor en la columna 0 fila 1
 lcd.print (vdeseado);
lcd.setCursor(2,1);
 lcd.print("C");
 lcd.setCursor (11,1);
  lcd.print (error);
 lcd.setCursor(5,1);
 lcd.print("error=");
 Serial.println(vactual);
 delay(3000); 
 
 float f = dht.readTemperature(true);
  
  
  error=vdeseado-vactual;
  ut= kp*error;
 
  
   
   if (Serial.available());
   date=Serial.read();
   dimmerValue=map(date,48,57,100,0);
   Serial.println(dimmerValue);
   buf_CH1DIMM_VALUE(dimmerValue);  
  }
 for (i=255;i>1;i--) {buf_CH1DIMM_VALUE(i); delay(SPEED);}
for (i=255;i>1;i--) {buf_CH2DIMM_VALUE(i); delay(SPEED);}
  for (i=0;i<255;i++) {buf_CH1DIMM_VALUE(i); delay(SPEED);}    
  for (i=0;i<255;i++) {buf_CH2DIMM_VALUE(i); delay(SPEED);}

if (isnan(h) || isnan(vactual) || isnan(f)) {// Comprueba si alguna lectura falla, y sale rápidamente con return (para intentarlo de nuevo).
    Serial.println("¡Error al leer desde el sensor DHT!");
   return;
}
}
void serialEvent(){
if (Serial.available());
   date=Serial.read();
  
}
void timer()
{    
    clock_tick++;

    if (clock_cn) 
     {
      clock_cn++;
      
       if (clock_cn==GATE_IMPULSE)
       {
        digitalWrite(dimmerPin[0], LOW);
        digitalWrite(dimmerPin[1], LOW);
        digitalWrite(dimmerPin[2], LOW); 
        digitalWrite(dimmerPin[3], LOW);

        clock_cn=0;
       }
     }
   
        if (CH1==clock_tick && flagDim[0]==1)
         {
          digitalWrite(dimmerPin[0], HIGH);
          clock_cn=1;
         }  
    if (CH2==clock_tick && flagDim[1]==1)
            {
             digitalWrite(dimmerPin[1], HIGH);
             clock_cn=1;
            }  
        
              if (CH3==clock_tick && flagDim[2]==1)
               {
                digitalWrite(dimmerPin[2], HIGH);
                clock_cn=1;
               }  
    
                 if (CH4==clock_tick && flagDim[3]==1)
                  {
                   digitalWrite(dimmerPin[3], HIGH);
                   clock_cn=1;
                  }   



                  
}

 
void zero_crosss_int()

  CH1=buf_CH1;
   CH2=buf_CH2;
   

  
  clock_tick=0;        
}

unsigned int DIMM_VALUE (unsigned char level)
//{
 unsigned int buf_level;

 if (level < 26)  {level=26;}
 if (level > 229) {level=229;}
  
 return ((level*(FREQ))/256)*10;  

}

Su publicacion se MUEVE a su ubicacion actual ya que es mas adecuada.

@marlau718 Por favor edita tu post y adjunta el código de acuerdo a las Normas del Foro en Español, punto 7.
También usa la opción "Autoformato" del menú "Herramientas" de la IDE antes de copiar el código así nos facilitas su lectura.

Ya corregi el formato para que se viera sin moverse

Lamento decirte que tu código está repleto de errores.

Para empezar

#define buf_CH1DIMM_VALUE;
#define buf_CH2DIMM_VALUE;
#define CH3==;
#define CH4==;

#define no lleva el terminador ";" (salvo excepciones que no son estas)

Y, por ej.,

if (CH3==clock_tick && flagDim[2]==1)

Terminará compilado como

if (clock_tick && flagDim[2]==1)

al reemplazar el término CH3== por "" (vacío, nada, o como prefieras llamarlo.

Con

buf_CH1DIMM_VALUE(100); 
buf_CH2DIMM_VALUE(100); 

no sé que pretendes lograr.
Tienes el mismo problema, por los define terminará en algo así

(100)
(100)

Y aunque no sea como lo digo, no hay funciones definidas con esos nombres, no hay arrays definidos con esos nombres, asi no se define un array y además le falta el ";" final.

Y esto es solo como para empezar a revisar. :man_facepalming:t2:

1 Like

:pleading_face: plis Help me :pray: se supone que lo que quiero lograr es que el foco decienda su luminosidad conforme llega al setpoint :pleading_face: llegando al set point que se apague

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.