Запомнить положения светодиодов
- Войдите на сайт для отправки комментариев
Сб, 29/08/2015 - 13:27
Всем привет. Есть проблемка с кодом когда выключаю и включаю ардуино светодиоды все тухнут а надо что бы сохроняли свое состояние
#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 ");
}
}
вводите переменные состояния светодиодов
при их изменении записывайте их в EEPROM
при включении дуни в сетапе читайте из памяти
Это в коде надо изменять что то? Можно по подробнее описать
ну конечно, надо код дописать)))))
Можите мне скетч скинуть?
для скинуть скетч есть раздел "ищу исполнителя"
здесь вы что то пишите и спрашиваете о своих проблемах