Sunteți pe pagina 1din 3

#include <LEDDisplay.

h>

LEDDisplay *led;

float tempC;
int tempPin = A1;
int millisecondsPerCount = 2000;
float counter;

int number=0;
unsigned long lastUpdate;
int var=0;

int edo3 = 0; //CEL A5


int edo2 = 0; //KEL A4
int edo1 = 0; //CENTIFRADOS A3

int kelv;
int far;

int bot1=A3;
int bot2=A4;
int bot3=A5;

void setup()
{
Serial.begin(9600);
pinMode(bot1, INPUT);
pinMode(bot2, INPUT);
pinMode(bot3, INPUT);

int digitFlagPins[] = {12, 10, 11};


int segmentPins[] = {2, 3, 4, 5 ,6 ,7 ,8, 9};
int decimalPointPin = 9;
led = new LEDDisplay(3, digitFlagPins, segmentPins, decimalPointPin);
}

void loop()
{
Serial.print("Temperatura:");
tempC = analogRead(tempPin); //read the value from the sensor
tempC = (5.0 * tempC * 100.0)/1023.0; //convert the analog data to temperature
Serial.print((byte)tempC);
Serial.println();
kelv=tempC+273;
far=(tempC*1.8)+(32);
unsigned long now = millis();

edo1 = digitalRead(bot1);
edo2 = digitalRead(bot2);
edo3 = digitalRead(bot3);
if ((edo1 == HIGH)&&(edo2 == LOW)&&(edo3 == LOW)) {
var=1;
}
if((edo1 == LOW)&&(edo2 == HIGH)&&(edo3 == LOW)) {
var=2;
}
if((edo1 == LOW)&&(edo2 == LOW)&&(edo3 == HIGH)) {
var=4;
}

if((edo1 == LOW)&&(edo2 == LOW)&&(edo3 == LOW)) {


var=0;
}

switch (var) {
case 1:
if (now - lastUpdate > millisecondsPerCount)
{
lastUpdate = now;
counter = tempC;

number = counter;
for(int i = 0; i <= 3; i++)
{
led->displayNumber(number % 10, i);
delay(2);
number = number / 10;
}
break;

case 2:
if (now - lastUpdate > millisecondsPerCount)
{
lastUpdate = now;
counter = kelv;

number = counter;
for(int i = 0; i <= 3; i++)
{
led->displayNumber(number % 10, i);
delay(2);
number = number / 10;
}
break;

case 4:
if (now - lastUpdate > millisecondsPerCount)
{
lastUpdate = now;
counter = far;

number = counter;
for(int i = 0; i <= 3; i++)
{
led->displayNumber(number % 10, i);
delay(2);
number = number / 10;
}
break;

case 3:
if (now - lastUpdate > millisecondsPerCount)
{
lastUpdate = now;
counter = 0;

number = counter;
for(int i = 0; i <= 3; i++)
{
led->displayNumber(number % 10, i);
delay(2);
number = number / 10;
}
break;

}
}

S-ar putea să vă placă și