Ви не увійшли.
Нет не прикалываюсь. Особой разницы нет, но на С++ выходит намного лаконичнее. Я не знаю, что вам ответить. Я не понял что вы о себе говорите. Напишите конкретнее. Обсудим.
Неактивний
О себе ничего.) О кнопках. Си чем удобнее ассемблера? Тем что выше абстракция, нет привязки к железу. А у вас? Только Ардуино. Только С++. Ограничение в одну кнопку. Понятно, что это не та задача, что бы её без особых проблем адаптировать под что то другое. Однако и она требует каких то усилий. Только заради чего? Отчего бы не писать проще, если это возможно. И если это удобно во всех случаях.
Неактивний
О себе ничего.) О кнопках. Си чем удобнее ассемблера? Тем что выше абстракция, нет привязки к железу. А у вас? Только Ардуино. Только С++. Ограничение в одну кнопку. Понятно, что это не та задача, что бы её без особых проблем адаптировать под что то другое. Однако и она требует каких то усилий. Только заради чего? Отчего бы не писать проще, если это возможно. И если это удобно во всех случаях.
Я знаю, что я неправильно, непонятно, и сложно программирую. Вы не открыли мене на это глаза первый. Эти программулинки предназначались для Ардуино и не для чего более. Использование их в программах Ардуино не требует каких-то особенных умственных усилий, за-ради чего они и были написаны.
Неактивний
Ну... относительно неправильности, непонятности и сложности, я вам это не говорил. Всё определяется ситуацией и текущей задачей. Должно быть у вас не стоял вопрос в универсальности, поэтому вам и незачем было париться.)
Неактивний
Спасибо, что быстро откликнулись, всё работает, как надо. Был затык с одной из кнопок (UP), поправил значение её сопротивления и все работает дальше. 98 Ом намерил, в скетче записал, как 100, т. е. почти без запаса. Замена записи на 120 всё исправила.
#include <DS1307.h>
// Init the DS1307
DS1307 rtc(SDA, SCL);
int PinOut[16] {22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37}; // пины выходы
int PinIn[16] {38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53}; // пины входа
int val = 0;
int i = 0;// 1
int j = 0;// 1
const short value[16][16]
//unsigned int value[16][16]signed char
{ {16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1},
{32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17},
{48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33},
{64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49},
{80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65},
{96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81},
{112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97},
{128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113},
{144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129},
{160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145},
{176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161},
{192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177},
{208, 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 193},
{224, 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209},
{240, 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225},
{256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241}
};
// двойной массив, обозначающий кнопку
void setup()
{
pinMode (22, OUTPUT); // инициализируем порты на выход (подают нули на столбцы)
pinMode (23, OUTPUT);
pinMode (24, OUTPUT);
pinMode (25, OUTPUT);
pinMode (26, OUTPUT);
pinMode (27, OUTPUT);
pinMode (28, OUTPUT);
pinMode (29, OUTPUT);
pinMode (30, OUTPUT);
pinMode (31, OUTPUT);
pinMode (32, OUTPUT);
pinMode (33, OUTPUT);
pinMode (34, OUTPUT);
pinMode (35, OUTPUT);
pinMode (36, OUTPUT);
pinMode (37, OUTPUT);
pinMode (38, INPUT); // инициализируем порты на вход с подтяжкой к плюсу (принимают нули на строках)
digitalWrite(38, HIGH);
pinMode (39, INPUT);
digitalWrite(39, HIGH);
pinMode (40, INPUT);
digitalWrite(40, HIGH);
pinMode (41, INPUT);
digitalWrite(41, HIGH);
pinMode (42, INPUT);
digitalWrite(42, HIGH);
pinMode (43, INPUT);
digitalWrite(43, HIGH);
pinMode (44, INPUT);
digitalWrite(44, HIGH);
pinMode (45, INPUT);
digitalWrite(45, HIGH);
pinMode (46, INPUT);
digitalWrite(46, HIGH);
pinMode (47, INPUT);
digitalWrite(47, HIGH);
pinMode (48, INPUT);
digitalWrite(48, HIGH);
pinMode (49, INPUT);
digitalWrite(49, HIGH);
pinMode (50, INPUT);
digitalWrite(50, HIGH);
pinMode (51, INPUT);
digitalWrite(51, HIGH);
pinMode (52, INPUT);
digitalWrite(52, HIGH);
pinMode (53, INPUT);
digitalWrite(53, HIGH);
Serial.begin(9600); // открываем Serial порт
// Initialize the rtc object
rtc.begin();
// Set the clock to run-mode
rtc.halt(false);
// The following lines can be uncommented to set the time
//rtc.setDOW(FRIDAY); // Set Day-of-Week to SUNDAY
//rtc.setTime(22, 01, 0); // Set the time to 12:00:00 (24hr format)
//rtc.setDate(17, 10, 2018); // Set the date to October 3th, 2010
}
void matrix () // создаем функцию для чтения кнопок
{
for (int i = 1; i <= 16; i++) // цикл, передающий 0 по всем столбцам
{
digitalWrite(PinOut[i - 1], LOW); // если i меньше 16 , то отправляем 0 на ножку
for (int j = 1; j <= 16; j++) // цикл, принимающих 0 по строкам
{
if (digitalRead(PinIn[j - 1]) == LOW) // если один из указанных портов входа равен 0, то..
{
Serial.println( value[i - 1][j - 1]); // то b равно значению из двойного массива
Serial.println( "shleif on");
//Serial.println( 256);
delay(175);
//Serial.println(" "); // перенос строки.
// Send date
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
// Send time
Serial.println(rtc.getTimeStr());
}
}
digitalWrite(PinOut[i - 1], HIGH); // подаём обратно высокий уровень
//delay(175);
}
}
void loop()
{
matrix(); // используем функцию опроса матрицы
}
Неактивний
Добрый День!
Помогите пожалуйста.Перед вами код опроса 256 кнопок(контактов).Опрос идет, но нужен вывод в сериал контакт включен, контакт выключен .Спасибо.
Спасёт: if (нажата) {...} then {...}
Спасибо за ответ .Условие следующее: если одна из кнопок нажата выводим на сериал один раз(шлейф включен) ,если эта же кнопка отжата выводим один раз на сериал (шлейф выключен).
Неактивний
Спасибо за ответ .Условие следующее: если одна из кнопок нажата выводим на сериал один раз(шлейф включен) ,если эта же кнопка отжата выводим один раз на сериал (шлейф выключен).
Вот, помоги человеку так он уже и условия выставляет, с выводом на сериал. Пусть сам выводит на сериал.