Hola, mi nombre es Jonathan, llevo poco tiempo programando arduino, y estoy en un proyecto el cual requiere que se regule la intensidad lumínica de una serie de leds mediante el sensor de temperatura DS18B20.
La programación actual es esta:
#include <OneWire.h>
#include <DallasTemperature.h>
int sonda1 = A5;
int sonda2 = A6;
int sonda3 = A7;
int resis1 = A0;
int resis2 = A1;
int resis3 = A2;
int value = 0;
int value2 = 0;
int value3 = 0;
int fadeval = 0;
int fadeval2 = 0;
int fadeval3 = 0;
OneWire ds(sonda1);
DallasTemperature sensors(&ds);
OneWire ds2(sonda2);
DallasTemperature sensors2(&ds2);
OneWire ds3(sonda3);
DallasTemperature sensors3(&ds3);
DeviceAddress Temperatura1;
float TemperaturaA;
float TemperaturaB;
float TemperaturaC;
float voltsa=0.0,tempa=0.0;
float voltsb=0.0,tempb=0.0;
float voltsc=0.0,tempc=0.0;
void setup ()
{
pinMode(A7,INPUT);
pinMode(A6,INPUT);
pinMode(A7,INPUT);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(5,OUTPUT);
Serial.begin(9600);
sensors.begin();
}
void loop (){
value = analogRead(TemperaturaA);
value2 = analogRead(TemperaturaB);
value3 = analogRead(TemperaturaC);
voltsa = value*5.0/1023;
tempa = voltsa*100;
voltsb = value2*5.0/1023;
tempb = voltsb*100;
voltsc = value3*5.0/1023;
tempc = voltsc*100;
if(value>=32.50){
digitalWrite(7,HIGH);
}
else{
for(fadeval = 0;fadeval<=255;fadeval+=5){
analogWrite(7,fadeval);}
for(fadeval = 255;fadeval>=255;fadeval-=5){
analogWrite(7,fadeval);}
}
if(value2>=32.50){
digitalWrite(6,HIGH);
}
else{
for(fadeval2 = 0; fadeval2<=255;fadeval+=5){
analogWrite(6,fadeval2);}
for(fadeval2 = 255;fadeval2>=0;fadeval2-=5){
analogWrite(6,fadeval2);}
}
if(value3>=32.50){
digitalWrite(5,HIGH);
}
else{
for(fadeval3 = 0;fadeval3<=255;fadeval3+=5){
analogWrite(5,fadeval3);}
for(fadeval3 = 255;fadeval3>=0;fadeval3-=5){
analogWrite(5,fadeval3);}
}
sensors.requestTemperatures();
TemperaturaA = sensors.getTempCByIndex(0);
Serial.print (TemperaturaA);
Serial.println (" C 1");
TemperaturaB = sensors2.getTempCByIndex(0);
Serial.print (TemperaturaB);
Serial.println (" C 2");
TemperaturaC = sensors3.getTempCByIndex(0);
Serial.print (TemperaturaC);
Serial.println (" C 3");
delay (500);
}
No estoy muy seguro de como esta hecha puesto que la eh hecho desde cero y le eh ido añadiendo diferentes partes de otros programas.
Me gustaría que alguien me dijera como se consigue regular la intensidad del LED según la temperatura que mida la sonda.
Muchas gracias.