You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

139 lines
2.7 KiB

/*
5 режимов энергосбережения:
SLEEP_MODE_IDLE
SLEEP_MODE_ADC
SLEEP_MODE_PWR_SAVE
SLEEP_MODE_STANDBY
SLEEP_MODE_PWR_DOWN
*/
#include <Wire.h>
#include "U8glib.h"
#include <avr/sleep.h>
#include <nrf24l01p.h>
#include <SPI.h>
#include <OneWire.h>
OneWire ds(2);//макетка
//OneWire ds(4);//плата
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI
enum
{
SPI_SS_PIN = 10,
NRF_CE_PIN = 9,//5плата//9-макетка
NRF_CHANNEL = 100,
NRF_POWER_UP_DELAY = 2,
NRF_PAYLOAD_LENGTH = 16
};
// char test_data[] = "test3,3v";
char test_data[17] ;
//const char test_data1[] = "2u+07.10h63.8s92";
extern const uint8_t pic1[];
int vc=5;
int vd=8;
int tc=25;
int td=3;
int zn=1;//+
int hc=75;
int hd=6;
int s=56;
int sh=0;
boolean e=0;
void setup()
{
SPI.begin();
pinMode(SPI_SS_PIN, OUTPUT);
digitalWrite(SPI_SS_PIN, HIGH);
pinMode(NRF_CE_PIN, OUTPUT);
digitalWrite(NRF_CE_PIN, LOW);
uint8_t address[5] = { 0xE2, 0xE4, 0x23, 0xE4, 0x02 };
nrf_init(address);
//pinMode(13, OUTPUT);
interrupts();
// Serial.begin(9600);
// Serial.println("Init");
// ds.reset();
//ds.write(0xCC);
//ds.write(0x4E);
//ds.write(0x7D);
//ds.write(0xFC);
//ds.write(0x7F);//точность изм от нее зависит скорость опроса tconvert=750 мс/(2**(3-R))
//0,5С - 93,75ms 0x1F
//0.25 - 187.5ms 0x3F
//0.125 - 375ms 0x5F
// 0.0625- 750ms-0x7F
delay(500);
}
void loop()
{//digitalWrite(13, HIGH);
dtu21();
// temperat();
bat();
//bat();
// digitalWrite(13, LOW);
// delay(500);
// digitalWrite(13, HIGH);
// digitalWrite(13, LOW);
// delay(500);
// digitalWrite(13, HIGH);
//Serial.print("Trying to send packet...");
//**************************************************
if (sh==0){
data();
peredat ();
scan ();
}
sh++;
if (e==1)
{u8g.firstPage();
do {
if (sh<10)
{ menu0();
u8g.setPrintPos(50, 13);
u8g.print("OFF-");
// u8g.print(" ");
u8g.print(10-sh);
u8g.print(" c");
}
else
{
sleep ();
}
} while( u8g.nextPage() );
}
else
{
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // выбор режима
sleep_mode(); // уходим в спячку
}
//******************************************
// if (sh==10){
//}
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // выбор режима
//sleep_mode(); // уходим в спячку
// delay(10000);
}