Разное о выращивании табака на Алтае
Вы не вошли.
Не в сети
Код.
//Таймер 11.03.2020
#include <math.h>
#include "TM1637.h"
#define CLK 16//GPIO 16 к дисплею
#define DIO 14//GPIO 14 к дисплею
TM1637 disp(CLK, DIO);
#define MY_BUTTON 4
float TEMP=0;
const int G = 12;//ЗЕЛЁНЫЙ светодиод GPIO 12
const int B = 13;//СИНИЙ светодиод GPIO 13
const int R = 15;//красный светодиод GPIO 15
int I=0;
int CHAS=8;//СТАРТОВОЕ ВРЕМЯ ЧАСЫ
int MIN=0;//СТАРТОВОЕ ВРЕМЯ МИНУТЫ
int onCHAS=9;//ВРЕМЯ ВКЛЮЧЕНИЯ ЧАСЫ
int onMIN=0;//ВРЕМЯ ВКЛЮЧЕНИЯ МИНУТЫ
int offCHAS=20;//ВРЕМЯ ВЫКЛЮЧЕНИЯ ЧАСЫ
int offMIN=0;//ВРЕМЯ ВЫКЛЮЧЕНИЯ МИНУТЫ
int SEC=0;
char* buttonTime="";
byte DVOETOCHIE=1;
byte OnOffFlag=0;
unsigned long lastTime1 = 0;
unsigned long lastTime = 0;
void setup(void)
{
pinMode( MY_BUTTON, INPUT_PULLUP);
pinMode(G, OUTPUT);
digitalWrite(G, LOW);
pinMode(B, OUTPUT);
digitalWrite(B, LOW);
pinMode(R, OUTPUT);
digitalWrite(R, LOW);
//TM1637//
disp.init(); // инициализация дисплея
disp.set(3); // яркость дисплея, 0 - 7 (минимум - максимум)
disp.point(DVOETOCHIE);//ВКЛЮЧИТЬ ДВОЕТОЧИЕ.
}
void displayONOFF()
{
disp.point(0);
disp.displayByte(_0, _n, _dash, _dash);
delay(1000);
disp.point(1);
if (onMIN<10){
disp.display(2, 0);
disp.display(3, onMIN);} else {
disp.display(2,floor(onMIN/10.0));
disp.display(3,(onMIN-floor(onMIN/10.0)*10.0));
}
if (onCHAS<10){
disp.display(0, 0);
disp.display(1, onCHAS);} else {
disp.display(0,floor(onCHAS/10.0));
disp.display(1,(onCHAS-floor(onCHAS/10.0)*10.0));
}
disp.point(1);
delay(1000);
disp.point(0);
disp.displayByte(_0, _F, _F, _dash);
delay(1000);
disp.point(1);
if (offMIN<10){
disp.display(2, 0);
disp.display(3, offMIN);} else {
disp.display(2,floor(offMIN/10.0));
disp.display(3,(offMIN-floor(offMIN/10.0)*10.0));
}
if (offCHAS<10){
disp.display(0, 0);
disp.display(1, offCHAS);} else {
disp.display(0,floor(offCHAS/10.0));
disp.display(1,(offCHAS-floor(offCHAS/10.0)*10.0));
}
disp.point(true);
delay(1000);
}
void OnOff()
{
if (MIN>=onMIN and CHAS>=onCHAS ) OnOffFlag=1;
if ( MIN>=offMIN and CHAS>=offCHAS) OnOffFlag=0;
digitalWrite(B, OnOffFlag);
}
void BUTTON()
{
while (LOW == digitalRead(MY_BUTTON)){
if ((millis() - lastTime) >= 100 and (millis() - lastTime)<500)
{ lastTime1 = millis();
buttonTime="fast";
}
if ((millis() - lastTime) >= 1500 )
{ lastTime1 = millis();
buttonTime="long";}
}
if (buttonTime=="fast") displayONOFF();
if (buttonTime=="long") {
for (int i=0; i <= 10; i++){
disp.displayByte(_dash, _dash, _dash, _dash);
disp.point(1);
displayCHAS();
delay(200);
if(LOW == digitalRead(MY_BUTTON))
{
MIN++;
if (MIN==60) MIN=0;
i=0;
displayMIN();
delay(100);
}
displayMIN();
delay(300);
}
/////////////////////////
for (int i=0; i <= 10; i++){
disp.displayByte(_dash, _dash, _dash, _dash);
disp.point(1);
displayMIN();
delay(200);
if(LOW == digitalRead(MY_BUTTON))
{
CHAS++;
if (CHAS==24) CHAS=0;
i=0;
displayCHAS();
delay(100);
}
displayCHAS();
delay(300);
}
////////////////////////////
}
//}
}
void displayMIN()
{
if (MIN<10){
disp.display(2, 0);
disp.display(3, MIN);} else {
disp.display(2,floor(MIN/10.0));
disp.display(3,(MIN-floor(MIN/10.0)*10.0));
}
}
void displayCHAS()
{
if (CHAS<10){
disp.display(0, 0);
disp.display(1, CHAS);} else {
disp.display(0,floor(CHAS/10.0));
disp.display(1,(CHAS-floor(CHAS/10.0)*10.0));
}
}
void loop(void)
{
if(LOW == digitalRead(MY_BUTTON)) BUTTON();
OnOff();
disp.point(DVOETOCHIE);
if ((millis() - lastTime) >= 1000) {
lastTime = millis();
SEC++;
if (DVOETOCHIE==1) DVOETOCHIE=0; else DVOETOCHIE=1;
if (SEC==60){
SEC=0; MIN++;
}
if (SEC==0 and MIN==60){
MIN=0; CHAS++;
}
if (CHAS==24 and SEC==0 and MIN==0){
CHAS=0;
}
displayMIN();
displayCHAS();
}
}
Не в сети
Программа позволяет изменять текущее время нажатием встроенной кнопки(WITTEY CLOUD). При коротком нажатии кнопки, на дисплее отображается время включения/выключения нагрузки). При длинном нажатии на кнопку, более 1,5 секунд, включается режим установки текущего времени.
Не в сети
Не в сети
У WITTEY CLOUD есть полезная функция на борту(для такого устройства), а именно встроенный фоторезистор/датчик освещённости. Можно его задействовать, если на рассаду попадает естественное освещение. Зачем светить на рассаду дополнительно, если и так солнце светит?
Не в сети