Подредактировать скетч

Ребята всем привет! Есть 24 нефиксируемых кнопки, подключенные к трем 74нс165. нужно изменить код, чтобы работало так: кнопку нажал-включил, еще нажал- выключил.

#define latchPin 10 // защелка 12 вывод м/c
#define clockPin 11 // Синхронизация 11 вывод м/c
#define dataPin 12 // Данные 14 вывод м/c

#define clkPin 7 // CLK
#define latchInPin 4 // защелка
#define dateInPin 6 // DATE IN

uint8_t mk_C = 1, dateIn = 0;
uint8_t mk = 0b00000000;

void setup()
{
// инициализация пинов как выходы
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
// инициализация пинов как входы
pinMode(clkPin, OUTPUT);
pinMode(latchInPin, OUTPUT);
pinMode(dateInPin, INPUT); // инициализация пина как вход
digitalWrite(latchInPin, 1);
digitalWrite(clkPin, 0);
}

void date_In() // Подпрограмма для чтения одной 74HC165
{
mk_C = 0;
mk = 0;
do { // Бесконечный цыкл пока (mk_C < 8).
mk = mk << 1; // Сдвинуть на один бит в лево.
mk = mk + digitalRead(dateInPin); // Прочесть и записать один бит.
digitalWrite(clkPin, 1); // Переключить один бит.
//delay(1);
digitalWrite(clkPin, 0); // Подготовить для переключения одного бита.
//delay(1);
mk_C ++;
} while (mk_C < 8); // Выполняем до тех пор пока CLK меньше 8 тактов.
// delay(1);
}

void loop()
{
digitalWrite(latchInPin, 0); // Прочесть и зиблокировать CLK всех 74HC165. Вывести 1-й бит.
digitalWrite(latchInPin, 1); // Снятие блокировки CLK.
digitalWrite(latchPin, LOW); // Защёлка для приёма
date_In(); // Прочитать первую 74HC165.
shiftOut(dataPin, clockPin, MSBFIRST, mk); // отправляем данные в 1-ю м/с 74HC595
date_In(); // Прочитать вторую 74HC165.
shiftOut(dataPin, clockPin, MSBFIRST, mk); // отправляем данные во 2-ю м/с 74HC595
date_In(); // Прочитать третью 74HC165.
shiftOut(dataPin, clockPin, MSBFIRST, mk); // отправляем данные в 3-ю м/с 74HC595
digitalWrite(latchPin, HIGH); // Защёлка передача
}

Понятно.

1 лайк

А я не совсем понял. Это всё сразу нажать нужно или только одну.? А если одну, то какую? А если не одную то сколько? А если больше? А если меньше? А если не нажать? А если нажать не в той последовательности? А если не нажать, но сработает? А если не сработает, а ты уже нажал? А если нажал, а уже не хочется? А если хочется нажать, а не нажимается? А если нажимать чаще двух раз в секунду? А если держать всё кнопки нажатыми одновременно? А если не нажимать всё кнопки одновременно? А если отпустить кнопку? А если всё кнопки отпустить? А если пол мыть и кнопки нажимать? А если пол мыть и кнопки не нажимать? А если нажимать кнопки и не нажимать одновременно? А если одновременно? А если если?…

Остановите меня…

4 лайка

lol :wink:

Когда хотя-бы читать научишься, тогда и приходи.

скетч уже настроен так, что если подаешь кнопкой на определенный вход микросхемы питание, то на соответствующем выходе микросхемы появляется питание и включает реле. но чтобы реле было включено нужно удерживать кнопку, то есть скетч настроен под кнопку с фиксацией, а мне нужно чтобы было настроено на кнопку без фиксации.

Десять баксов… с кнопки.

1 лайк

сесть попой на все кнопки сразу?

Что? Обратный отсчёт старта ракеты на Марс?

Демпингуете! ФАС на Вас нет!