Запомнить положения светодиодов

DimaDarma
Offline
Зарегистрирован: 23.08.2015

Всем привет. Есть проблемка с кодом когда выключаю и включаю ардуино светодиоды все тухнут а надо что бы сохроняли свое состояние 


#include "DHT.h"
#include <Wire.h>        // Добавляем необходимые библиотеки
#include <LiquidCrystal_I2C.h>
#include <dht11.h>
dht11 DHT;               // Объявление переменной класса dht11
#define DHT11_PIN 4      // Датчик DHT11 подключен к цифровому пину номер 4

byte degree[8] =         // Битовая маска символа градуса
{
  B00111,
  B00101,
  B00111,
  B00000,
  B00000,
  B00000,
  B00000,
};    
 
LiquidCrystal_I2C lcd(0x27,16,2);   // Задаем адрес и размерность дисплея


int ledPin_1 = 8;
int ledPin_2 = 9;
int ledPin_3 = 10;
int ledPin_4 = 11;
int ledPin_5 = 13;

void setup() {
  Serial.begin(9600);
 Serial.println("DHTxx test!");

  pinMode(ledPin_1, OUTPUT);
  pinMode(ledPin_2, OUTPUT); 
  pinMode(ledPin_3, OUTPUT);
  pinMode(ledPin_4, OUTPUT); 
  pinMode(ledPin_5, OUTPUT);
   lcd.init();                       // Инициализация lcd             
  lcd.backlight();                  // Включаем подсветку
  lcd.createChar(1, degree);        // Создаем символ под номером 1

}

void loop() {
    // Выводим показания влажности и температуры
  lcd.setCursor(0, 0);              // Устанавливаем курсор в начало 1 строки
  lcd.print("Humidity =    % ");     // Выводим текст
  lcd.setCursor(11, 0); 
  lcd.print(DHT.humidity, 1);
  lcd.setCursor(0, 1);              // Устанавливаем курсор в начало 2 строки
  lcd.print("Temp     =   \1C ");    // Выводим текст, \1 - значок градуса
  lcd.setCursor(11, 1);             
  lcd.print(DHT.temperature,1);  

  int chk;    
  ; // Мониторинг ошибок
  chk = DHT.read(DHT11_PIN);    // Чтение данных
  switch (chk){
  case DHTLIB_OK:  
    break;
  case DHTLIB_ERROR_CHECKSUM:  
    lcd.clear(); 
    lcd.print("Checksum error");  
    break;
  case DHTLIB_ERROR_TIMEOUT:
    lcd.clear(); 
    lcd.print("Time out error");
    break;
  default:
    lcd.clear(); 
    lcd.print("Unknown error");
    break;
  }
  delay(500);     

  if (Serial.available() > 0) {   
    int i = Serial.read()-48;
    if (i == 2)digitalWrite(ledPin_1, !digitalRead(ledPin_1)),Serial.println(" ledPin_1 !digitalRead ");
    if (i == 3)digitalWrite(ledPin_2, !digitalRead(ledPin_2)),Serial.println(" ledPin_2 !digitalRead ");
    if (i == 4)digitalWrite(ledPin_3, !digitalRead(ledPin_3)),Serial.println(" ledPin_3 !digitalRead ");
    if (i == 5)digitalWrite(ledPin_4, !digitalRead(ledPin_4)),Serial.println(" ledPin_4 !digitalRead ");
    if (i == 6)digitalWrite(ledPin_5, !digitalRead(ledPin_5)),Serial.println(" ledPin_5 !digitalRead ");
  }
}

 

vvadim
Offline
Зарегистрирован: 23.05.2012

вводите переменные состояния светодиодов
при их изменении записывайте их в EEPROM

при включении дуни в сетапе читайте из памяти 

DimaDarma
Offline
Зарегистрирован: 23.08.2015

Это в коде надо изменять что то? Можно по подробнее описать

vvadim
Offline
Зарегистрирован: 23.05.2012

ну конечно, надо код дописать)))))

DimaDarma
Offline
Зарегистрирован: 23.08.2015

Можите мне скетч скинуть?

vvadim
Offline
Зарегистрирован: 23.05.2012

для скинуть скетч есть раздел "ищу исполнителя"

здесь вы что то пишите и спрашиваете о своих проблемах