Hello, i’m working on a simple project, i’m just a beginner with arduino.
I have 2x Ds18b20 temp sensor on 1 wire mode linked on digital pin 3. My code is reading the 2 temperatures, and while their sum is higher than a certain value, i’m lighting a led with a simple IF construct. Everything works fine, but the problem is the light of the led is very dim, while when i previously tried simple codes to light up leds it was MUCH brighter.
the temp sensor are linked like this:
http://blog.lampugnani.org/wp-content/2010/04/DS18B201.png
while i have the led connected in digital pin n.4 with the anode, and to the ground with a 220ohm res with the cathode. I also tried to remove the resistance to have more current on the led, but the light was the same.
Also i tried different leds, same as before.
Any advice? thanks in advance
edit: i tried the example for the blinking led in the same config, just removing the 2 sensor, and the light was much brighter. Is it possible that both sensor are using too much power?
the code i’m using is the following
// This Arduino sketch reads DS18B20 "1-Wire" digital
// temperature sensors.
// Tutorial:
#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into pin 3 on the Arduino
#define ONE_WIRE_BUS 3
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
DeviceAddress insideThermometer = { 0x28, 0x78, 0xE5, 0x74, 0x05, 0x00, 0x00, 0xBC };
DeviceAddress outsideThermometer = { 0x28, 0x55, 0x73, 0x97, 0x04, 0x00, 0x00, 0x01 };
const float soglia=45.0;
void setup(void)
{
// start serial port
Serial.begin(9600);
// Start up the library
sensors.begin();
// set the resolution to 10 bit (good enough?)
sensors.setResolution(insideThermometer, 10);
sensors.setResolution(outsideThermometer, 10);
//for(int pin=2;pin<7;pin++){
//pinMode(pin, OUTPUT);
//digitalWrite(pin, LOW);
pinMode(5, OUTPUT);
digitalWrite(5, LOW);
//}
}
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00) {
Serial.print("Error getting temperature");
} else {
Serial.print("C: ");
Serial.print(tempC);
}
}
void loop(void)
{
delay(2000);
float t1=sensors.getTempC(insideThermometer);
float t2=sensors.getTempC(outsideThermometer);
float somma=t1+t2;
Serial.print("Getting temperatures...\n\r");
sensors.requestTemperatures();
Serial.print("somma: ");
Serial.print(somma);
Serial.print("\n\r");
Serial.print("Inside temperature is: ");
printTemperature(insideThermometer);
Serial.print("\n\r");
Serial.print("Outside temperature is: ");
printTemperature(outsideThermometer);
Serial.print("\n\r\n\r");
if (somma>soglia) {
digitalWrite(4, HIGH);
Serial.print("somme>soglia: ");
Serial.print("\n\r");
}
}