|
Εγγραφή | Συχνές Ερωτήσεις | Social Groups | Ημερολόγιο | Αναζήτηση | Σημερινά Μηνύματα | Σημειώστε όλα τα forums ως διαβασμένα |
DIY . Φτιάχτο μόνος σου Ο τίτλος τα λέει όλα. |
|
Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#39
|
||||
|
||||
![]()
Με αφορμη την εργασια που παραδινω αυτην την βδομαδα, καθισα και ψιλομαζεψα κωδικα και σχεματικα .
ο κωδικας. #include <LiquidCrystal.h> #include <OneWire.h> LiquidCrystal lcd(5, 4, 3, 2, 1, 0); int DS18S20_Pin = 6; OneWire ds(DS18S20_Pin); int b_up=7; int b_down=8; int state=25; int buttonStateUp = 0; int buttonStateDown = 0; int heat = 9; int cool = 10; int heatstart=0; int coolstart=0; int beeper=13; long temptime=0; long n=0; void setup() { lcd.begin(16, 2); lcd.print("*Temperature*"); lcd.setCursor(0,1); lcd.print(" *Controller*"); delay(5000); pinMode(b_up, INPUT); pinMode(b_down, INPUT); pinMode(heat, OUTPUT); pinMode(cool, OUTPUT); pinMode(beeper,OUTPUT); } void loop() { temptime=millis(); buttonStateUp=digitalRead(b_up); buttonStateDown=digitalRead(b_down); if (buttonStateUp==HIGH & state<3 ![]() { state= state+1; buttonStateUp=LOW; lcd.setCursor(13, 1); lcd.print(state); } if (buttonStateDown==HIGH&state>16) { state= state-1; buttonStateDown=LOW; lcd.setCursor(13, 1); lcd.print(state); } delay(150); float temperature = getTemp(); if (temptime>=n+3000) { n=temptime; if (temperature>800|temperature<-800) { lcd.print("NO SENSOR..no sensor..NO SENSOR..no sensor..NO SENSORNO SENSOR..no sensor..NO SENSOR..no sensor..NO SENSOR") ; delay(500); } else { /*if (temperature>30&temperature<14) { digitalWrite(beeper,HIGH); digitalWrite(beeper,LOW); delay(500); }*/ if (temperature<state) { digitalWrite(heat,HIGH); } else digitalWrite(heat,LOW); if (temperature> state) { digitalWrite(cool,HIGH); } else digitalWrite(cool,LOW); lcd.setCursor(0,0); lcd.print("RealTime|"); lcd.print("Control"); lcd.setCursor(0, 1); lcd.print(" "); lcd.print(temperature); lcd.print("C | To:"); lcd.print(state); lcd.print("C "); delay(200); } } } float getTemp(){ byte data[12]; byte addr[8]; if ( !ds.search(addr)) { ds.reset_search(); return -1000; } if ( OneWire::crc8( addr, 7) != addr[7]) { Serial.println("CRC is not valid!"); return -1000; } if ( addr[0] != 0x10 && addr[0] != 0x2 ![]() Serial.print("Device is not recognized"); return -1000; } ds.reset(); ds.select(addr); ds.write(0x44,1); byte present = ds.reset(); ds.select(addr); ds.write(0xBE); for (int i = 0; i < 9; i++) { data[i] = ds.read(); } ds.reset_search(); byte MSB = data[1]; byte LSB = data[0]; float tempRead = ((MSB << ![]() float TemperatureSum = tempRead / 16; return TemperatureSum; } ο κωδικας ενδεχεται να εχει και καποια junk μεσα , ειναι απο τις αρχες που ειχα πετυχει αυτο που ηθελα αλλα δεν τον ειχα καθαρισει.. βαρεθηκα να τα βγαλω ![]() ![]()
__________________
|
Συνδεδεμένοι χρήστες που διαβάζουν αυτό το θέμα: 1 (0 μέλη και 1 επισκέπτες) | |
Εργαλεία Θεμάτων | |
Τρόποι εμφάνισης | |
|
|
![]() |
||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
Controller θερμοκρασιας stc-1000 | klipitiklopos | Εξοπλισμός - Τεχνολογία Γλυκού νερού | 17 | 02-07-16 10:40 |
controller θερμοκρασιας | giwrgos rott | Εξοπλισμός - Τεχνολογία Γλυκού νερού | 36 | 07-06-14 20:31 |