Σελίδα 2 από 2 ΠρώτηΠρώτη 1 2
Εμφάνιση αποτελεσμάτων : 11 έως 20 από 20

Θέμα: Θερμομετρο Ψυγειου με ds18b20 και LCD

  1. #11
    Μέλος Το avatar του χρήστη navar
    Όνομα
    Kωνσταντίνος
    Εγγραφή
    May 2010
    Περιοχή
    τρικαλα
    Μηνύματα
    3.078

    Προεπιλογή

    άψογος Ηρακλή !!!
    αλήθεια αυτό το Μονοκότ τί είναι ?

    0 Not allowed! Not allowed!

  2. #12
    Μέλος Το avatar του χρήστη herctrap
    Όνομα
    Ηρακλής
    Εγγραφή
    May 2010
    Περιοχή
    Αιγάλεω / Πυλος
    Μηνύματα
    1.971

    Προεπιλογή

    ειναι αυτο που ντυνουν τα μοντελιστικα αεροπλανα


    0 Not allowed! Not allowed!

  3. #13
    Μέλος Το avatar του χρήστη j kalai
    Όνομα
    Γιαννης
    Εγγραφή
    Aug 2009
    Περιοχή
    Κορωπι
    Μηνύματα
    120

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από herctrap Εμφάνιση μηνυμάτων
    το καλωδιο για τα θερμομετρα περασε μεσα απο το σωληνακι για την εξαγωγη των νερων απο την καταψυξη
    Εκει θα εχεις προβλημα κατα την λειτουργια του ψυγειου λογο της κοιλιας που κανει ο σωληνας της αποχετευσης.
    Γιατι δεν το περασες μαζι με τα αλλα?

    0 Not allowed! Not allowed!

  4. #14
    Μέλος Το avatar του χρήστη herctrap
    Όνομα
    Ηρακλής
    Εγγραφή
    May 2010
    Περιοχή
    Αιγάλεω / Πυλος
    Μηνύματα
    1.971

    Προεπιλογή

    αν λες για τα νερα που βγαινουν δεν υπαρχει ακομα κανενα προβλημα

    0 Not allowed! Not allowed!

  5. #15
    Μέλος Το avatar του χρήστη j kalai
    Όνομα
    Γιαννης
    Εγγραφή
    Aug 2009
    Περιοχή
    Κορωπι
    Μηνύματα
    120

    Προεπιλογή

    Ναι για τα νερα στο ειπα.

    0 Not allowed! Not allowed!

  6. #16
    Μέλος Το avatar του χρήστη herctrap
    Όνομα
    Ηρακλής
    Εγγραφή
    May 2010
    Περιοχή
    Αιγάλεω / Πυλος
    Μηνύματα
    1.971

    Προεπιλογή

    ο θερμοστατης δεν ελεγε να κλεισει ακομα και οταν ρυθμισμενος στο 0 και η θερμοκρασια ηταν στο -19

    οποτε





    το ποντεσιομετρο ρυθμιζει το setpoint απο -25 εως -5

    αν η θερμοκρασια της καταψυξης ειναι ( setpoint + 0.50 ) τοτε η εξοδος στο pin 13 του ολοκληρωμενου ειναι HIGH

    αν ειναι ( setpoint - 0.50 ) τοτε η εξοδος ειναι LOW

    δυστιχως δεν καταφερα να το κανω να δουλεψει με triac(bt137 με moc3021), και δεν ειχα τον χρονο να το ψαξω να δω τι φταιει οταν κολλησει το ρελε το ξανα κοιταω













    0 Not allowed! Not allowed!

  7. #17
    Μέλος Το avatar του χρήστη herctrap
    Όνομα
    Ηρακλής
    Εγγραφή
    May 2010
    Περιοχή
    Αιγάλεω / Πυλος
    Μηνύματα
    1.971

    Προεπιλογή

    ο νεος κωδικας

    #include <OneWire.h>
    #include <DallasTemperature.h>
    #include <LiquidCrystal.h>

    //********** Hardware Parameters **********
    #define LightSensor A0
    #define SPoti A1
    #define Beeper 6
    #define Sensor 4
    #define Compressor 7
    #define LcdBackLight 5 // needs to be PWM
    #define GreenSintirisi A2
    #define RedSintirisi A4
    #define GreenKatapsixi A3
    #define RedKatapsixi A5
    #define LCD_RS 13
    #define LCD_E 12
    #define LCD_D4 9
    #define LCD_D5 10
    #define LCD_D6 11
    #define LCD_D7 8

    //********** Software Parameters **********
    #define IntroDelay 250
    #define HardwareIntroDelay 500
    #define IntroDelay 250
    #define HardwareIntroDelay 500

    #define LowVoltageRead 0
    #define HighVoltageRead 1023
    #define LowLcdBacklightPwmn 50
    #define HighLcdBacklightPwmn 255

    #define TEMPERATURE_PRECISION 12

    float CompressorDownSetLimit = -25.0;
    float CompressorUpSetLimit = -5.00;

    float tempSintirisiUpLimit = 10.0;
    float tempSintirisiDownLimit = 0.00;
    float tempKatapsixiUpLimit = -10.0;
    float tempKatapsixiDownLimit = -20.0;

    float tempSintirisi;
    float tempKatapsixi;
    float tempExwteriki1;
    float SetPoint;

    int beepCount;

    LiquidCrystal lcd(LCD_RS, LCD_E, LCD_D4, LCD_D5, LCD_D6, LCD_D7);
    OneWire oneWire(Sensor);
    DallasTemperature sensors(&oneWire);
    DeviceAddress sintirisi, katapsixi, exwteriki1;

    byte Top[8] = {
    B11111,
    B11111,
    B11111,
    B11111,
    B11111,
    B11111,
    B10001,
    B10001,
    };

    byte Bottom[8] = {
    B10001,
    B10001,
    B10001,
    B10001,
    B11111,
    B11111,
    B11111,
    B11111,
    };

    void setup()
    {
    pinMode(LightSensor,INPUT);
    pinMode(GreenSintirisi,OUTPUT);
    pinMode(RedSintirisi,OUTPUT);
    pinMode(GreenKatapsixi,OUTPUT);
    pinMode(RedKatapsixi,OUTPUT);
    pinMode(LcdBackLight,OUTPUT);
    pinMode(Beeper,OUTPUT);
    pinMode(Compressor,OUTPUT);

    Serial.begin(9600);
    lcd.begin(16, 2);
    sensors.begin();

    lcd.createChar(0, Top);
    lcd.createChar(1, Bottom);

    sensors.setResolution(sintirisi, 12);
    sensors.setResolution(katapsixi, 12);
    sensors.setResolution(exwteriki1, 12);

    sensors.getAddress(sintirisi, 0);
    sensors.getAddress(katapsixi, 1);
    sensors.getAddress(exwteriki1, 2);

    HardwareIntro();

    Intro();

    Sensors_Info();

    lcd.clear();
    }

    void loop()
    {
    analogWrite(LcdBackLight,map(analogRead(LightSensor),LowVoltageRead,HighVoltageRead,HighL cdBacklightPwmn,LowLcdBacklightPwmn));
    SetPoint = map(analogRead(SPoti),0,1023,CompressorDownSetLimit,CompressorUp SetLimit);
    GetTemps();
    printTemperature();
    Set_Leds_Alarm();
    Set_Compressor();
    Serial_output();
    delay(500);
    }

    void HardwareIntro()
    {
    digitalWrite(LcdBackLight,1);
    digitalWrite(GreenSintirisi,1);
    delay(HardwareIntroDelay);
    digitalWrite(LcdBackLight,0);
    digitalWrite(GreenSintirisi,0);
    digitalWrite(RedSintirisi,1);
    delay(HardwareIntroDelay);
    digitalWrite(LcdBackLight,1);
    digitalWrite(RedSintirisi,0);
    digitalWrite(RedKatapsixi,1);
    delay(HardwareIntroDelay);
    digitalWrite(LcdBackLight,0);
    digitalWrite(RedKatapsixi,0);
    digitalWrite(GreenKatapsixi,1);
    delay(HardwareIntroDelay);
    digitalWrite(LcdBackLight,1);
    digitalWrite(GreenKatapsixi,0);
    delay(HardwareIntroDelay);
    digitalWrite(GreenSintirisi,1);
    digitalWrite(RedSintirisi,1);
    digitalWrite(RedKatapsixi,1);
    digitalWrite(GreenKatapsixi,1);
    digitalWrite(Beeper,1);
    delay(HardwareIntroDelay);
    digitalWrite(GreenSintirisi,0);
    digitalWrite(RedSintirisi,0);
    digitalWrite(RedKatapsixi,0);
    digitalWrite(GreenKatapsixi,0);
    digitalWrite(Beeper,0);
    delay(HardwareIntroDelay);
    }

    void Intro()
    {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print(" Thermometer V1 ");
    delay(IntroDelay);
    lcd.setCursor(2, 1);
    lcd.print("b");
    delay(IntroDelay);
    lcd.print("y");
    lcd.print(" ");
    delay(IntroDelay);
    lcd.print("h");
    delay(IntroDelay);
    lcd.print("e");
    delay(IntroDelay);
    lcd.print("r");
    delay(IntroDelay);
    lcd.print("c");
    delay(IntroDelay);
    lcd.print("t");
    delay(IntroDelay);
    lcd.print("r");
    delay(IntroDelay);
    lcd.print("a");
    delay(IntroDelay);
    lcd.print("p");
    delay(IntroDelay);
    }

    void Sensors_Info()
    {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print(sensors.getDeviceCount(), DEC);
    lcd.print(" Sensors Found");

    lcd.setCursor(0, 1);
    printAddress(sintirisi);
    delay(1000);
    lcd.setCursor(0, 1);
    printAddress(katapsixi);
    delay(1000);
    lcd.setCursor(0, 1);
    printAddress(exwteriki1);
    delay(1000);
    }

    void printAddress(DeviceAddress deviceAddress)
    {
    for (uint8_t i = 0; i < 8; i++)
    {
    if (deviceAddress[i] < 16) lcd.print("0");
    lcd.print(deviceAddress[i], HEX);
    }
    }

    void GetTemps()
    {
    sensors.requestTemperatures();
    tempSintirisi = sensors.getTempC(sintirisi);
    tempKatapsixi = sensors.getTempC(katapsixi);
    tempExwteriki1 = sensors.getTempC(exwteriki1);
    }

    void printTemperature()
    {
    lcd.setCursor(0, 0);
    lcd.print(tempSintirisi);
    lcd.print((char)B11011111);
    lcd.print("C ");
    lcd.setCursor(0, 1);
    lcd.print(tempKatapsixi);
    lcd.print((char)B11011111);
    lcd.print("C ");
    lcd.setCursor(9, 0);
    lcd.print(tempExwteriki1);
    lcd.print((char)B11011111);
    lcd.print("C ");
    lcd.setCursor(9, 1);
    lcd.print("S:");
    lcd.print(int(SetPoint));
    lcd.print((char)B11011111);
    lcd.print("C ");
    }

    void Set_Leds_Alarm()
    {
    if ( ( tempSintirisi < tempSintirisiUpLimit ) && ( tempSintirisi > tempSintirisiDownLimit ) ){
    digitalWrite(GreenSintirisi,1);
    digitalWrite(RedSintirisi,0);
    }
    else
    {
    digitalWrite(GreenSintirisi,0);
    digitalWrite(RedSintirisi,1);
    }
    if ( ( tempKatapsixi < tempKatapsixiUpLimit ) && ( tempKatapsixi > tempKatapsixiDownLimit ) ){
    digitalWrite(GreenKatapsixi,1);
    digitalWrite(RedKatapsixi,0);
    }
    else
    {
    digitalWrite(GreenKatapsixi,0);
    digitalWrite(RedKatapsixi,1);
    }

    if ( beepCount == 900 )digitalWrite(Beeper,HIGH);
    else digitalWrite(Beeper,LOW);

    if ( ( tempSintirisi > tempSintirisiUpLimit ) || ( tempKatapsixi > tempKatapsixiUpLimit ) || ( tempSintirisi < tempSintirisiDownLimit ) || ( tempKatapsixi < tempKatapsixiDownLimit ) ){
    beepCount++;
    }
    else{
    beepCount = 0;
    }
    if ( beepCount > 3599 ) beepCount = 0;
    }

    void Set_Compressor(){
    if ( tempKatapsixi < ( SetPoint - 0.50 ) ) digitalWrite(Compressor,0);
    if ( tempKatapsixi > ( SetPoint + 0.50 ) ) digitalWrite(Compressor,1);
    }

    void Serial_output()
    {
    Serial.print((millis()/1000));
    Serial.print(";");
    Serial.print(int(tempSintirisi));
    Serial.print(",");
    Serial.print(int(( tempSintirisi - int(tempSintirisi) ) * 100));
    Serial.print(";");
    Serial.print(int(tempKatapsixi));
    Serial.print(",");
    Serial.print(int(( tempKatapsixi - int(tempKatapsixi) ) * 100));
    Serial.print(";");
    Serial.print(int(tempExwteriki1));
    Serial.print(",");
    Serial.print(int(( tempExwteriki1 - int(tempExwteriki1) ) * 100));
    Serial.print(";");
    Serial.print(int(SetPoint));
    Serial.print(",");
    Serial.print(int(( SetPoint - int(SetPoint) ) * 100));
    Serial.println();
    }

    0 Not allowed! Not allowed!

  8. #18
    Μέλος Το avatar του χρήστη j kalai
    Όνομα
    Γιαννης
    Εγγραφή
    Aug 2009
    Περιοχή
    Κορωπι
    Μηνύματα
    120

    Προεπιλογή

    Πως και δεν εβαλες εναν τετοιο http://www.lae-electronic.com/at2-5/default_eng.php θερμοστατη που ειναι ετοιμος και το μονο που χρειαζεται ειναι να ρυθμισεις θερμοκρασιες και αποψυξεις?

    0 Not allowed! Not allowed!

  9. #19
    Μέλος Το avatar του χρήστη minusplus
    Όνομα
    Δημήτρης
    Εγγραφή
    Apr 2011
    Περιοχή
    Χαλκίδα
    Μηνύματα
    294

    Προεπιλογή

    Πραγματικά πολύ ωραία η κατασκευή Ηρακλή. Μελετημένη μέχρι τη τελευταία λεπτομέρεια. Αλήθεια, πόσο χρόνο σου πήρε από τη μελέτη μέχρι την υλοποίηση?

    0 Not allowed! Not allowed!

  10. #20
    Μέλος Το avatar του χρήστη herctrap
    Όνομα
    Ηρακλής
    Εγγραφή
    May 2010
    Περιοχή
    Αιγάλεω / Πυλος
    Μηνύματα
    1.971

    Προεπιλογή

    σε ευχαριστω πολυ

    δεν μπορω να υπολογισω

    γιατι στην αρχη το ειχα σε breadboard πανω στο ψυγειο

    ( περιμενα να φτιαξω το etching tank μου - ωστε να βγαλω το Pcb )

    μιας και δεν τα καταφερνα το εκανα σε διατρητη για να τελειωνουμε

    μετα χαλασε και ο θερμοστατης οποτε επρεπε να το κανω και θερμοστατη

    αλλα ολα ηταν πολυ απλα βηματα για χρησιμοποιησα τον compiler του arduino ( μιας και υπαρχει ετοιμη βιβλιοθηκη για την LCD και το 1-wire )

    0 Not allowed! Not allowed!

Σελίδα 2 από 2 ΠρώτηΠρώτη 1 2

Παρόμοια Θέματα

  1. DS18B20 & arduino
    By Διογένης in forum Γενικά
    Απαντήσεις: 11
    Τελευταίο Μήνυμα: 01-09-17, 19:35
  2. Θερμομετρο με τον ICL7136 και θερμιστορ
    By Galileo in forum Μικροελεγκτές
    Απαντήσεις: 5
    Τελευταίο Μήνυμα: 27-04-12, 20:48
  3. Απαντήσεις: 9
    Τελευταίο Μήνυμα: 11-06-11, 00:38
  4. Θερμομετρο με 7 Segment και LM35 ( atmega328 )
    By herctrap in forum Παρουσίαση Ολοκληρωμένων Κατασκευών
    Απαντήσεις: 1
    Τελευταίο Μήνυμα: 10-01-11, 13:11
  5. Διπλο θερμομετρο και Ρολοϊ
    By Thanos10 in forum Παρουσίαση Ολοκληρωμένων Κατασκευών
    Απαντήσεις: 15
    Τελευταίο Μήνυμα: 13-12-09, 13:39

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας