Hirdetés

Új hozzászólás Aktív témák

  • leventekov

    csendes újonc

    igy ki be kapcsolja de nem veszi figyelembe az idozitest.

    itt a kod

    nem tudom mi a gond benne

    #include <Wire.h>
    #include <LiquidCrystal.h>
    //declare variables
    float tempC;
    float temp2C;
    int tempPin = A0;
    int temp2Pin = A1;

    int hour;
    int minute;
    int second;
    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

    int kmeleg = 6; // 24w neoncso T5
    int khideg = 8; // 24w neoncso T5
    int nmeleg = 10; // 54w neoncso T5
    int nhideg = 13; // 54w neoncso T5

    const byte kapcsolok = 1;
    const int prell = 1000;
    const byte pushbutton[kapcsolok] = { 9};
    const byte led[kapcsolok] = {6};
    boolean toggle[kapcsolok];
    boolean button[kapcsolok];
    boolean ledstate[kapcsolok];
    unsigned long prelltime[kapcsolok];

    void setup()
    {
    for (byte i = 0; i < kapcsolok; i++)
    {
    pinMode(pushbutton, INPUT_PULLUP);
    pinMode(led(i), OUTPUT);
    digitalWrite(led(i), HIGH);
    }
    lcd.begin(16, 4);
    Wire.begin();
    pinMode(kmeleg, OUTPUT);
    digitalWrite(kmeleg, HIGH);
    pinMode(khideg, OUTPUT);
    digitalWrite (khideg,HIGH);
    pinMode(nmeleg, OUTPUT);
    digitalWrite(nmeleg, HIGH);
    pinMode(nhideg, OUTPUT);
    digitalWrite (nhideg, HIGH);

    }
    void loop()
    {

    Wire.beginTransmission(104);
    Wire.write(0x00);
    Wire.endTransmission();
    Wire.requestFrom(104, 7);
    second = Wire.read();
    minute = Wire.read();
    hour = Wire.read();
    hour=hour/16 * 10 + hour % 16;
    minute=minute/16 * 10 + minute % 16;
    second=second/16 * 10 + second % 16;

    lcd.setCursor(1,0);
    lcd.print("Time ");
    lcd.print(hour);
    lcd.print(":");
    if (minute < 10) { lcd.print("0"); }
    lcd.print(minute);
    lcd.print(":");
    if (second < 10) { lcd.print("0"); }
    lcd.print(second);

    tempC = analogRead(tempPin); //read the value from the sensor
    tempC = (5.0 * tempC * 100.0)/1024.0; //convert the analog data to temperature
    temp2C = analogRead(temp2Pin); //read the value from the sensor
    temp2C = (5.0 * temp2C * 100.0)/1024.0; //convert the analog data to temperature

    // print result to lcd display
    lcd.setCursor(1,1);
    lcd.print("Viz");
    lcd.setCursor(10, 1);
    lcd.print(tempC,1);
    lcd.print("'C");

    lcd.setCursor(1,3);
    lcd.print("Szoba");
    lcd.setCursor(10, 3);
    lcd.print(temp2C,1);
    lcd.print("'C");
    //----------------------------------------------------------------------------------
    //------------- Be 7:00 18:00 Ki
    if (hour*60+minute >= 420 && hour*60+minute <=1140) //1080
    {digitalWrite (khideg,HIGH);}
    else
    {digitalWrite (khideg,LOW);}
    //----------------------------------------------------------------------------------
    //------------ Be 10:00 22:00 ki
    if (hour*60+minute >= 600 && hour*60+minute <=1320) //1320
    {digitalWrite (kmeleg,HIGH);}
    else
    {digitalWrite (kmeleg,LOW);}
    //-----------------------------------------------------------------------------------
    //------------- Be: 12:00 Ki: 17:00
    if (hour*60+minute >=720 && hour*60+minute <=1080 ) //1020
    {digitalWrite (nmeleg, HIGH);}
    else
    {digitalWrite (nmeleg, LOW);}
    //--------------------------------------------------------------------------------
    //------------- Be: 8:00 Ki: 17:00
    if (hour*60+minute >= 480 && hour*60+minute <=1020) //960
    {digitalWrite (nhideg, HIGH);}
    else
    {digitalWrite (nhideg, LOW);}
    for (byte i = 0; i < kapcsolok; i++)
    {
    button(i) = digitalRead(pushbutton(i));
    if ((button(i) == HIGH) && (toggle(i)))
    {
    toggle(i) = false;
    ledstate(i) = !ledstate(i);
    prelltime(i) = millis() + prell;
    }
    digitalWrite(led(i), ledstate(i));
    if ((button(i) == LOW) && (!toggle(i)) && (millis() > prelltime(i)))
    {
    toggle(i) = true;
    }
    }
    }

Új hozzászólás Aktív témák