Sto smanettando con Arduino e sto provando di fare un sensore di t° che acenda
il LED verde quando la t° è di 20°
il LED rosso quando è sotto
il LED blue quando è sopra
…Ma non si accende il LED
Il sensore di t° legge, lo vedo nel serial.
qui il mio sketch
const int sensorPin = A0;
const float baselineTemp = 20.0;
const int redLEDPin = 12;
const int blueLEDPin = 11;
const int greenLEDPin = 10;
int redValue = 0;
int blueValue = 0;
int greenValue = 0;
void setup()
{
Serial.begin(9600);
for(int pinNumber = 10; pinNumber < 13; pinNumber ++)
{
pinMode(pinNumber, OUTPUT);
//digitalWrite(pinNumber, LOW);
}
}
void loop()
{
int sensorVal = analogRead(sensorPin);
Serial.print("sensore Value : ");
Serial.print(sensorVal);
//convertire la ADC in tensione
float voltage = (sensorVal/1024.0) * 5.0;
Serial.print(", Volts: ");
Serial.print(voltage);
Serial.print(", degrees C: ");
//convertire la tensione in t°
float temperature = (voltage - .5) * 100;
Serial.println(temperature);
if(temperature < baselineTemp)
{
digitalWrite(redLEDPin, HIGH);
digitalWrite(blueLEDPin, LOW);
digitalWrite(greenLEDPin, LOW);
}
else if (temperature > baselineTemp)
{
digitalWrite(redLEDPin, LOW);
digitalWrite(blueLEDPin, HIGH);
digitalWrite(greenLEDPin, LOW);
}
else if (temperature == 20);
{
digitalWrite(redLEDPin, LOW);
digitalWrite(blueLEDPin, LOW);
digitalWrite(greenLEDPin, HIGH);
}
}
const int sensorPin = A0;
const float baselineTemp = 20.0;
const int redLEDPin = 12;
const int blueLEDPin = 11;
const int greenLEDPin = 10;
int redValue = 0;
int blueValue = 0;
int greenValue = 0;
void setup()
{
Serial.begin(9600);
for(int pinNumber = 10; pinNumber < 13; pinNumber ++)
{
pinMode(pinNumber, OUTPUT);
//digitalWrite(pinNumber, LOW);
}
}
void loop()
{
int sensorVal = analogRead(sensorPin);
Serial.print("sensore Value : ");
Serial.print(sensorVal);
//convertire la ADC in tensione
float voltage = (sensorVal/1024.0) * 5.0;
Serial.print(", Volts: ");
Serial.print(voltage);
Serial.print(", degrees C: ");
//convertire la tensione in t°
float temperature = (voltage - .5) * 100;
Serial.println(temperature);
if(temperature < baselineTemp)
{
digitalWrite(redLEDPin, HIGH);
digitalWrite(blueLEDPin, LOW);
digitalWrite(greenLEDPin, LOW);
}
else if (temperature >= baselineTemp + 2)
{
digitalWrite(redLEDPin, LOW);
digitalWrite(blueLEDPin, HIGH);
digitalWrite(greenLEDPin, LOW);
}
else if (temperature > baselineTemp &&
temperature < baselineTemp +2);
{
digitalWrite(redLEDPin, LOW);
digitalWrite(blueLEDPin, LOW);
digitalWrite(greenLEDPin, HIGH);
}
}
Adesso dovrebbe acendere rosso se < baselineTemp
blu se > baselineTemp +2
verde se > baselineTemp ma < baselinetemp +2
PERO’
il LED si accende si blu e di rosso ma non di verde.
Quando si dovrebbe acendere di verde imane spento.
Le t° sono giuste le monitoro col serial.