ááŻáášáááŽáááş Next Technologies ááž ááźááşáá˝ááşá¸á ááŻááşááŻááşáááˇáş NEKST-M á
áąáŹááˇáşááźááˇáşááąá¸áááŻáˇá
áşááťáŹá¸ááᯠáááşáá°áá˛áˇáááşá ááąá
áŻááşáá°áá
áşááťáŹá¸á áááşáááşáážáŻááᯠááŻáśááąáŹáşáááŻááşá
áąáááşá
ááŽá¸áážááˇáş ááŻáśááźáŻáśááąá¸ áĄááťááşááąá¸ááťááşááťáŹá¸á á
áááşááťáááşáá˝ááş áááŻáˇáĄáŹá¸áážáááąááźááşá¸á áĄáááşá¸áĄáá°ááťáááşá áĄááąá¸ááąáŤáşááąáĄáááˇáşá NEKST-M á áážááŻáśá¸ááŹá¸áážáŹ ATMEGA 1280 ááźá
áşááźáŽá¸ ááááťááąáŹáááŻáĄááşááťááşááťáŹá¸áĄáá˝ááş áááˇáşáááŻááşáááŻááşááááááŹáĄá
áŻáśááᯠáááşááŽá¸áááŻááşááźáąáážááˇáşáááşáááşá á¤áĄááťááşá áĄáŹá¸áááşá
ááŹááźá
áşáááşá
áĄáááŻááŻáśá¸ááźá
áşáááŻááşááąáŹáĄááťáááşáážááˇáş áĄáááşá¸ááŻáśá¸ááŻááşááťá
ááááşááźááˇáş ááŽá¸ááźáŹá¸áááŻáĄááşááťááşááťáŹá¸áĄáá˝ááş áĄááźááˇáşáĄááááŻááşáááŻááşáĄáŻááşááťáŻááşáá˝ááˇáşáááąááááŻááşáᏠáááŻáˇááąáŹááşááąá¸á
áá
áşáá
áşáᯠáááşááŽá¸áááş ááŹáááşááᯠáááşáážááşááŹá¸ááŤáááşá áĄááźáąááśáááş áááŻááşááááŻáá˝ááşááááŻááŹáá
áşááŻááźá
áşáááşá áá˝áśáˇááźááŻá¸ááąá¸á ááŻááşááŻááşá áááşáááşá¸áááŻááşáááŻááş áááşááŽá¸áááşá
á áá áşáááş áááşáá°ááŹáá˝ááşáááşááťáŹá¸á ááŹááŹááťáŹá¸á áĄááşááŹáááşáážááˇáş ááąááŽáááŻááźáááşáážáŻááşá¸áááşá¸ááźá áşááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáááşáĄáá˝ááş áááŻááşá ááşá áá áşáĄáŹá¸ áážáŽáááŻááźááşá¸ááážááᲠáááşáááşááááşááźá áşááźáŽá¸ á áąáŹááˇáşááźááˇáşááźááşá¸áážááˇáş ááááşá¸ááťáŻááşáážáŻá áá áşá ááŻááşááąáŹááşáážáŻáá˝ááş áá˝ááşááťá°ááŹááťáŹá¸ááᯠáĄááŻáśá¸áááźáŻáᲠáááŻáˇáááŻááş áĄááťáŹá¸á áŻáážáŹ áááşááşááąáŹáˇááťáŹá¸ááᯠáĄááťáááşáĄááŤáĄáááŻááş áĄááŻáśá¸ááźáŻáá˝ááˇáşááážááá˛á áĄááŹááášááŻááťáŹá¸ááᯠáĄááťáááşááźáŹááźááˇáşá á˝áŹ (á-á á)á áá˝ááşáááşáá˝á˛áˇá ááşá¸ááŻáśáááş áĄá á˝ááşá¸áá˝ááşáá˝á˛áˇá ááşá¸ááŻáś áážááááşá ááąááŹááťáŹá¸ááᯠáá áşááťáááşáááşá¸áá˝ááş á áŻááąáŹááşá¸ááźáŽá¸ ááŻáśáážááşáááşáá˝ááşááąá¸áááşá¸ááźáąáŹááşá¸ááťáŹá¸áážáá áşáááˇáş ááŻááşááąáŹááşáááş áááŻáˇáááŻááş hard copy áĄááźá áş ááąá¸áááŻáˇáááşá
á áá áşá ááąá¸ááąáŹááşááááş-
- ááąá áŻááşáá°áá áşááťáŹá¸á áááşáááşáážáŻááᯠá áąáŹááˇáşááźááˇáşááźááşá¸á
- áááşá¸áááŹáĄáááŻáĄááťáąáŹááşá áá áş
- áĄááąá¸ááąáŤáşáĄááźáąáĄááąááťáŹá¸á ááąáŹááşáááşáá˝á˛áááŻá¸ááťááŻá¸ááťáŹá¸ááž ááŹáá˝ááşááąá¸ááźááşá¸á
- áĄááąá¸ááąáŤáşáĄááťááşááźááźááşá¸á
- áááşáááşááťáááşáá˝ááşááťááşááźááşá¸á
- ááťážááşá á áşááŻáśá¸á á˝á˛áážáŻáááŹáááᯠáá˝ááşááťááşááźááşá¸á
- á ááşáá ášá ááşá¸ áĄáá°ááťáááşááááşá¸
- ááŻáśááźáŻáśááąá¸áážááˇáş ááŽá¸áĄááťááşááąá¸ááś
- áĄááťáááşáĄáááŻááşá¸áĄááźáŹá¸áĄáááŻááş ááááşá¸áĄááťááşáĄáááşááťáŹá¸ áážááşáááşá¸áááşááźááşá¸á
- áááááąáŹáĄááŹáááşáááŻáĄááşááťááşááťáŹá¸
ááŻááşáááşá¸áĄááźáąáĄááąááťáŹá¸
- áá˝ážááşá¸ááźáŻáśá§áááᏠ1 á ááŻáááşá¸ááŽáááŻááŽááŹá
- áĄááŹááášááŻááťáŹá¸ááźáŹá¸ áááŻááşáááŻááşááźááşáááŻááşáážáŻ
- áĄáá°ááťáááş +50 ááž -50 C
- á ááŻáááŻááşá¸á 100% áĄáá
- ááŽáááąááááŻááşáᏠáĄáááşáĄáážá áşááťáŹá¸ (áážááŻá ááŹáááááş-ááťážáąáŹáˇááťáááşááŽá¸ááŽá¸ááŹá¸)
- GOST ISO 1-2-10816 áĄá class 1-97 áá ááşááťáŹá¸áááŻááşááŤáážáŻááážáááąáŹáˇááŤá
- ááťážááşá á áşááśáááŻááşáááşáááşá¸ááťááş - KT 6053 contactors áážááˇáş ááťážááşá á áşááąáŹáşááŹááťáŹá¸ááᯠáá°á¸ááźáąáŹááşá¸ááźááşá¸á RVS-DN ááťáąáŹáˇááťáąáŹááşá¸ááąáŹ á áááşááááááŹá SIEMENS MICROMASTER PID ááááşá¸ááťáŻááşááááááŹááťáŹá¸á ISM áážááˇáş GSM áĄáá˝áŹáĄááąá¸áážá ááŤááşááąáŹááşááźááşááťáŹá¸áááş áĄáááŻááŤááááááŹááťáŹá¸áĄáá˝ááş áááŻáĄááşááťááşááťáŹá¸áážááˇáşáĄááŽá áááŻááşáá˝ááş manual arc áááąááąáŹáşááźááşá¸
- áá˝ááşáááşáááŻáˇáĄáŹá¸ áĄáá˝ááşáĄááťá˝áśá ááŤááŤááąáŹááşááśáˇáážáŻáá˝ááş ááąáááŻááźááşááąáŹááşáážáŻááťáŹá¸á ááťážááşá áŽá¸ááźáąáŹááşá¸ááťáŹá¸ áá˝ááşáá˛ááźááşá¸á 6-10 kV ááźááˇáşááźá°á¸áážáŻáá˝ááşáááşááťáŹá¸áá˝ááş áĄááąáŤáşá áŽá¸ááž ááŤááŹááźááŻá¸ááźááşááąáŹááşáááˇáşáĄá፠áĄáááˇáşáááŽááťážááźááşá¸á
áááŻáááŻáˇááąáŹ áááşá¸ááťááşááąáŹ áááŻáĄááşááťááşááťáŹá¸ áážáááąáŹáşáááşá¸á áĄáááˇáşáááˇáş ááźáąáážááşá¸ááŹáá˝ááş áĄááąáŹááşáĄáááşááąáŹáşáážáŻáááş áĄáá˝ááşáááŻá¸áážááşá¸ááŤáááşá
áĄááŹáĄáŹá¸ááŻáśá¸áááŻáááˇáşáá˝ááşá¸á
ááşá¸á
áŹá¸ááźááşá¸ááźááˇáş "Arduino Nano 3.0" ááŻááşáááş áĄá
áŽáĄá
ááşá "áŚá¸áážáąáŹááş" ááźá
áşááŹáá˛áˇáááşá á
ááşááŻááşááŻááşáá˝ááş áááŻáĄááşááąáŹ 328V áááŻáˇáĄáŹá¸ááááşá¸áááááᏠATMEGA 3,3 ááŤáážááááşá
áááşáážá 800 mA áážááˇáş CH340G UART-USB áááŻáˇ ááźáąáŹááşá¸ááąá¸áááşá
ááááŚá¸á
á˝áŹá áááşáááşáážáŻááŹááŽááąáŹááşááŹááťáŹá¸ááᯠááąááşáĄááŽááŻáśá¸áĄááŹááťáŹá¸áĄááźá
áş áááşááŽá¸áá˛áˇáááşá áááşáááşáážáŻ áá
áşáážá
áşáĄáá˝ááşá¸ áááŻáˇáĄáŹá¸áááşááŹáážáŻááźáąáŹááˇáş Transformerless power supply circuit ááźááˇáş PICs áá˝ááş áááşáááşáĄááŻáśá¸ááźáŻáá˛áˇááąáŹ á
ááşáážáŻááŽááŹááťáŹá¸ ááĄáąáŹááşááźááşááŤá áĄáááşááŻááş 5V ááŤááŤááąáŹááşááśáˇáážáŻááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻá ááťáááşáááşááŹá¸áá°ááťáŹá¸áᏠááťááşáážáááąáŹáˇáááşá áááşáááşáážáŻáážááˇáş ááťáááşáááşáážáŻá áááşá
áŻáśáĄááŻáśá¸ááźáŻáááŻááşáážáŻááᯠáĄáážáááşááźážááˇáşáááşá switching devices ááťáŹá¸á terminals ááťáŹá¸ááž áá°áá
áşááťáŹá¸á áĄááźáąáĄááąáážááˇáşáááşáááşáááˇáş áĄááťááşááźááťááşááᯠáá°áá
áşá áááŻáááŻáááşáážáŹá 1V ááŻáśá¸áááˇáşááŤááŤááąáŹááşááśáˇáážáŻáážááˇáşáĄáá° 380st áĄáááˇáşáááŻáˇáĄáŹá¸ááážáąáˇáážáąáŹááşáá˝ááşáážááşááŻáśáááşááźááşá¸á ááááşá¸ááťáŻááşááááááŹáážááˇáş áážááážááŻááşá¸ááąáŹááşáá˝ááşáááşá LED áážááˇáş áá˝á˛áˇá
ááşá¸ááŹá¸áááˇáş 220V áĄáá˝áąáˇáĄááąáŹááşáážáááąáŹ áĄáááşáĄáááş relay áááŻáˇáááŻááş optocoupler áážááˇáş GL5516 photoresistor áááŻáˇáááŻááş PC817 optocoupler ááᯠáĄááŻáśá¸ááźáŻááŹá¸áááşá áá˝áąá¸ááťááşá
ááŹáĄáŹá¸ááŻáśá¸ááᯠá
ááşá¸áááşááźáŽá¸ááŤááźáŽá LED áááş megohmmeter ááźááˇáş ááŹá¸áá
áşááťáŹá¸ááᯠáááąáŹáşáá á
ááşá¸áááşá
ááş ááąá¸áááşá¸á
áąáááşáĄáá˝ááş 22V áááşáááŻááşááťáááşáááşááŹá¸ááąáŹ áááŻáˇáĄáŹá¸áĄáá˝ááş ááŽáááŻááşá¸ááŻááşááŹá¸ááąáŹ SVV630 capacitors áážá
áşááŻááᯠáĄááŻáśá¸ááźáŻá ááźáŻááźááşááŹá¸ááąáŹ áááŻáˇáĄáŹá¸ááźááˇáş ááŤááŤááąá¸ááŤáááşá
ST7735S LCD áááşááŹá¸ááźááşááᯠáĄááŻáśá¸ááźáŻá áááşáááşááťáááşáááşááźááşá¸á E01-ML01DP05 module ááᯠáĄááŻáśá¸ááźáŻá ááąááŽáááŻáážáá
áşáááˇáş áĄááťáááşáážááˇáşáá
áşááźáąá¸áᎠááąááŹááŻááşáá˝ážááˇáşááźááşá¸ááťáŹá¸ááᯠ2,4 MHz áážáááąáŹ ááźáááşáážáŻááşá¸ááźááˇáşáááşááźááşá¸á á¤á
ááşáá
ášá
ááşá¸áá˝ááş nRF24L01+ ááťá
áşááşáážááˇáş RFX2401C ááŻááşáá˝ážááˇáşáážáŻ/áááşááśáĄááśááťá˛áˇá
ááşáááŻáˇááŤáážááááşá
output ááŤá፠100 mW áĄááá áĄá˝ááşáááŻááşá¸ááááşá¸áá˝ááşá
ááşáážá áááŻááťááşááąáŹáĄáá˝áŹáĄááąá¸áĄáá˝ááş áááşááŽá¸ááŹá¸ááąáŹ Helical áĄááşáááşááŹááťáŹá¸
ááŻááˇáşááŻááşá¸
4-channel ááąáŹááşááŹá ááááşá
áŻáśáá˝á˛áááşáá˝ááşááąá¸áááŻááşá¸áá
áşááŻáĄááąáŤáş áĄáážáąáŹááˇáşáĄáážááşáážááŹáá˝ááşáááş áĄáááşááťáŹá¸áá˝ááş LC á
á
áşááŻááşáážáŻááťáŹá¸ áážáááŤáááşá ááááşá¸ááťáŻááşáááˇáşáĄááŹááášááŻááťáŹá¸á áĄááźáąáĄááąááᯠáá
áşá
áášáááˇáşááťážááş áá
áşááźáááş áĄáááşáááźááşáááşáážáŻááźáŽá¸ LCD áá˝ááş áĄááąáŹááşááźááˇáşááźááááşá á
áŹáááşááźááşá¸ááᯠ1 á
áášáááˇáşáááŻááşá¸áá˝ááş ááááşááźáááşááąáŹáážááşááŹááşáá˝ááş áĄááşááááşááŻááşááźáŽá¸ áážááşáááşá¸áááşááŤáááşá 36 á
áášáááˇáşáááş áá
áşááŹááŽá 36/1 ááźá
áşááźáŽá¸á áááşá¸áááş ááąááŹáááŻáĄááşáááˇáş ááąáŹáşáááşááźá
áşáááşá 100 á
áášáááˇáşáááŻááşá¸ ááááşá¸ááťáŻááşáá°áá
áşáá
áşááŻá
áŽáĄáá˝ááş áááşáááşáážáŻá
áášáááˇáşáĄááąáĄáá˝ááşáážááˇáşáááşáááşááąáŹ áĄááťááşáĄáááşááťáŹá¸ááᯠááąá¸áááŻáˇáááşá ááŻááşááŻááşáá°áĄáááŻáĄá EEPROM áááşáááŻááŽáá˝ááş áĄááźáááşááą 12 áááˇáşáááşááŹá¸ááąáŹ á
áŹááąá¸-ááťááşááźááşá¸á
ááşáááşá¸ááťáŹá¸áážááááşá áĄáááŻá¸ááŻáśá¸áá˝áąá¸ááťááşáážáŻáážáŹ áĄáááşá¸ááŻáśá¸ áá˛ááşáá
áşáᯠáĄáááşáááźááş áá˝ááşá¸ááśááąááťáááşááźá
áşáááşá 100000st counter á volume áááş 1 bytes ááźá
áşááźáŽá¸á áááşá¸áááş long format ááśááŤááşááźá
áşáááşá 4 countersá á
áŻá
áŻááąáŤááşá¸ 4 bytes áááş one record ááźááˇáş ááááşá¸áááŻááşááŹá¸áááşá ááťá
áşááşá áááşáááŻááŽá áĄáážááşáážáŹ 16 bytes ááźá
áşáááşá ááąáŹááşáᏠ1024 ááŻá áááˇáşáá˝ááşá¸áážáŻ 64 ááŻááźáŽá¸ááąáŹááşá áážááşáááşá¸áááşááźááşá¸ ááźááşáááşá
áááşááŤáááşá EEPROM áá
áşááťá
áşáááŻááşáá˝ááşá EEPROM.put áááşá¸áááşá¸áááş áááąá¸ááŹá¸áá˛á áá˛ááşááááşáááŻá¸áážááˇáş ááąá¸ááŹá¸áááˇáşáĄááťááşáĄáááşááťáŹá¸ áááŻááşááŽááŤáá áá˛ááşááťáŹá¸ ááťááşá
áŽá¸ááźááşá¸áážááááşáááŻááşááŤá ááááşáĄááąááźááˇáş áĄáŹáááśááťááşáážáááąáŹ áááşáááŻááŽáááşáááşááťáááşáááş 4 áážá
áşááťáąáŹáşáážááááşááźá
áşáááşá ááźá
áşáááŻááşááąáŹáşáááşá¸ áĄáŹáááśááťááşááážáááąáŹ áĄááŻááşááĄááťáááşáááş áááŻáááźáŹáááŻááşáááşá
circuit diagram
Arduino IDE áážá ááááŻááááş//12 bytes (328%)
#ááŤáááşááŤáááşá // áĄáááááááşáá
áşá
áŹááźááˇáşáááŻááş
#ááŤáááşááŤáááşá // ááŹáˇááşáᲠááŽá¸áááˇáşá
áŹááźááˇáşáááŻááş
#include
#ááŤáááşááŤáááşá
#include
#ááŤáááşááŤáááşá
#ááŤáááşááŤáááşá
RF24 ááąááŽáááŻ(áá áá); // ááąááŽáááŻáĄááŹááášááŻáááş RF9 á
áŹááźááˇáşáááŻááşáážááˇáş áĄááŻááşááŻááşáááşá
// áážááˇáş áááşááśááŤááşááťáŹá¸ nRF24L01+ (CE, CSN)
#ááŤáááşááŤáááşá
DS3231 rtc(SDAá SCL);
áĄááťáááş t;
//#define TFT_CS 10
#Define TFT_CS 8
#define TFT_RST -1 // áááşáááş áááşá¸ááᯠArduino ááźááşáááşáááşáážááşááźááşá¸áááŻáˇáááşá¸ ááťáááşáááşáááŻááşáááşá
// áááşáááŻáˇáááşáááŻá
áąá ᤠ#define pin ááᯠ-1 áᯠáááşáážááşááŤá
//#define TFT_DC 9 // DC=RS=A0 - áá˝ááşáááşá¸áá
áşáᯠáááŻáˇáááŻááş ááąááŹá
áŹáááşá¸áá˝ááşá¸ááźááşá¸ááᯠáá˝áąá¸ááťááşááźááşá¸áĄáá˝ááş áááşáážááşáá˝áąá¸ááťááşá
ááŹááťáŹá¸á
#define TFT_DC á
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CSá TFT_DCá TFT_RST);
// áá˝áąá¸ááťááşáážáŻ 2- áááşáááˇáş pins áááŻáááᯠáĄááŻáśá¸ááźáŻá፠áááŻáˇááąáŹáş áĄáááşá¸áááşáážáąá¸ááŤáááşá
#define TFT_SCLK 13 // áááşá¸áááŻáˇááᯠáááşáážá
áşáááşáááˇáş áááşááśááŤááşááťáŹá¸áĄááźá
áş áááşáážááşááŤá
#define TFT_MOSI 11 // áááşá¸áááŻáˇááᯠáááşáážá
áşáááşáááˇáş áááşááśááŤááşááťáŹá¸áĄááźá
áş áááşáážááşááŤá
//Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CSá TFT_DCá TFT_MOSIá TFT_SCLKá TFT_RST);
#ááŤáááşááŤáááşá
byte shift = 52;
byte pinState;
áááşáážááşááááŻá¸ááŹá¸ááąáŹ áážááşááťáŹá¸ááąáŹá
áŻááşá
ááş[4];// 4 á
áášáááˇáşáááşááźááşáááşáááŻá¸ááťáŹá¸ááŤáááˇáş áááşá¸ááťááşá¸
float m = 3600.0;
áááşáážááşááááŻá¸ááŹá¸áááˇáş int ááááşá
Ꮰ= 0;
ááąáŹááşááŹááťáŹá¸áĄáá˝ááş int rc;// variable
áááşáážááşááááŻá¸ááŹá¸ááąáŹ long sumprim = 0;
áááşáážááşááááŻá¸ááŹá¸ááąáŹ long sumsec = 0;
byte i = 0;
byte k = 34;
áááşáážááşááááŻá¸ááŹá¸áááˇáş int z = 0;
byte b = B00000001;
byte pumrcounter[4]; // áĄááŹááášááŻááźááşáááşááťáŹá¸ááᯠááááşá¸áááşá¸áááşá 1 - ááááşá 0 - áá˝ááˇáşáááşá
int start = 0; //
ááťááşááźááş setup ááᯠ() {
rtc.begin();
radio.begin(); // nRF24L01+ ááᯠá
áááşááŻááşááąáŹááşááŤá
radio.setChannel(120); // ááąááŹááťááşáááş (0 ááž 127)á
radio.setDataRate(RF24_250KBPS); // ááąááŹáá˝ážá˛ááźáąáŹááşá¸áážáŻáážáŻááşá¸ (RF24_250KBPSá RF24_1MBPSá RF24_2MBPS)á
radio.setPALevel(RF24_PA_MAX); // transmitter ááŤá፠(RF24_PA_MIN=-18dBmá RF24_PA_LOW=-12dBmá
// RF24_PA_HIGH=-6dBmá RF24_PA_MAX=0dBm)
radio.openWritingPipe(0xAABBCCDD11LL); // ááąááŹáá˝ážá˛ááźáąáŹááşá¸áážáŻáĄáá˝ááş áĄááąáŹááşáĄááŹá¸áá
áşááŻááźááˇáş áááŻááşáá
áşááŻááᯠáá˝ááˇáşááŤá
// áĄááťáááşáááşáážááşáááş áááŻáĄááşááąáŹ áááŻááşá¸ááťáŹá¸ááᯠáážááşááťááşááąá¸ááŤá
//rtc.setDOW(1); // áááşááášááááşáááąáˇ
//rtc.setTime(21á 20á 0); // áĄááťáááşá 24 ááŹááŽááŻáśá
áśá
//rtc.setDate(29á 10á 2018); // áááşá
á˝á˛á áĄáąáŹááşáááŻáᏠááá áááá
tft.initR(INITR_BLACKTAB); // ST7735S ááťá
áşááşá áĄáááşááąáŹááş áááşááşááᯠá
áááşááŤá
// áááşáááş 1.44" TFT áááŻáĄááŻáśá¸ááźáŻááąááŤá á¤áááŚá¸á
áá
áş (áážááşááťááşááąá¸ááźááşá¸) ááᯠáĄááŻáśá¸ááźáŻááŤá
//tft.initR(INITR_144GREENTAB); // ST7735S ááťá
áşááşá RED rcB áááşááşááᯠá
áááşááŤá
tft.setTextWrap(false); // ááŹáááşáĄá
á˝ááşá¸ááž á
áŹááŹá¸ááᯠrun áááş áá˝ááˇáşááźáŻááŤá
tft.setRotation(2 ); // áĄáááşááąáŹááş PCB áážááˇáş RED tft.setRotation(0) áááŻáˇáááŻááş áááŻááşá፠á
tft.fillScreen(ST7735_BLACK); // ááźááşáááşááąáŹ ááťááşáážáŹááźááş
DDRD = DDRD | B00000000;
PORTD = PORTD | B11110000; // ááąáŹáˇááşáá˛áááşá¸ááťááşááźááşá¸áááş áĄááŻááşááŻááşáááşá áĄáááˇáşááźááˇáşááŹá¸áááş -
// ááááşá¸ááťáŻááşááŹá¸ááąáŹ áĄááŹááášááŻááťáŹá¸ "áĄááŻááşáááŻááşááŤ"á "4" áááş áĄááźáŽá¸áááşá¸ port 1 áᯠD áá˝ááş á
áŹááąá¸ááŹá¸ááąáŹááźáąáŹááˇáş ááąáá˝ááşááźááşá¸áááźá
áşááąáŤáşááŤá
áĄáá˝ááş (rc = 0; rc < 4; rc++)
{
tft.setCursor ( 3á rc * 10 + shift ); // ááááşá¸ááťáŻááşáĄááŹááášááŻááťáŹá¸á áááşááąááŹááśááŤááşááťáŹá¸ááᯠááźáááźááşá¸á
tft.print(rc + 1);
}
tft.setCursor(12, 0); // á
áŹááŹá¸ á ááźáąáŹááşá¸ááᯠááŻááşááŤá
tft.println("ááŽáá˝ááşáá°ááťáŹá¸áážááˇáş áááşááąáŹááşáážáŻááťáŹá¸"); // áááŻááşááťá
áşááá°áá˝áąááᯠááťáŽá¸ááťá°á¸ááŤá
tft.setCursor(24á 10); // áááŻáˇáááŻááş áááąáŹááşá¸ááąáŹ áá°áááŻááşáá˝ááˇáş
tft.print("Developer MM");
tft.setCursor(28á 20);
tft.print("BUILD-ER DD");
//ááąááŹááźááşáááşááá°ááźááşá¸////////////////////////////////////////////// ////////////
for ( z = 0; z < 1023; z += 16 ) { // ááŻááşáááşá¸á áá˛ááşááťáŹá¸áĄáŹá¸ááŻáśá¸áážááááˇáş áááşááąáŹááşá¸ááŻááşááąáŹááşáááş
// áážááˇáş ááąáŹááşááŹáá
áşááŻá
áŽáĄáá˝ááş 4 bytes áážáááąáŹ pump variable 4 ááŻá array áá
áşááŻáááŻáˇ á
áŹááąá¸áááşá
// áááşáážááşááááŻá¸ááŹá¸ááąáŹ long variable ááąáŹááşáᏠ4 ááŻáážáááźáŽá¸ 4 ááŻá
ááŻáśá¸áá
áśááťáááşáá
áşááŻáááş 16 bytes áá°áááşá
EEPROM.get(zá pump[0]); // ááŤááźáąáŹááˇáş for loop áááŤáááş volume áááşá¸ááŤáááşá
EEPROM.get(z+4á pump[1]);
EEPROM.get(z+8á pump[2]);
EEPROM.get(z+12á pump[3]);
// ááąáŹááşáᏠ4 ááŻá ááąáŤááşá¸áááşáĄáá˝ááş ááąáŹááşáááşáááşáááŻá¸áĄáá
áşáá
áşááŻááᯠáááşáážááşááąá¸áááşá
suprim = (pump [0] + pump [1] + pump [2] + pump [3]);
// ááááşá¸áážááşáážá ááááşáááşáááŻá¸áážááˇáş suprim variable áážá ááąáŹááşáᏠ4 ááŻá ááąáŤááşá¸áááşáááşáááŻá¸áĄáá
áşááᯠáážááŻááşá¸áážááşáááş
// sumsec áážááˇáş ááááşááąáŤááşá¸áááşáááş ááąáŤááşá¸áááşáĄáá
áşáááş ááťáąáŹáˇáááşá¸ááŤá áááŻáˇáááŻááş ááŽááťážááŤáá ááźáŽá¸áááş áááŻáˇáááŻááş áá°ááŽááąáŹáĄáá
áşááᯠáááşáážááşááąá¸áááş
// sumsec áááşáááŻá¸á
if ( sumsec <= suprim ) {
sumsec = sumprim; //
// áááşáážááááşáááŻá¸ z ááᯠááááşá
áŹááźáąáŹááşá¸áááŻááşááąáŹ ááááşá¸áážááşáááŻáˇ áááşáážááşááŹá¸áááşá z áááş áááşáááŻá¸ 16 ááŻáážáááąáŹ 4-byte áááąáŹááşáá
áşááŻááĄá
áááááşá
áŹááźá
áşáááşá
// áá
áşááťáááşáááşá¸áá˝ááş áážááşáááşá¸áááşááŹá¸ááąáŹ ááąáŹááşááŹááťáŹá¸ (ááááşáááşá¸áá
áşááŻááᯠáá˛áá˝ááşá
ááşááááşá¸áá áááşá¸ 8 bits áĄáŹá¸ááŻáśá¸ááᯠáááźááŻááşáááşáááşá¸ ááąá¸ááŹá¸áááşá
// ááťá˝ááşáŻááşáááŻáˇá áááŻáĄááşááąáŹ high 4 bits port D áĄááŤáĄáááş)á
ááááşá
Ꮰ= z;
}
}
// áážááşáááşá¸áááşááŹá¸ááąáŹ áááşááźááşáááşáááŻá¸ 16 ááŻáážáááąáŹ áááąáŹááş 4 bytes ááĄá
áááááşá
áŹáážá eeprom memory ááᯠáá
áşáááşáááşááąáŹááşááźááˇáşáážáŻááźááşá¸
// ááąáŹááşááŻáśá¸á i.e. áĄáąá¸áá˛ááźááşá¸ááźáąáŹááˇáş ááááşááźááşá¸ áááŻáˇáááŻááş ááźááşáááşá
áááşááźááşá¸áááźáŻáᎠáááşáááŻá¸ááťáŹá¸á ááąáŹááşááŻáśá¸ááąáŤáş áážááşáááşá¸áááşááźááşá¸á
// áááşááźááşáááşáááŻá¸ááťáŹá¸ááᯠ4 variables áá
áşááŻá array áááŻáˇ á
áŻááşáááşá
EEPROM.get(ááááşá
áŹá áááˇáş[0]);
EEPROM.get(ááááşá
Ꮰ+ 4á pump[1]);
EEPROM.get(ááááşá
Ꮰ+ 8á pump[2]);
EEPROM.get(ááááşá
Ꮰ+ 12á pump[3]);
ááááşá Ꮰ+= 16; // ááąáŹááşááŻáśá¸áážááşáááşá¸áááąááŹááᯠáááşáááąá¸áᲠááąáŹááşáááąáŹááşáááŻááąá¸áááşáĄáá˝ááş ááááşá áŹááᯠáááŻá¸á áąáááşá
//ááąááŹááźááşáááşááá°ááźááşá¸ááĄááŻáśá¸//////////////////////////////////////////// ////////////////////
attachInterrupt(0á count, RISING); // áááşááśááŤááş D2á ááźáŹá¸ááźááşááťáŹá¸áááŻáá˝ááˇáşááŤá á
áášáááˇáşáááŻááşá¸ááŹááŤá
// SQW áĄáá˝ááşááž RTC DS3231 áážáá˛ááťááŻá¸á
áŻáś
wdt_enable(WDTO_8S); // áááşá¸á
áąáŹááˇáşááťáááşá
ááşááᯠá
áááşááŤá áĄáąá¸áá˛áá˝áŹá¸áááˇáşáĄá፠ááááşá¸ááťáŻááşááááááŹááᯠááźááşáááşá
áááşááŤá
// áááşáááş timer reset command áááŻááŻááşáááşáááŻáĄááşáááˇáşáĄáá˝ááş wdt_reset(ááŻáśáážááşáááşáááşááąá
ááşáĄáá˝ááşá¸ ááźááşáááşá
áááşááźááşá¸ááᯠáážáąáŹááşááźááşá፠- 8 á
áášáááˇáşá
// á
ááşá¸áááşáážáŻááťáŹá¸áĄáá˝ááş 8 á
áášáááˇáşáááşáááşá¸ááąáŹ áááşáááŻá¸ááᯠáááşáážááşáááş áĄááźáśááźáŻááŹá¸ááźááşá¸ ááážáááŤá á¤ááá
ášá
áá˝ááşá áĄááťáááşáááŻááşá¸ááááááŹááᯠáááŻáááŻááąáŹááşá¸áá˝ááşá
á˝áŹ ááźááşáááşáááşáážááşááŹá¸áááşá
// ááááşáááşááŻááşááźáŽá¸ á
áášáááˇáşáááŻááşá¸ ááźá
áşááťááşááąáááşá
}
ááťááşááźááşáá˝ááşá¸áááş () {
// áĄáá˝ááşá
ááşáááşá¸á á¤ááąááŹáá˝ááş ááťážááşá
á
áşááąáŹáşááŹá áĄáá˝ááˇáşáĄáááˇáşááŻááşááąáŹááşáážáŻááᯠááááşá¸ááťáŻááşáááŻááşáááşááźá
áşáááşá
}
void count() {
tft.setTextColor(ST7735_WHITE); // ááąáŹááˇáşáĄááąáŹááşáááşáážááşááŤá
t = rtc.getTime(); // áĄááťáááşááąá¸áááşááŤá
tft.setCursor(5á 120); // cursor áĄááąáĄááŹá¸ááᯠáááşáážááşááźááşá¸á
tft.fillRect(5á 120á 50á 7á ST7735_BLACK); // áĄááťáááşáĄáá˝ááşá§ááááŹááᯠáážááşá¸áááşá¸ááźááşá¸á
tft.print(rtc.getTimeStr()); // áĄáá˝ááşááŹááŽááťáŹá¸áááşááźááşá¸á
wdt_reset(); // ááśáááŹáááŻááşá¸áá˝ááş á áąáŹááˇáşááźááˇáşáá˝áąá¸áĄáŹá¸ ááźááşáááşáááşáážááşáááşá áááŻáááŻáááşáážáŹ ááŻááá
for (rc = 0; rc < 4; rc ++) // áááˇáşáá˝ááşá¸áážáŻáĄááźáąáĄááąáĄáŹá¸ á
á
áşááąá¸áááşáĄáá˝ááş á
ááşáááŻááşá¸ááĄá
á
// port bits ááťáŹá¸áááş ááááşáááşááŹá¸ááąáŹ port D bits á áĄááźáąáĄááąáááŻáˇ ááźá
áşáááşá
{
pinState = (PIND >> 4) & ( b << rc );
if (pumrcounter [rc] != pinState) { // áážááˇáş ááááŻááşááŽááŤáá áááŻáˇááąáŹááş
pumrcounter[rc] = pinState; // port bit status variable ááᯠvalue áĄáá
áş 1/0 ááᯠáááşáážááşááąá¸ááźááşá¸
}
// áĄááąáŹááşááááşá¸ááťáŻááşáááˇáş áĄááŹááášááŻááťáŹá¸á áĄááźáąáĄááąááᯠáá˝ážááşááźááźááşá¸á
// BLUE áááş áážáááźáŽá¸ááŹá¸ á
ááááş (áááŻáˇáááŻááş áá
áşááťá
áşáááŻááş?), RGB áážááˇáş BGR á ááąá¸áááşááąáŹ ááťááŻáˇáá˝ááşá¸ááťááşáá
áşááŻááźá
áşáááşá
if (pinState == ( b << rc )) {
tft.fillRect(15á ((rc * 10 + shift)), 7á 7á ST7735_BLUE); // áĄáááˇáşááááˇáşááąáá˝ááşáážáŻáĄáá˝ááş áĄá
áááşá¸ááąáŹááşááž áĄááźáŹááąáŹááşáááŻáˇ ááźáąáŹááşá¸ááŤá
} áááşáĄááźáŹá¸ {
tft.fillRect(15á ((rc * 10 + shift)), 7á 7á ST7735_GREEN); // áĄáááˇáşááááˇáşááąáá˝ááşáážáŻáĄáá˝ááş áĄááźáŹááž áĄá
áááşá¸ááąáŹááşáááŻáˇ ááźáąáŹááşá¸ááŤá
pump [rc] += 1; // áááşáááşááťáááşááąáŹááşááŹáááŻáˇ 1 á
áášáááˇáşáááˇáşááŤá
}
}
k++;
(á == áá) {
= = áá
;
tft.fillRect(30á shiftá 97á 40á ST7735_BLACK); // áááşáááşááťáááşááźááážáŻá§ááááŹááᯠáážááşá¸áááşá¸ááźááşá¸á
tft.fillRect(60á 120á 73á 7á ST7735_BLACK); // áážááˇáşáááşá
á˝á˛ááťáŹá¸
tft.setCursor(60á 120); // cursor áĄááąáĄááŹá¸ááᯠáááşáážááşááźááşá¸á
tft.print(rtc.getDateStr()); // LCD ááťááşáážáŹááźááşááąáŤáşáá˝ááş áááşá
á˝á˛ááᯠááźáááŤá
for (rc = 0; rc < 4; rc ++) // output operating hours áá
áşááŻááŻáśá¸á ááá áážááˇáşá
{
tft.setCursor ( 30á rc * 10 + shift ); // ááťááşáážáŹááźááş 10 áá
áşáááşááźááˇáş áĄáąáŹááşáááŻáˇ áá˝ážáąáˇááźááşá¸ááźááˇáş áá
áşááŹááŽá ááŹááąáŤááşá¸ááťáŹá¸á
á˝áŹ
tft.println(pump [rc] / m);
}
// âááŻááşááźááşá¸â áááşáááşáážáŻááŹááŽáááşáááŻá¸ááťáŹá¸ (á áášáááˇáşáĄáá˝ááşá¸) EEPROM //////////////////////////////
áĄáá˝ááş (rc = 0; rc < 4; rc++)
{
EEPROM.put(ááááşá
áŹá áááˇáş [rc]);
ááááşá
Ꮰ+= sizeof(float); // write address variable ááᯠáááŻá¸ááąá¸ááŤá
}
}
// áááŻááşáááşááťáž ááąá¸áááŻáˇááááşááᯠáá˝ážááşááźááąáŹ ááąááŹááž ááąááŽáááŻááťááşáááşáááŻáˇ ááąááŹááąá¸áááŻáˇááŤá
if ((k == 6 ) || (k == 18 ) || (k == 30 )) {
áááşáážááşááááŻá¸ááŹá¸ááąáŹ áážááşááťáŹá¸ááąáŹááąááŹá
radio.write(&startá sizeof(start));
áĄáá˝ááş (i = 0; i < 4; i++) {
data = pump [i];
radio.write(&dataá sizeof(ááąááŹ));
}
}
}
áĄááŻáśá¸áá˝ááş áážááşááťááşáĄááťááŻáˇá áá˝ááşá¸áĄáŹá¸á áŻááťáŹá¸áá˝ááş ááąáá˝ááşááźááşá¸áááş ááŻáášáááááşá¸ááąáŹáĄáááˇáşáá˝ááş ááźá áşááąáŤáşáááşá
Pull-up resistances R2-R5 áááş photoresistors GL36 ááŤááąáŹ áá˝áąá¸ááťááşáážáŻáĄáá˝ááş 5516 kOhm ááźá áşáááşá phototransistor optocoupler áážááˇáş relay áá˝ááş 4,7-5,1 kOhm ááŻáááşáážááşááŹá¸áááşá Arduino Nano v3.0 bootloader ááᯠwatchdog timer ááážááşáááşááąáŹáááşáááşáážáŻáĄáá˝ááş TL866A ááááŻááááşááŹáááŻáĄááŻáśá¸ááźáŻá Arduino Uno ááźááˇáşáĄá áŹá¸áááŻá¸áá˛áˇáááşá fuses ááťáŹá¸áááş 4,3 V áĄáááşáááŻáˇáĄáŹá¸áá˝ááşáááşáááşáááş ááźáŻááźááşááŹá¸ááŤáááşá ááźááşáááźááşáááşáááşáážááşáááşáááşá¸ R6 C3 ááᯠáĄááŻáśá¸áááźáŻááŤá ááá°ááŹááááŻááááşáá˝ááşá ááŻááşáá˝ážááˇáşáááˇáşááźáááşáážáŻááşá¸áááş áááŻááşá ááşáá˛áˇáĄáá˝áŹáĄááąá¸áážááˇáş áááşáááŻááşááźááşá¸ááážáááŤá 2,4 MHz áĄáá˝áŹáĄááąá¸ááᯠááźáááşáážáŻááşá¸ 2400.0-2483.5 MHz áá˝ááş áááˇáşáááşááŹá¸áááşá
E01-ML01DP05 transmitter ááĄáá˝áŹáĄááąá¸áááş 2400-2525 MHz ááźá
áşáááşá áááşáážááşááŹá¸ááąáŹ radio.setChannel(1) ááťááşáááşááᯠâRF24_2MBPSâ áĄááźá
áş áĄááźááşáážáŻááşá¸áááşáážááşááąáŹáĄááŤáá˝ááş ááťááşáááşáá
áşááŻá bandwidth áááş 120 MHz ááźá
áşááźáŽá¸ ááąáŹááşáá
áşááŻáĄáŹá¸ ááááşá¸áááŻááşáááşá áááŻáááŻáááşáážáŹá Band áááş 2 MHz ááźá
áşááááˇáşáááşá
source: www.habr.com