Управление кулером через датчик температуры и влажности DH11

Kitnesh
Offline
Зарегистрирован: 28.11.2016

Ребята, выручайте, в программировании нуль!!! Использую ардуино уно, мотор шилд, тройку шилд, датчик температуры и влажности DH11, кулер. Все собрал, на кулер подаю отдельно 12 вольт через мотор шилд, не могу написать программу, чтобы кулер включался при достяжении температуры 30 градусов.

KVadik
KVadik аватар
Offline
Зарегистрирован: 15.06.2014

Так показывай что написал, схему, тогда будут помогать.

Делать все за тебя будут только тут: http://arduino.ru/forumy/ishchu-ispolnitelya и только за вознаграждение.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Kitnesh пишет:

 не могу написать программу ...

Как говаривала всем известная девочка: «Вот, я и не смогла» :((((

Kitnesh
Offline
Зарегистрирован: 28.11.2016

Ну вот все написал, нужно только сделать, чтобы куллер включался по достяжению 40 градусов

Вот такой скеч получился

 

// Моторы подключаются к клеммам M2+, M2-
// Motor shield использует четыре контакта 4, 5, 6, 7 для управления моторами 
// 4 и 7 — для направления, 5 и 6 — для скорости
#define SPEED_2      6
#define DIR_2        7
// библиотека для работы с датчиком DHT11
#include <TroykaDHT11.h>
// создаём объект класса DHT11 и передаём номер пина к которому подключён датчик
DHT11 dht(11);
 
 
void setup() 
{
  // Настраивает выводы платы 4, 5, 6, 7 на вывод сигналов 
  for(int i = 4; i < 8; i++)     
  pinMode(i, OUTPUT);  
  // открываем последовательный порт для мониторинга действий в программе
  Serial.begin(9600);
  dht.begin();
 
void loop() 
{ // переменная состояния датчика
  int check;
  // мониторинг ошибок
  // считывание данных с датчика DHT11
  check = dht.read();
  switch (check) {
    // всё OK
    case DHT_OK:
      // выводим показания влажности и температуры
      Serial.print("Temperature = ");
      Serial.print(dht.getTemperatureC());
      Serial.print("C \t");
      Serial.print("Humidity = ");
      Serial.print(dht.getHumidity());
      Serial.println("%");
      break;
    // ошибка контрольной суммы
    case DHT_ERROR_CHECKSUM:
      Serial.println("Checksum error");
      break;
    // превышение времени ожидания
    case DHT_ERROR_TIMEOUT:
      Serial.println("Time out error");
      break;
    // неизвестная ошибка
    default:
      Serial.println("Unknown error");
      break;
  }
  // ждём 1 секунду
  delay(1000);  
  // А теперь заставим мотор 2 медленно разгоняться до максимума
  for (int i=0; i <= 255; ++i) 
  {
    analogWrite(SPEED_2, i);
    delay(50);
  }
 
  // Теперь он будет крутится до нажатия на Reset или выключения питания
  while (true)
    ;    
}