RFID и аналоговые кнопки
- Войдите на сайт для отправки комментариев
Пнд, 01/02/2021 - 14:04
Задача такая, я собираю комбинированный замок, пин-код на одной пятипозиционной кнопке, посаженой на 1 аналоговый вход и RFID модуль pn 532 подключён по I2C + дисплей. Все работает, но кнопки при включённом RFID модуле не работают, не отображаются звёздочки, и не срабатывает функция открыто-закрыто, стоит мне выдернуть минусовой провод RFID модуля , так кнопки сразу начинают функционировать, но естественно перестаёт работать RFID. Библиотека на rfid это https://github.com/elechouse/PN532. Предоплату я вам внесу, вы посмотрите сможете ли вы решить эту задачу.
Можем списаться по вотс апу
схема есть?
Собранный мной скетч есть
#include <PN532_I2C.h> #include <PN532.h> #include <Wire.h> PN532_I2C pn532i2c( Wire ) ; PN532 nfc(pn532i2c) ; const int LOCK = 6; // подключаем электрозамок uint8_t success = 0 ; // правильный уид uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 }; // Буфер для сохранения возвращаемого теплоносителя uint8_t uidLength = 0 ; // Length of the UID (4 or 7 bytes depending on ISO14443A card type) // uid required to access masterMode() and add/remove tags and cards const uint8_t uidsKnown[3][4] // Change uidKnownCount(3) to the number of UIDs in the multidimensional array { 0x49, 0x61, 0xC4, 0x6E, // User 1 0x49, 0x61, 0xC4, 0x6E, // User 2 0xBE, 0xEF, 0xDE, 0xAD // User 3 } ; bool uidMatch = false ; const uint8_t uidKnownCount = 3 ; // Изменение на количество пользователей в многомерном массиве const uint8_t uidKnownLength = 4 ; #define red 13 // #define blue 6 //#define green 7 //#define beep 12 #define NUM_KEYS 5 // определяем, сколько кнопок у нас подключено int adcKeyVal[NUM_KEYS] = {0, 210, 416, 619, 870}; #define codeLength 5 // длина кода, открывающего замок const int codeOrigin[codeLength] = {2, 3, 4, 3, 5}; // массив, содержащий код, открывающий замок. Число элементов массива должно быть равным codeLength const int unlockTime = 4000; // время разблокировки замка, миллисекунд int codePressed[codeLength]; // массив для записи номеров нажатых клавиш int pressCount; // счетчик нажатий (замок разблокируется при пятом нажатии) unsigned int oldTime; // переменные для счетчика времени неактивности набора кода unsigned int currentTime; // текущее время int const timeout = 5; // время таймаута при наборе кода, сек. После таймаута неполностью набранный код сбрасывается #include <U8g2lib.h> U8G2_ST7565_ERC12864_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8); void setup() { u8g2.begin(); u8g2.enableUTF8Print(); u8g2.setFont(u8g2_font_10x20_t_cyrillic); Serial.begin(9600); pinMode(LOCK, OUTPUT); //объявляем пин как выход. digitalWrite(LOCK, LOW); //Выключаем замок nfc.begin() ; uint32_t versiondata = nfc.getFirmwareVersion() ; nfc.SAMConfig() ; return ; pressCount = 0; // Колличество нажатий // pinMode(red, OUTPUT); //pinMode(green, OUTPUT); //pinMode(beep, OUTPUT); } const char s[] PROGMEM = "ДОБРО"; const char s1[] PROGMEM = "ПОЖАЛОВАТЬ:" ; const char s2[] PROGMEM = "ОТКРЫВАЮ" ; const char s3[] PROGMEM = "ХА..ХА..ХА" ; const char s4[] PROGMEM = "НЕ ВЕРНО" ; const char s5[] PROGMEM = "*_"; void loop() { u8g2.firstPage(); do { u8g2.setCursor(30, 15); u8g2.print((class __FlashStringHelper *)s); // print a sting, located in PROGMEM u8g2.setCursor(13, 40); u8g2.print((class __FlashStringHelper *)s1); // print a sting (PROGMEM) via RAM array. } while ( u8g2.nextPage() ); success = 0 ; // успех uidLength = 0 ; // Длинна UID (4 или 7 байт зависимые на ISO14443A card type) for ( int it = 0 ; it < 7 ; it++ ) // Clear UID buffer on each iteration of loop() uid[it] = 0 ; uidMatch = false ; // совпадение uid лож success = nfc.readPassiveTargetID( PN532_MIFARE_ISO14443A, uid, &uidLength) ; if ( uidKnownLength == uidLength ) // сохраненая длинна uid = введеному uid { for ( byte it = 0 ; it < uidKnownCount ; it++ ) { // Проверьте каждую строку в массиве uidsKnown здесь, вырвитесь из блока, если найдено совпадение if ( uidsKnown[it][0] == uid[0] && uidsKnown[it][1] == uid[1] && uidsKnown[it][2] == uid[2] && uidsKnown[it][3] == uid[3] ) { Open(); uidMatch = true ; return ; } else { Close(); uidMatch = false; } return; } } if (pressCount == 1) { u8g2.drawStr(40, 66, "*-"); u8g2.sendBuffer(); } if (pressCount == 2) { u8g2.drawStr(40, 66, "**-"); u8g2.sendBuffer(); } if (pressCount == 3) { u8g2.drawStr(40, 66, "***-"); u8g2.sendBuffer(); } if (pressCount == 4) { u8g2.drawStr(40, 66, "****-"); u8g2.sendBuffer(); } if (pressCount == 5) { u8g2.drawStr(40, 66, "*****"); u8g2.sendBuffer(); } currentTime = millis(); // записываем текущее время (в миллисекундах), прошедшее с момента начала исполнения программы if (currentTime - oldTime <= timeout * 1000) { int key; // заводим переменную с именем key key = get_key(); // записываем в эту переменную номер нажатой кнопки, вызывая на исполнение нижеописанную функцию get_key //Serial.println("«Введите код:»"); //digitalWrite(blue, HIGH); // включаем синий светодиод if (key > 0) // если кнопка нажата { codePressed[pressCount] = key; // записываем номер нажатой кнопки в массив //digitalWrite(beep, HIGH); // короткий сигнал звукоизлучателя (50 мс) //delay(50); //digitalWrite(beep, LOW); //digitalWrite(blue, LOW); delay(200); //digitalWrite(blue, HIGH); pressCount++;// увеличиваем счетчик нажатий oldTime = currentTime; // сбрасываем счетчик времени таймаута } } else { pressCount = 0; //u8g2.clear(); oldTime = currentTime; // если достигнут таймаут, сбрасываем частично набранный код } if (pressCount == codeLength) { int compareResult = 1; for (int i = 0; i < codeLength; i++) if (codeOrigin[i] != codePressed[i]) // если весь код введен, сравниваем поэлементно два массива: codeOrigin и codePressed compareResult = 0; // если хотя бы одна пара элементов не равна if (compareResult == 1) // если массивы совпадают { Open(); return; } // если введен неправильный код else { Close(); return; } } } // Эта функция будет выполнена только когда ее вызвали из программы // Функция читает значение с АЦП, куда подключена аналоговая клавиатура // и сравнивает с калибровочными значениями, определяя номер нажатой кнопки void Open() { //digitalWrite(blue, LOW); //digitalWrite(green, HIGH); u8g2.firstPage(); do { u8g2.setCursor(25, 35); u8g2.print((class __FlashStringHelper *)s2); // OPEN print a sting, located in PROGMEM //u8g2.setCursor(0, 40); //u8g2.print((class __FlashStringHelper *)s1); // print a sting (PROGMEM) via RAM array. } while ( u8g2.nextPage() ); digitalWrite(LOCK, HIGH); Serial.println("ОТКРЫВАЮ"); delay(unlockTime); //digitalWrite(green, LOW); pressCount = 0; digitalWrite(LOCK, LOW); } void Close() { u8g2.firstPage(); do { u8g2.setCursor(0, 15); u8g2.print((class __FlashStringHelper *)s3); // XA_XA _XA print a sting, located in PROGMEM u8g2.setCursor(0, 40); u8g2.print((class __FlashStringHelper *)s4); // print a sting (PROGMEM) via RAM array. } while ( u8g2.nextPage() ); //u8g2.clearBuffer(); //u8g2.setCursor(0, 15); Serial.println("ХА..ХА..ХА"); //u8g2.setCursor(0, 40); Serial.println("НЕ ВЕРНО"); //u8g2.sendBuffer(); //delay(100); //u8g2.clearBuffer(); //Serial.println("“Неверный код»"); //digitalWrite(blue, LOW); //digitalWrite(red, HIGH); //digitalWrite(beep, HIGH); //delay(2000); delay(unlockTime); pressCount = 0; //digitalWrite(beep, LOW); //digitalWrite(blue, HIGH); //digitalWrite(red, LOW); } int get_key() { int input; input = analogRead(A2); // переменная для считывания значений с аналогового входа int k; for (k = 0; k < NUM_KEYS; k++) if (input < adcKeyVal[k]) return k + 1; return 0; }У PN, пишут, TTL 3.3V
он и от 3.3 и от 5 работает
Собранный мной скетч есть
в помойку, как мне кажется
Единственный плюс от него - видно что хоть кнопки не подключены к А4 и А5 :)
Меня сейчас не интересует, куда его)). Я его выложил для общего понятия , что я хочу. Меня сейчас интересует цена и время, а переделывать вы его будете или дописывать вообще не интересует.
Если переписывать то нужно ещё дисплей учесть
c дисплеем 3500
Так дисплей работает!))) а без дисплея и функций открыть и закрыть сколько будет стоить ну чтоб с кнопок и rfid включался светодиод и выключался?
c дисплеем 3500
и вы на 100% уверены, что способны заставить это работать?
И время, меня очень интересует время
а без дисплея и функций открыть и закрыть сколько будет стоить
а без дисплея и функций - 5000
Могу помочь, пишите man9913@mail.ru
и вы на 100% уверены, что способны заставить это работать?
Нет. Схему я не видел
а без дисплея и функций открыть и закрыть сколько будет стоить
а без дисплея и функций - 5000
хорошо я вам плачу 2500 аванса,к утру вы мне выдаёте рабочий код, если код не рабочий , за каждый вернувшийся вами код вычитаем по 1000 руб. По моему так будет справедливо. Если вас устраивает
пишите адрес почты обговорим детали
Если вас устраивает
нет :)
Нут извините тогда, я не могу Вас заставить уважать и чужое время тоже.
и вы на 100% уверены, что способны заставить это работать?
Нет. Схему я не видел
простите а какая вам схема нужна? Схема подключения?
Лю-ю-ди? Кто способен выполнить задачу?
Пока только столкнулся с неуверенными в себе людьми, балаболами, и с людьми кто хотел бы помочь, без всякого пафоса, и в силу сопредельных обстоятельств, не имеющих возможности помочь. Не ужели здесь нет специалистов?
простите а какая вам схема нужна? Схема подключения?
Да.
Пока только столкнулся с неуверенными в себе людьми, балаболами, и с людьми кто хотел бы помочь, без всякого пафоса, и в силу сопредельных обстоятельств, не имеющих возможности помочь.
"все мужики делятся на две группы - первые хотят, но не могут = импотенты, и вторая кто может, но не хочет = сволочи!"
Паша, а что вы удивляетесь? В предыдущей своей ветке, ныне удаленной вроде... где вы распинались как легко научить новичка кататься на велосипеде - вы умудрились послать далеко почти всех участников, которые могли бы вам помочь.
В доступном мне магазине, за данный модуль rfid просят целых 1050р.
Если ТС готов оплатить его приобретение, то могу продолжить изыскания.
В такой редакции точно так же не работает.
#include <PN532_I2C.h> #include <PN532.h> #include <Wire.h> PN532_I2C pn532i2c( Wire ) ; PN532 nfc(pn532i2c) ; #include <U8g2lib.h> U8G2_ST7565_ERC12864_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8); const int LOCK=6; // подключаем электрозамок uint8_t success = 0 ; // правильный уид uint8_t uid[7]; // Буфер для сохранения возвращаемого теплоносителя uint8_t uidLength = 0 ;// Length of the UID (4 or 7 bytes depending on ISO14443A card type) // uid required to access masterMode() and add/remove tags and cards const uint8_t uidsKnown[3][4]={ {0x49,0x61,0xC4,0x6E},// User 1 {0x49,0x61,0xC4,0x6E},// User 2 {0xBE,0xEF,0xDE,0xAD} // User 3 } ; bool uidMatch=false; const uint8_t uidKnownCount=3;// Изменение на количество пользователей в многомерном массиве const uint8_t uidKnownLength=4; #define red 13 #define NUM_KEYS 5 // определяем, сколько кнопок у нас подключено int adcKeyVal[NUM_KEYS]={5,210,416,619,870}; #define codeLength 5// длина кода, открывающего замок const int codeOrigin[codeLength] = {2,3,3,3,5}; // массив, содержащий код, открывающий замок. Число элементов массива должно быть равным codeLength const int unlockTime = 4000;// время разблокировки замка, миллисекунд int codePressed[codeLength];// массив для записи номеров нажатых клавиш int pressCount;// счетчик нажатий (замок разблокируется при пятом нажатии) unsigned int oldTime;// переменные для счетчика времени неактивности набора кода unsigned int currentTime;// текущее время int const timeout = 5;// время таймаута при наборе кода, сек. После таймаута неполностью набранный код сбрасывается const char s[] PROGMEM = "ДОБРО"; const char s1[] PROGMEM = "ПОЖАЛОВАТЬ:" ; const char s2[] PROGMEM = "ОТКРЫВАЮ" ; const char s3[] PROGMEM = "ХА..ХА..ХА" ; const char s4[] PROGMEM = "НЕ ВЕРНО" ; const char s5[] PROGMEM = "*_"; String inputString=""; void Open(){ u8g2.firstPage(); do { u8g2.setCursor(25, 35); u8g2.print((class __FlashStringHelper *)s2); u8g2.setCursor(0, 40); u8g2.print((class __FlashStringHelper *)s1); } while ( u8g2.nextPage() ); digitalWrite(LOCK, HIGH); Serial.println("ОТКРЫВАЮ"); delay(unlockTime); pressCount = 0; digitalWrite(LOCK, LOW); } void Close(){ u8g2.firstPage(); do { u8g2.setCursor(0, 15); u8g2.print((class __FlashStringHelper *)s3); u8g2.setCursor(0, 40); u8g2.print((class __FlashStringHelper *)s4); } while ( u8g2.nextPage() ); Serial.println("ХА..ХА..ХА"); Serial.println("НЕ ВЕРНО"); delay(unlockTime); pressCount = 0; } int get_key(){ int input; input = analogRead(A2); delay(20) ; input = analogRead(A2); // переменная для считывания значений с аналогового входа for(int k = 0; k < NUM_KEYS; k++){ if(input < adcKeyVal[k]){ return k + 1;}} return 0; } void CheckUID(){ if(uidKnownLength==uidLength){// сохраненая длинна uid = введеному uid for(byte it=0;it<uidKnownCount;it++){ // Проверьте каждую строку в массиве uidsKnown здесь, вырвитесь из блока, если найдено совпадение if(!memcmp(uidsKnown[it],uid,uidLength)){ Open(); uidMatch = true ; return ; } else { Close(); uidMatch = false; } //return; } } } void setup() { u8g2.begin(); u8g2.enableUTF8Print(); u8g2.setFont(u8g2_font_10x20_t_cyrillic); Serial.begin(9600); pinMode(LOCK, OUTPUT); //объявляем пин как выход. digitalWrite(LOCK, LOW); //Выключаем замок nfc.begin() ; uint32_t versiondata=nfc.getFirmwareVersion() ; nfc.SAMConfig() ; return ; pressCount = 0; }//end setup void loop() { u8g2.firstPage(); do { u8g2.setCursor(30, 15); u8g2.print((class __FlashStringHelper *)s); // print a sting, located in PROGMEM u8g2.setCursor(13, 40); u8g2.print((class __FlashStringHelper *)s1); // print a sting (PROGMEM) via RAM array. } while ( u8g2.nextPage() ); success = 0 ; // успех uidLength=0; // Длинна UID (4 или 7 байт зависимые на ISO14443A card type) for ( int it = 0 ; it < 7 ; it++ ) // Clear UID buffer on each iteration of loop() uid[it] = 0 ; uidMatch=false ;// совпадение uid лож success=nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A,uid,&uidLength); if(success)CheckUID(); for(int i=0;i<pressCount;i++){ inputString+='*'; } inputString+='_'; char str[]="inputString"; u8g2.drawStr(40,66,str); u8g2.sendBuffer(); currentTime = millis(); static uint32_t inputTime=currentTime; static boolean isInput=0; boolean endInput=0; boolean keyFlag=0; int key=get_key(); static int prevKey=key; if(key&&prevKey!=key){ isInput=1; codePressed[pressCount] = key; Serial.println(key); delay(200); pressCount++; inputTime= currentTime; } if(isInput){ if(currentTime-inputTime>=5000||pressCount==codeLength){ Serial.println("input comlete"); for(int i=0;i<codeLength;i++)Serial.print(codePressed[i]); pressCount=0; endInput=1; isInput=0;} }//end isImput else{inputTime=currentTime;} prevKey=key; if(endInput){ endInput=0; Serial.print("calculate"); delay(20); switch(memcmp(codePressed,codeOrigin,codeLength)){ case 0: Serial.print("OPEN"); Open(); break; case 1: Serial.print("CLOSE"); Close(); break; }//end switch } }Пока только столкнулся с неуверенными в себе людьми, балаболами, и с людьми кто хотел бы помочь, без всякого пафоса, и в силу сопредельных обстоятельств, не имеющих возможности помочь.
"все мужики делятся на две группы - первые хотят, но не могут = импотенты, и вторая кто может, но не хочет = сволочи!"
Паша, а что вы удивляетесь? В предыдущей своей ветке, ныне удаленной вроде... где вы распинались как легко научить новичка кататься на велосипеде - вы умудрились послать далеко почти всех участников, которые могли бы вам помочь.
Единомышленников с кем?
И к чему эта тирада? Если даже скиф прошел мимо, то стоит задуматься...
Нет не работает! пробовал по spi сегодня, та же реакция. как будто программа считает модуль главным.
простите а какая вам схема нужна? Схема подключения?
Да.
вот тут интересно становится, для чего вас схема , если пинкод -работает, rfid -работает, , экран работает...???
а скиф у вас это кто? Тот которого алкоголиком зовут, который глава банды? детСимен?
а скиф у вас это кто? Тот которого алкоголиком зовут, который глава банды? детСимен?
не, главный тут бармалей...
а дет просто котов любит, и вотку.
https://tsargrad.tv/news/kazaki-objavili-ohotu-na-mat-v-socsetjah-kiberd...
https://tsargrad.tv/news/kazaki-objavili-ohotu-na-mat-v-socsetjah-kiberd...
Меня из поста по вашей ссылке, больше видео напугало, а мат можно заменить и другими более обидными словечками)))
простите а какая вам схема нужна? Схема подключения?
Да.
вот тут интересно становится, для чего вас схема , если пинкод -работает, rfid -работает, , экран работает...???
Паша, дружок. Давай я на пальцах попытаюсь объяснить для чего людям нужна схема, при чем именно твоя, а не из интернета скачанная. Вот представь что у тебя есть две (или более) гайки и один ключ (инструмент). Ты же не можешь одновременно вертеть обе, правильно? Так вот, в МК то же есть свои инструменты, их много, некоторые из них в нескольких экземплярах... Они вынесены на разные дырочки в Ардуиночке, к которым ты проводочки подключаешь от модулечков.
Подключаешь различные библиотечки, в которых ни хрена не понимаешь. А они могут пытаться использовать одновременно один и тот же инструмент, и не давать работать друг другу (что у тебя и происходит). Кроме того в самих модулечках есть маленькие детальки, которые могут мешать совместной работе (что у тебя и происходит). Поэтому причин, по которым не работает может быть over много. Я и десятой части не описал.
Кроме того модулечков с названием "экран" гораздо больше, чем один, у тебя просят конкретное название, которое необходимо указать на схеме (как и всех прочих).
А ты по своей молодости/глупости/незнанию/раздутому ЧСВ (нужное выбери сам) начинаешь гнуть пальцы, пускать сопли пузырями и крошить булочку на стариков. Дружок, ты пойми, деды ведь не глупей тебя. И вопросы задают не для того, что бы тебя нагнуть лишний раз. А писать такие вот простыни каждому нубу им лень. Проще послать, что с тобой регулярно случается.
Не спеши строчить ответ, подумай.
Ну так можно спросить «нужна схема подключения...» Я откуда знаю какая схема? Может человека интересует блок схема.Экран я не знаю какой это экран, ещё раз пишу это экран от старого плеера iriver 450 с ним работает драйвер st7567 из библиотеки u8glib, 128*64 точечки, ножки от дисплея, сидят там где указано в скетче. Кнопочка от сониэриксон, центральная ,имеет 5 позиций посажена на маленькую штучку, из текстолита с вытравленными дорожками между ножками впаяны планарные резистрики , что представляет собой резистивный делитель, + контактик сидит на 5в, минусовой сидит на gnd. А результаты делителя идут на аналоговый,вход не важно на какой, главное чтоб в скетче совпадало. Контакты на модульке RFID gnd, vcc,sda, scl подключены к ардуинке uno , a4,a5, 5в,gnd. Переключатель на модульке стоит в позиции 1,0. Ясно означает i2c. Я описал схему подключения, потому что нарисовать ее у меня нет программы.
За такой самопал только Звягинцев возьмётся, как мне видится.
Ну какой самопал я ведь объясняю, что все работает дисплей отображает, кнопки выдают значения которые нужны, модуль тоже работает в собранном скетче все работает,НО либо только пин код, либо только rfid
Да всё понятно, что все работает, просто нужно исправить две строчки и вставить один оператор. Знающему человеку на пять минут дел.
Но я сужу по количеству взявшихся за дело - вслепую что-то делать или просто связываться с такой простотой желающих нет.
Ну какой самопал я ведь объясняю, что все работает дисплей отображает, кнопки выдают значения которые нужны, модуль тоже работает в собранном скетче все работает,НО либо только пин код, либо только rfid
Паша, удивил. Даже при условии стандартного железа мне было лень за это браться за 3-5 тыр... а тут сплошной колхоз. Да еще ты требуешь... нет, не так... ТЫ ТРЕБУЕШЬ! гарантии работоспособности на следующее утро после заказа.
Такое можно решить только в одном случае - если у меня на руках абсолютно то же железо, что у тебя. И надбавка за скорость.
Короче, мой тебе совет - размещай заказ на стандартных комплектующих (и дисплей и RFID должны быть доступны на Али) и в разумные сроки - 3-5 дней. Тогда ценник в 3500 будет адекватным.
а скиф у вас это кто? Тот которого алкоголиком зовут, который глава банды? детСимен?
ну и зачем ты на Деда наехал?
Он старой закалки, отремонтировать может практически любой девайс...
Просит схему, дай...
PS Скиф, это тот, кто берётся реализовать любое устройство )))
Не работает оператор, уже проблвали
Не работает оператор, уже проблвали
про оператор это был сарказм. если кто не понял :)))))))))
а скиф у вас это кто? Тот которого алкоголиком зовут, который глава банды? детСимен?
ну и зачем ты на Деда наехал?
Он старой закалки, отремонтировать может практически любой девайс...
Просит схему, дай...
PS Скиф, это тот, кто берётся реализовать любое устройство )))
Ну какой самопал я ведь объясняю, что все работает дисплей отображает, кнопки выдают значения которые нужны, модуль тоже работает в собранном скетче все работает,НО либо только пин код, либо только rfid
Паша, удивил. Даже при условии стандартного железа мне было лень за это браться за 3-5 тыр... а тут сплошной колхоз. Да еще ты требуешь... нет, не так... ТЫ ТРЕБУЕШЬ! гарантии работоспособности на следующее утро после заказа.
Такое можно решить только в одном случае - если у меня на руках абсолютно то же железо, что у тебя. И надбавка за скорость.
Короче, мой тебе совет - размещай заказ на стандартных комплектующих (и дисплей и RFID должны быть доступны на Али) и в разумные сроки - 3-5 дней. Тогда ценник в 3500 будет адекватным.
Detsimen даже тему удалил, потому что 180 сообщений, был пустой лай.
я в группе «помогите» спрашивал как реализовать совмещение кнопок и рфид модуля... просто описать логику благодаря которой можно это сделать
это невозможно описать "просто".
Ну может не "невозможно"... точнее скажем так - я вот не знаю, как это просто описать, люди этому - программированию - учатся годами.
Я могу это запрограммировать и займет это у меня быстрее. чем обьяснить новичку, что я сделал.
Detsimen даже тему удалил, потому что 180 сообщений, был пустой лай.
Бывает, чо. Мне ж пофиг, если полезной информации в теме == 0, зачем она?
ребят, я в группе «помогите» спрашивал как реализовать совмещение кнопок на логическом контакте, и рфид модуля , просто описать логику благодаря которой можно это сделать, начались ваши любимые, я почитал все форумы везде одно и то же. А по делу ни слова
И что тут такого? Никто не обязан исполнять твои фантазии. Даже продавцы в магазинах.
Не сумел найти контакт с форумом - вини только себя.
Все кто подключился стараются помоч,кроме sadman41, b707,detsimen.
Все кто подключился стараются помоч,кроме sadman41, b707,detsimen.
святая троица во всех форумах, торчат новичков)))) ещё brokkoly иногда подключается и Adriano