• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Sterownik zaworu czterodrożnego do CO
#1
Witam . Próbuję wykonać układzik który przez serwo będzie sterował pracą zaworu czterodrożnego w instalacji centralnego ogrzewania .Nie będę opisywał działania takiego zaworu i w jakim celu jest montowany bo zainteresowani wiedzą o co chodzi . Założenia . Na piecu zamontowany jest czujnik który na bieżąco monitoruje temp. na piecu . W programie mam zadeklarowaną temperaturę do jakiej ma dążyć piec (serwo zamontowane na zawór czterodrożny) . Układ mierzy temperaturę i jeżeli jest ona za niska od deklarowanej - przestawia serwo o np. 5stopni w prawo , czeka 30 sekund i jeżeli nadal jest za niska to znowu przesuwa o  stopni w prawo itd aż do osiągnięcia zadanej temperatury . Odwrotna sytuacja gdy temperatura jest za wysoka od temperatury zadanej . Wtedy - układ mierzy temperaturę i jeżeli jest ona za wysoka od deklarowanej - przestawia serwo o np. 5stopni w lewo , czeka 30 sekund i jeżeli nadal jest za niska to znowu przesuwa o  stopni w lewo itd aż do osiągnięcia zadanej temperatury . Moimi wypocinami zaszedłem do takiego kodu , lecz i on nie działa mi tak jak chcę . Proszę o pomoc .

Kod:
#include <Servo.h>
Servo serwomechanizm;  
int pozycja =0;
int zmiana =5;
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
int histeryza = 1 ; // histeryza
int temp_norma = 29; // normalna temperatura
#define BACKLIGHT_PIN 3
LiquidCrystal_I2C  lcd(0x27, 2, 1, 0, 4, 5, 6, 7);
#define ONE_WIRE_BUS 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress P1 = { 0x28, 0xFF, 0xDF, 0x6E, 0x81, 0x15, 0x1, 0x78};

void setup() {
sensors.begin();
 Wire.begin();
 lcd.begin(20, 4);
lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
 lcd.setBacklight(HIGH);
 serwomechanizm.attach(9);
}

void loop() {
sensors.requestTemperatures();{
 float tempC1 = sensors.getTempC(P1);
lcd.setCursor (0, 0);
 lcd.write("PIEC ");
 lcd.print(tempC1, 1);
}

{
  serwomechanizm.write(90);
}
{
   
   for(int pozycja=0; P1>= temp_norma ;zmiana++);
   {
     serwomechanizm.write(zmiana);
    delay(5000);}
  }
 
Odpowiedź
  


Wiadomości w tym wątku
Sterownik zaworu czterodrożnego do CO - przez maniolx - 31-01-2017, 13:42

Skocz do:


Przeglądający: 1 gości