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
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);
|
|
}
|
|
|
|
|
|
|