Здравствуйте.
Помогите разобраться с кодом:
#include <PCF8574.h>
PCF8574 pcf8574_1(0x27); // Создаем объект и указываем адрес устройства 0x27
//назначаем пины, которые будут отвечать за работу кнопки и светодиода
//задаем начальные значения для переменных
boolean buttonWasUp_1 = true;
boolean buttonWasUp_2 = true;
boolean buttonWasUp_3 = true;
boolean buttonWasUp_4 = true;
boolean ledEnabled_1 = false;
boolean ledEnabled_2 = false;
boolean ledEnabled_3 = false;
boolean ledEnabled_4 = false;
void setup()
{
Serial.begin(9600);
//конфигурируем пины, пин кнопки на вход(с него мы будем считывать данные)
pcf8574_1.pinMode(P0, OUTPUT);
pcf8574_1.pinMode(P1, OUTPUT);
pcf8574_1.pinMode(P2, OUTPUT);
pcf8574_1.pinMode(P3, OUTPUT);
//пин светодиода на выход, на него мы будем подавать сигнал
pcf8574_1.pinMode (P4, INPUT_PULLUP);
pcf8574_1.pinMode (P5, INPUT_PULLUP);
pcf8574_1.pinMode (P6, INPUT_PULLUP);
pcf8574_1.pinMode (P7, INPUT_PULLUP);
// Проверка инициализация библиотеки pcf8574
Serial.print("Init pcf8574...");
if (pcf8574_1.begin()){
Serial.println("OK");}
else{
Serial.println("ERROR");}
delay(50); // Необходимо время для инициализации
}
void loop()
{
//1
boolean buttonIsUp_1 = pcf8574_1.digitalRead(P4);
if (buttonWasUp_1 && !buttonIsUp_1) {
delay(18);
buttonIsUp_1 = pcf8574_1.digitalRead (P4);
if (!buttonIsUp_1) {
ledEnabled_1 = !ledEnabled_1;
pcf8574_1.digitalWrite(P0, ledEnabled_1);
}
}
buttonWasUp_1 = buttonIsUp_1;
//2
boolean buttonIsUp_2 = pcf8574_1.digitalRead(P5);
if (buttonWasUp_2 && !buttonIsUp_2) {
delay(18);
buttonIsUp_2 = pcf8574_1.digitalRead (P5);
if (!buttonIsUp_2) {
ledEnabled_2 = !ledEnabled_2;
pcf8574_1.digitalWrite(P1, ledEnabled_2);
}
}
buttonWasUp_2 = buttonIsUp_2;
//3
boolean buttonIsUp_3 = pcf8574_1.digitalRead(P6);
if (buttonWasUp_3 && !buttonIsUp_3) {
delay(18);
buttonIsUp_3 = pcf8574_1.digitalRead (P6);
if (!buttonIsUp_3) {
ledEnabled_3 = !ledEnabled_3;
pcf8574_1.digitalWrite(P2, ledEnabled_3);
}
}
buttonWasUp_3 = buttonIsUp_3;
//4
boolean buttonIsUp_4 = pcf8574_1.digitalRead(P7);
if (buttonWasUp_4 && !buttonIsUp_4) {
delay(18);
buttonIsUp_4 = pcf8574_1.digitalRead (P7);
if (!buttonIsUp_4) {
ledEnabled_4 = !ledEnabled_4;
pcf8574_1.digitalWrite(P3, ledEnabled_4);
}
}
buttonWasUp_4 = buttonIsUp_4;
}
Отправлено
Код рабочий, единственное при запуске или рестарта ардуино уно, свето диоды сразу загораються, потом при нажатии кнопки гасну, хотелось бы на оборот, при запуске они не горели, а при нажатии загорались.