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