Arduino Polska Forum

Pełna wersja: Sterownik pompą + wentylatory
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam.
Jestem  nowy, postanowiłem zrobić pewien projekt
A mianowicie zakupiłem Arduino Uno i chciałbym aby sterował pompką 12v ( załączaną od nastawnej temperatury)
i wentylatorem 12v aby regulował obrotami silnika w zależności od temp.
dodatkowo wyświetlacz 2x16 który pokazywał by czy pompka chodzi , temperaturę czujnika i prędkość wiatraka.

Jak dotąd udało mi się uruchomić podstawęSmile czyli kilka diod, silnik krokowy(nie do tego projektu) , wyświetlacz.
Z czujnikiem temp. mam problem zakupiłem:
http://allegro.pl/ShowItem2.php?item=569...st-visited
i nie chce mi wgrać schematu do arduinoSad
mam też http://allegro.pl/modul-termostat-w1209-...MTIyMzM%3D
chyba że mogę jakoś wpiąć się w niego do odczytu temperatury?
Pomóżcie bo dla mnie to jeszcze za trudne
Pozdrawiam Minek

Kod:
#include <dht.h>
#include "LiquidCrystal.h"
#define pompa 8
#define wentylator 9
#define led_pompa 10
#define led_wentylator 11

LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Definicja pinów do których podłaczamy wyprowadzenia ekranu
dht DHT;
#define DHT11_PIN 12
float temperatura_zadana=40;
float wentylator_zadana=40;




float temperatura; //Zmienna przechowujaca temperature

void setup() {
lcd.begin(16,2); //Inicjalizacja pracy LCD
pinMode( pompa ,OUTPUT);
pinMode( wentylator ,OUTPUT);
pinMode( led_pompa ,OUTPUT);
pinMode( led_wentylator ,OUTPUT);
digitalWrite(pompa,LOW);
digitalWrite(wentylator,LOW);

}

void loop()
{
 
pomiary(); //Wyświetlanie temperatury i wilgotnosci
//Regulacja temperatury
if(temperatura_zadana>=temperatura)
{
 digitalWrite(pompa, HIGH); //Załączenie pompy
 digitalWrite(led_pompa, LOW); //Załączenie diody od pompy
}

if(temperatura_zadana+2<=temperatura) //Histereza 2 stopnie- pompa pracuje do temp. zadanej + 2
//Taki zapis zapobiega nadmiernemu zalączania/wyłączaniu przekaźnika
{
 digitalWrite(pompa, LOW); //Wyłączenie pompy
digitalWrite(led_pompa,HIGH ); //Wyłączenie diody od pompy
}

//Regulacja wiatraka
if(wentylator_zadana>=wentylator)
{
 digitalWrite(wentylator, HIGH); //Załączenie wentylatora
 digitalWrite(led_wentylator, LOW); //Załączenie diody od wentylatora
}

if(wentylator_zadana+2<=wentylator) //Histereza 2 stopnie- wentylator przacuje do temp. zadanej + 2
//Taki zapis zapobiega nadmiernemu zalączania/wyłączaniu przekaźnika
{
 digitalWrite(wentylator, LOW); //Wyłączenie wentylatora
digitalWrite(led_wentylator, HIGH); //Wyłączenie diody od wentylatora
}
}

//Funkcja odczytująca i wyświetlająca pomiary
void pomiary (void)
{

 int chk = DHT.read11(DHT11_PIN);
 lcd.setCursor(0,0);
 lcd.print("Temp  :");
 lcd.print(DHT.temperature);
 lcd.print((char)223);
 lcd.print("C");
 lcd.setCursor(0,1);
 lcd.print("wilgot:");
 lcd.print(DHT.humidity);
 lcd.print("%");
 delay(3000);
 lcd.clear();

lcd.setCursor(0,0); //Ustawienie kursora w 0 kolumnie i 0 wierszu
lcd.print("Temp.zad:");
lcd.setCursor(0,1); //Ustawienie kursora w 0 kolumnie i 1 wierszu
lcd.print("Wilg.zad:");
 
lcd.setCursor(9,0); //Ustawienie kursora w 8 kolumnie i 0 wierszu
lcd.print(temperatura_zadana); //Wyświetlenie temperatury
lcd.print("C");
lcd.setCursor(9,1);
lcd.print(wentylator_zadana);
lcd.print("%");

 delay(3000);
 lcd.clear();
}
Czy ktoś pomorze?
Nie steruje mi przekaźnikami według zadanej temp.Sad