помогите с небольшой проблемкой
- Войдите на сайт для отправки комментариев
Пт, 24/10/2014 - 21:42
0.96" Oled дисплей i2c.
ds1302 часики
dht11 термодатчик.
написал вот такой кодик. хотел добавить такую функцию, чтобы каждый час, ну или по заданным параметрам
времени в самом коде либо мигал диодиком,ну или бибикал. типа в 18:22 включал свет на 5 мин . и что-бы с термодатчиком так-же можно было делать. перепробывал разные подходы , ну никак не заставить. в програмировании я слабоват. Помогите если кто может.
#include <Arduino.h> #include <Wire.h> #include <MicroLCD.h> #include <dht.h> #include <DS1302.h> #define dht_dpin A0 //no ; here. Set equal to channel sensor is on DS1302 rtc(2, 3, 4); dht DHT; //LCD_SH1106 lcd; /* for SH1106 OLED module */ LCD_SSD1306 lcd; /* for SSD1306 OLED module */ static const PROGMEM uint8_t cels[] = { 0x00, 0x00, 0xF0, 0xF8, 0x18, 0x18, 0x18, 0x38, 0x30, 0x00, 0x00, 0x30, 0x48, 0x48, 0x30, 0x00, 0x00, 0x00, 0x0F, 0x1F, 0x18, 0x18, 0x18, 0x1C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; static const PROGMEM uint8_t perc[] ={ 0x00, 0x00, 0x00, 0x18, 0x24, 0x24, 0x18, 0x80, 0xC0, 0x60, 0x38, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x38, 0x1C, 0x06, 0x03, 0x01, 0x18, 0x24, 0x24, 0x18, 0x00, 0x00, 0x00 }; static const PROGMEM uint8_t smile[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE8, 0xEC, 0xCE, 0x8E, 0x8E, 0x8C, 0x88, 0x80, 0x80, 0x00, 0x3C, 0x78, 0xF0, 0xC0, 0xC0, 0xDC, 0x58, 0x10, 0x00, 0xFE, 0xFE, 0xFE, 0x26, 0x6E, 0xFC, 0xF8, 0xD0, 0x80, 0x00, 0xFE, 0xFE, 0xFE, 0x6E, 0x6E, 0x6C, 0x48, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xCE, 0xCE, 0xDE, 0xFC, 0xF8, 0x30, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0x1E, 0x3C, 0x78, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0xF0, 0xF8, 0xFC, 0x9E, 0x0E, 0x0E, 0x0E, 0x9E, 0xFC, 0xF8, 0x70, 0x00, 0xE0, 0xE8, 0xEC, 0xCE, 0x8E, 0x2E, 0x6C, 0xE8, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x00, 0x03, 0x03, 0x03, 0x01, 0x01, 0x01, 0x03, 0x03, 0x02, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFC, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFC, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x7F, 0xFF, 0xFF, 0xFF, 0xFC, 0xF0, 0x10, 0x08, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x04, 0x04, 0x18, 0x30, 0xF8, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0xFF, 0x7F, 0xFF, 0x0C, 0x10, 0x30, 0x60, 0x60, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x60, 0x20, 0x30, 0x18, 0xFE, 0xFF, 0xBF, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3E, 0x78, 0xF1, 0xF2, 0xE2, 0xE2, 0xC6, 0x04, 0x0D, 0x0F, 0x1E, 0x00, 0x00, 0x00, 0x1C, 0x0F, 0x0D, 0x0D, 0xC4, 0xE6, 0xE2, 0xF2, 0xF1, 0xF9, 0x7C, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x1F, 0x00, 0x00, 0x06, 0x1E, 0x1E, 0x1E, 0x0E, 0x02, 0x00, 0x00, 0x1F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x4A, 0x4A, 0x4A, 0x40, 0x00, 0x7E, 0x7E, 0x40, 0x40, 0x40, 0x40, 0x00, 0x7E, 0x7E, 0x4A, 0x4A, 0x4A, 0x40, 0x00, 0x3C, 0x7E, 0x62, 0x42, 0x42, 0x42, 0x00, 0x02, 0x7E, 0x7E, 0x02, 0x02, 0x02, 0x00, 0x7E, 0x7E, 0x26, 0x6E, 0x7C, 0x58, 0x00, 0x3C, 0x7E, 0x62, 0x62, 0x7E, 0x3E, 0x00, 0x7E, 0x7E, 0x18, 0x30, 0x7E, 0x7E, 0x00, 0x42, 0x7E, 0x7E, 0x00, 0x3C, 0x7E, 0x62, 0x42, 0x42, 0x42, 0x00, 0x5C, 0x5E, 0x5A, 0x7A, 0x7A, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x7E, 0x7E, 0x00, 0x7E, 0x7E, 0x18, 0x30, 0x7E, 0x7E, 0x00, 0x3C, 0x7E, 0x62, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; const PROGMEM uint8_t tick[16 * 16 / 8] = {0x00,0x80,0xC0,0xE0,0xC0,0x80,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0x78,0x30,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00}; const PROGMEM uint8_t cross[16 * 16 / 8] = {0x00,0x0C,0x1C,0x3C,0x78,0xF0,0xE0,0xC0,0xE0,0xF0,0x78,0x3C,0x1C,0x0C,0x00,0x00,0x00,0x30,0x38,0x3C,0x1E,0x0F,0x07,0x03,0x07,0x0F,0x1E,0x3C,0x38,0x30,0x00,0x00}; void setup() { lcd.begin(); lcd.draw(smile, 128, 64); delay(1000); lcd.clear(); } void loop() { DHT.read11(dht_dpin); lcd.setCursor(0, 0); lcd.println(rtc.getDOWStr()); lcd.setCursor(50, 0); lcd.println(rtc.getDateStr()); lcd.setFontSize(FONT_SIZE_MEDIUM); lcd.setCursor(0, 2); lcd.println(rtc.getTimeStr()); lcd.setFontSize(FONT_SIZE_SMALL); delay(100); lcd.setCursor(0, 5); lcd.print(" T="); lcd.print(DHT.temperature); lcd.print(" Celsius"); lcd.setCursor(0, 6); lcd.print(" H="); lcd.print(DHT.humidity); lcd.print(" %"); }
Можно вот так:
Спасибо. попробую
Я так понимаю что надо что то делать в заданное время, а не через промежуток времени (несмотря на то, что часто это может значить одно и то же)
Вариант предложенный leds, предусматривает не использовать модуль часов, и не будет зависить от времени вобще. Т.е. через час после заливки скетча и каждый час.
и там ещё можно напоротся на переполнение millis и обнуление...
Я бы предпочёл читать время из модуля часов и после этого что то уже делать.
Вы правы hugoboss317. именно это мне и надо. я пробывал несколько вариантов из других скечей. но неполучается. я пока не силен в програмировании.
Можно попробовать сделать следущее:
Добавить в библиотеку функцию для чтения значений времени, но не для формирования массива символов, как это уже есть.
т.е. не
а, допустим (как назвать решаем сами):
и соответственно в файл cpp вставляем
где poss от 0 до 6 и прочитает секунды, минуты ..... год ( 0 -> секунды , 6 -> год)
а в файл .h нужно впихнуть прототип этой функции
сразу после
Выглядить в итоге должно примерно так:
я так понял добовлять надо в библиотеку часов. или в сам скеч?
я так понял добовлять надо в библиотеку часов. или в сам скеч?
Часов конечно. .cpp и .h это файлы библиотеки. На сколько я вижу, Вы используете DS1302.
ok попробуем.