Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.03.2014, 14:02   #1
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию Re: Акваконтроллер

Замечательно, теперь на кнопку Select добавь изменение флага(типа как в моем примере - изменение значения переменной по вкусу)с ручного режима на автоматический, следующим этапом будет добавление датчика температуры
Bulatovor вне форума   Ответить с цитированием
Старый 29.03.2014, 14:30   #2
kirex
Member
 
Регистрация: 24.03.2014
Сообщений: 38
Вес репутации: 0
kirex is an unknown quantity at this point
По умолчанию Re: Акваконтроллер

Цитата:
Сообщение от Bulatovor Посмотреть сообщение
Замечательно, теперь на кнопку Select добавь изменение флага(типа как в моем примере - изменение значения переменной по вкусу)с ручного режима на автоматический, следующим этапом будет добавление датчика температуры
Спасибо за помощь.
Попробую сделать, только ближе к вечеру.
Сейчас нужно уехать, обещал детям в парк.
До вечера.
kirex вне форума   Ответить с цитированием
Старый 30.03.2014, 02:18   #3
kirex
Member
 
Регистрация: 24.03.2014
Сообщений: 38
Вес репутации: 0
kirex is an unknown quantity at this point
По умолчанию Re: Акваконтроллер

Цитата:
Сообщение от Bulatovor Посмотреть сообщение
Замечательно, теперь на кнопку Select добавь изменение флага(типа как в моем примере - изменение значения переменной по вкусу)с ручного режима на автоматический, следующим этапом будет добавление датчика температуры
Сделал вот так:
Код HTML:
#include <LiquidCrystal.h> 

/******************************************************* 

This program will test the LCD panel and the buttons 
Mark Bramwell, July 2010 

********************************************************/ 

// select the pins used on the LCD panel 
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); 

int Relay_Off = HIGH;
int Relay_On = LOW;
int reg=0;// вводим флаг для автоматического (при значении-0) или ручного регулирования -1

// define some values used by the panel and buttons 
int lcd_key     = 0; 
int adc_key_in  = 0; 
#define btnRIGHT  0 
#define btnUP     1 
#define btnDOWN   2 
#define btnLEFT   3 
#define btnSELECT 4 
#define btnNONE   5 

// read the buttons 
int read_LCD_buttons() 
{ 
 adc_key_in = analogRead(0);      // read the value from the sensor  
 // my buttons when read are centered at these valies: 0, 144, 329, 504, 741 
 // we add approx 50 to those values and check to see if we are close 
 if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result 
 // For V1.1 us this threshold 
 if (adc_key_in < 50)   return btnRIGHT;   
 if (adc_key_in < 250)  return btnUP;  
 if (adc_key_in < 450)  return btnDOWN;  
 if (adc_key_in < 650)  return btnLEFT;  
 if (adc_key_in < 850)  return btnSELECT;   

 // For V1.0 comment the other threshold and use the one below: 
/* 
 if (adc_key_in < 50)   return btnRIGHT;   
 if (adc_key_in < 195)  return btnUP;  
 if (adc_key_in < 380)  return btnDOWN;  
 if (adc_key_in < 555)  return btnLEFT;  
 if (adc_key_in < 790)  return btnSELECT;    
*/ 


 return btnNONE;  // when all others fail, return this... 
} 

void setup() 
{ 
  pinMode(41, OUTPUT);
  lcd.begin(16, 2);              // start the library 
 lcd.setCursor(0,0); 
 lcd.print("Push the buttons"); // print a simple message 
} 
  
void loop() 
{ 
 lcd.setCursor(0,1);            // move to the begining of the second line 
 lcd_key = read_LCD_buttons();  // read the buttons 

 switch (lcd_key)               // depending on which button was pushed, we perform an action 
 { 
   case btnRIGHT: 
     { 
     digitalWrite(41, Relay_Off); 
  lcd.setCursor(7, 1);
  lcd.print("H2-Off");   
     break; 
     } 
   case btnLEFT: 
     { 
     digitalWrite(41, Relay_On); 
  lcd.setCursor(7, 1);
  lcd.print("H2-On ");
     break; 
     } 
   case btnUP: 
     { 
     lcd.print("UP    "); 
     break; 
     } 
   case btnDOWN: 
     { 
     lcd.print("DOWN  "); 
     break; 
     } 
   case btnSELECT: 
     { 
     if(reg==1)
   {reg=0;
  lcd.setCursor(13, 1);
  lcd.print("Aut");}
  else 
   {reg=1;
  lcd.setCursor(13, 1);
  lcd.print("Man");}
     break; 
     } 
     case btnNONE: 
     { 
     lcd.print("NONE  "); 
     break; 
     } 
 } 

}
kirex вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 17:18. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика