RFID и аналоговые кнопки
- Войдите на сайт для отправки комментариев
Пнд, 01/02/2021 - 14:04
Задача такая, я собираю комбинированный замок, пин-код на одной пятипозиционной кнопке, посаженой на 1 аналоговый вход и RFID модуль pn 532 подключён по I2C + дисплей. Все работает, но кнопки при включённом RFID модуле не работают, не отображаются звёздочки, и не срабатывает функция открыто-закрыто, стоит мне выдернуть минусовой провод RFID модуля , так кнопки сразу начинают функционировать, но естественно перестаёт работать RFID. Библиотека на rfid это https://github.com/elechouse/PN532. Предоплату я вам внесу, вы посмотрите сможете ли вы решить эту задачу.
Можем списаться по вотс апу
схема есть?
Собранный мной скетч есть
001
#include <PN532_I2C.h>
002
#include <PN532.h>
003
#include <Wire.h>
004
005
PN532_I2C pn532i2c( Wire ) ;
006
PN532 nfc(pn532i2c) ;
007
008
const
int
LOCK = 6;
// подключаем электрозамок
009
010
uint8_t success = 0 ;
// правильный уид
011
uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };
// Буфер для сохранения возвращаемого теплоносителя
012
uint8_t uidLength = 0 ;
// Length of the UID (4 or 7 bytes depending on ISO14443A card type)
013
// uid required to access masterMode() and add/remove tags and cards
014
const
uint8_t uidsKnown[3][4]
// Change uidKnownCount(3) to the number of UIDs in the multidimensional array
015
{
016
0x49, 0x61, 0xC4, 0x6E,
// User 1
017
0x49, 0x61, 0xC4, 0x6E,
// User 2
018
0xBE, 0xEF, 0xDE, 0xAD
// User 3
019
} ;
020
bool
uidMatch =
false
;
021
const
uint8_t uidKnownCount = 3 ;
// Изменение на количество пользователей в многомерном массиве
022
const
uint8_t uidKnownLength = 4 ;
023
024
#define red 13
025
// #define blue 6
026
//#define green 7
027
//#define beep 12
028
029
#define NUM_KEYS 5 // определяем, сколько кнопок у нас подключено
030
int
adcKeyVal[NUM_KEYS] = {0, 210, 416, 619, 870};
031
#define codeLength 5 // длина кода, открывающего замок
032
const
int
codeOrigin[codeLength] = {2, 3, 4, 3, 5};
// массив, содержащий код, открывающий замок. Число элементов массива должно быть равным codeLength
033
const
int
unlockTime = 4000;
// время разблокировки замка, миллисекунд
034
int
codePressed[codeLength];
// массив для записи номеров нажатых клавиш
035
int
pressCount;
// счетчик нажатий (замок разблокируется при пятом нажатии)
036
037
unsigned
int
oldTime;
// переменные для счетчика времени неактивности набора кода
038
unsigned
int
currentTime;
// текущее время
039
int
const
timeout = 5;
// время таймаута при наборе кода, сек. После таймаута неполностью набранный код сбрасывается
040
041
042
#include <U8g2lib.h>
043
044
045
U8G2_ST7565_ERC12864_1_4W_SW_SPI u8g2(U8G2_R0,
/* clock=*/
13,
/* data=*/
11,
/* cs=*/
10,
/* dc=*/
9,
/* reset=*/
8);
046
047
048
049
void
setup
() {
050
u8g2.begin();
051
u8g2.enableUTF8Print();
052
u8g2.setFont(u8g2_font_10x20_t_cyrillic);
053
054
Serial
.begin(9600);
055
pinMode(LOCK, OUTPUT);
//объявляем пин как выход.
056
digitalWrite(LOCK, LOW);
//Выключаем замок
057
058
nfc.begin() ;
059
uint32_t versiondata = nfc.getFirmwareVersion() ;
060
nfc.SAMConfig() ;
061
return
;
062
063
064
pressCount = 0;
// Колличество нажатий
065
// pinMode(red, OUTPUT);
066
//pinMode(green, OUTPUT);
067
//pinMode(beep, OUTPUT);
068
}
069
070
const
char
s[] PROGMEM =
"ДОБРО"
;
071
const
char
s1[] PROGMEM =
"ПОЖАЛОВАТЬ:"
;
072
const
char
s2[] PROGMEM =
"ОТКРЫВАЮ"
;
073
const
char
s3[] PROGMEM =
"ХА..ХА..ХА"
;
074
const
char
s4[] PROGMEM =
"НЕ ВЕРНО"
;
075
const
char
s5[] PROGMEM =
"*_"
;
076
077
078
079
void
loop
() {
080
081
082
u8g2.firstPage();
083
do
{
084
085
u8g2.setCursor(30, 15);
086
u8g2.print((
class
__FlashStringHelper *)s);
// print a sting, located in PROGMEM
087
088
u8g2.setCursor(13, 40);
089
u8g2.print((
class
__FlashStringHelper *)s1);
// print a sting (PROGMEM) via RAM array.
090
091
}
092
while
( u8g2.nextPage() );
093
094
success = 0 ;
// успех
095
uidLength = 0 ;
// Длинна UID (4 или 7 байт зависимые на ISO14443A card type)
096
for
(
int
it = 0 ; it < 7 ; it++ )
// Clear UID buffer on each iteration of loop()
097
uid[it] = 0 ;
098
uidMatch =
false
;
// совпадение uid лож
099
success = nfc.readPassiveTargetID( PN532_MIFARE_ISO14443A, uid, &uidLength) ;
100
101
if
( uidKnownLength == uidLength )
// сохраненая длинна uid = введеному uid
102
{
103
for
(
byte
it = 0 ; it < uidKnownCount ; it++ )
104
{
105
// Проверьте каждую строку в массиве uidsKnown здесь, вырвитесь из блока, если найдено совпадение
106
if
( uidsKnown[it][0] == uid[0] && uidsKnown[it][1] == uid[1] && uidsKnown[it][2] == uid[2] && uidsKnown[it][3] == uid[3] )
107
{
108
109
Open();
110
uidMatch =
true
;
111
112
return
;
113
}
114
else
{
115
Close();
116
uidMatch =
false
;
117
}
118
return
;
119
120
}
121
122
}
123
124
125
if
(pressCount == 1)
126
{
127
u8g2.drawStr(40, 66,
"*-"
);
128
u8g2.sendBuffer();
129
}
130
131
if
(pressCount == 2)
132
133
{
134
u8g2.drawStr(40, 66,
"**-"
);
135
u8g2.sendBuffer();
136
}
137
138
if
(pressCount == 3)
139
{
140
141
u8g2.drawStr(40, 66,
"***-"
);
142
u8g2.sendBuffer();
143
144
}
145
if
(pressCount == 4)
146
{
147
u8g2.drawStr(40, 66,
"****-"
);
148
u8g2.sendBuffer();
149
150
}
151
if
(pressCount == 5)
152
{
153
u8g2.drawStr(40, 66,
"*****"
);
154
u8g2.sendBuffer();
155
156
}
157
158
159
160
161
162
163
164
165
166
167
currentTime = millis();
// записываем текущее время (в миллисекундах), прошедшее с момента начала исполнения программы
168
if
(currentTime - oldTime <= timeout * 1000)
169
{
170
int
key;
// заводим переменную с именем key
171
key = get_key();
// записываем в эту переменную номер нажатой кнопки, вызывая на исполнение нижеописанную функцию get_key
172
//Serial.println("«Введите код:»");
173
//digitalWrite(blue, HIGH); // включаем синий светодиод
174
175
if
(key > 0)
// если кнопка нажата
176
{
177
codePressed[pressCount] = key;
// записываем номер нажатой кнопки в массив
178
//digitalWrite(beep, HIGH); // короткий сигнал звукоизлучателя (50 мс)
179
//delay(50);
180
//digitalWrite(beep, LOW);
181
//digitalWrite(blue, LOW);
182
delay(200);
183
//digitalWrite(blue, HIGH);
184
pressCount++;
// увеличиваем счетчик нажатий
185
186
oldTime = currentTime;
// сбрасываем счетчик времени таймаута
187
188
}
189
}
190
else
{
191
pressCount = 0;
192
//u8g2.clear();
193
oldTime = currentTime;
// если достигнут таймаут, сбрасываем частично набранный код
194
}
195
196
197
if
(pressCount == codeLength)
198
{
199
int
compareResult = 1;
200
for
(
int
i = 0; i < codeLength; i++)
201
if
(codeOrigin[i] != codePressed[i])
// если весь код введен, сравниваем поэлементно два массива: codeOrigin и codePressed
202
compareResult = 0;
// если хотя бы одна пара элементов не равна
203
204
if
(compareResult == 1)
// если массивы совпадают
205
{
206
Open();
207
return
;
208
}
209
210
211
// если введен неправильный код
212
else
{
213
Close();
214
return
;
215
}
216
}
217
}
218
// Эта функция будет выполнена только когда ее вызвали из программы
219
// Функция читает значение с АЦП, куда подключена аналоговая клавиатура
220
// и сравнивает с калибровочными значениями, определяя номер нажатой кнопки
221
222
223
void
Open() {
//digitalWrite(blue, LOW);
224
//digitalWrite(green, HIGH);
225
226
u8g2.firstPage();
227
do
{
228
229
u8g2.setCursor(25, 35);
230
u8g2.print((
class
__FlashStringHelper *)s2);
// OPEN print a sting, located in PROGMEM
231
232
//u8g2.setCursor(0, 40);
233
//u8g2.print((class __FlashStringHelper *)s1); // print a sting (PROGMEM) via RAM array.
234
235
}
236
while
( u8g2.nextPage() );
237
238
digitalWrite(LOCK, HIGH);
239
Serial
.println(
"ОТКРЫВАЮ"
);
240
241
delay(unlockTime);
242
//digitalWrite(green, LOW);
243
pressCount = 0;
244
digitalWrite(LOCK, LOW);
245
246
}
247
248
249
void
Close() {
250
251
u8g2.firstPage();
252
do
{
253
254
u8g2.setCursor(0, 15);
255
u8g2.print((
class
__FlashStringHelper *)s3);
// XA_XA _XA print a sting, located in PROGMEM
256
257
u8g2.setCursor(0, 40);
258
u8g2.print((
class
__FlashStringHelper *)s4);
// print a sting (PROGMEM) via RAM array.
259
260
}
261
while
( u8g2.nextPage() );
262
263
//u8g2.clearBuffer();
264
//u8g2.setCursor(0, 15);
265
Serial
.println(
"ХА..ХА..ХА"
);
266
//u8g2.setCursor(0, 40);
267
Serial
.println(
"НЕ ВЕРНО"
);
268
//u8g2.sendBuffer();
269
270
//delay(100);
271
272
//u8g2.clearBuffer();
273
274
275
//Serial.println("“Неверный код»");
276
//digitalWrite(blue, LOW);
277
//digitalWrite(red, HIGH);
278
//digitalWrite(beep, HIGH);
279
//delay(2000);
280
delay(unlockTime);
281
pressCount = 0;
282
283
//digitalWrite(beep, LOW);
284
//digitalWrite(blue, HIGH);
285
//digitalWrite(red, LOW);
286
287
}
288
289
int
get_key()
290
{
291
int
input;
292
input = analogRead(A2);
// переменная для считывания значений с аналогового входа
293
int
k;
294
for
(k = 0; k < NUM_KEYS; k++)
295
if
(input < adcKeyVal[k])
296
return
k + 1;
297
return
0;
298
}
У 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р.
Если ТС готов оплатить его приобретение, то могу продолжить изыскания.
В такой редакции точно так же не работает.
001
#include <PN532_I2C.h>
002
#include <PN532.h>
003
#include <Wire.h>
004
PN532_I2C pn532i2c( Wire ) ;
005
PN532 nfc(pn532i2c) ;
006
#include <U8g2lib.h>
007
U8G2_ST7565_ERC12864_1_4W_SW_SPI u8g2(U8G2_R0,
/* clock=*/
13,
/* data=*/
11,
/* cs=*/
10,
/* dc=*/
9,
/* reset=*/
8);
008
009
const
int
LOCK=6;
// подключаем электрозамок
010
011
uint8_t success = 0 ;
// правильный уид
012
uint8_t uid[7];
// Буфер для сохранения возвращаемого теплоносителя
013
uint8_t uidLength = 0 ;
// Length of the UID (4 or 7 bytes depending on ISO14443A card type)
014
// uid required to access masterMode() and add/remove tags and cards
015
const
uint8_t uidsKnown[3][4]={
016
{0x49,0x61,0xC4,0x6E},
// User 1
017
{0x49,0x61,0xC4,0x6E},
// User 2
018
{0xBE,0xEF,0xDE,0xAD}
// User 3
019
} ;
020
bool
uidMatch=
false
;
021
const
uint8_t uidKnownCount=3;
// Изменение на количество пользователей в многомерном массиве
022
const
uint8_t uidKnownLength=4;
023
024
#define red 13
025
026
#define NUM_KEYS 5 // определяем, сколько кнопок у нас подключено
027
int
adcKeyVal[NUM_KEYS]={5,210,416,619,870};
028
#define codeLength 5// длина кода, открывающего замок
029
const
int
codeOrigin[codeLength] = {2,3,3,3,5};
// массив, содержащий код, открывающий замок. Число элементов массива должно быть равным codeLength
030
const
int
unlockTime = 4000;
// время разблокировки замка, миллисекунд
031
int
codePressed[codeLength];
// массив для записи номеров нажатых клавиш
032
int
pressCount;
// счетчик нажатий (замок разблокируется при пятом нажатии)
033
034
unsigned
int
oldTime;
// переменные для счетчика времени неактивности набора кода
035
unsigned
int
currentTime;
// текущее время
036
int
const
timeout = 5;
// время таймаута при наборе кода, сек. После таймаута неполностью набранный код сбрасывается
037
const
char
s[] PROGMEM =
"ДОБРО"
;
038
const
char
s1[] PROGMEM =
"ПОЖАЛОВАТЬ:"
;
039
const
char
s2[] PROGMEM =
"ОТКРЫВАЮ"
;
040
const
char
s3[] PROGMEM =
"ХА..ХА..ХА"
;
041
const
char
s4[] PROGMEM =
"НЕ ВЕРНО"
;
042
const
char
s5[] PROGMEM =
"*_"
;
043
String inputString=
""
;
044
045
void
Open(){
046
u8g2.firstPage();
047
do
{
048
u8g2.setCursor(25, 35);
049
u8g2.print((
class
__FlashStringHelper *)s2);
050
u8g2.setCursor(0, 40);
051
u8g2.print((
class
__FlashStringHelper *)s1);
052
053
}
054
while
( u8g2.nextPage() );
055
056
digitalWrite(LOCK, HIGH);
057
Serial
.println(
"ОТКРЫВАЮ"
);
058
delay(unlockTime);
059
pressCount = 0;
060
digitalWrite(LOCK, LOW);
061
062
}
063
064
065
void
Close(){
066
u8g2.firstPage();
067
do
{
068
u8g2.setCursor(0, 15);
069
u8g2.print((
class
__FlashStringHelper *)s3);
070
u8g2.setCursor(0, 40);
071
u8g2.print((
class
__FlashStringHelper *)s4);
072
}
073
while
( u8g2.nextPage() );
074
Serial
.println(
"ХА..ХА..ХА"
);
075
Serial
.println(
"НЕ ВЕРНО"
);
076
delay(unlockTime);
077
pressCount = 0;
078
}
079
080
int
get_key(){
081
int
input;
082
input = analogRead(A2);
083
delay(20) ;
084
input = analogRead(A2);
// переменная для считывания значений с аналогового входа
085
for
(
int
k = 0; k < NUM_KEYS; k++){
086
if
(input < adcKeyVal[k]){
087
return
k + 1;}}
088
return
0;
089
}
090
091
void
CheckUID(){
092
if
(uidKnownLength==uidLength){
// сохраненая длинна uid = введеному uid
093
for
(
byte
it=0;it<uidKnownCount;it++){
094
// Проверьте каждую строку в массиве uidsKnown здесь, вырвитесь из блока, если найдено совпадение
095
if
(!memcmp(uidsKnown[it],uid,uidLength)){
096
Open();
097
uidMatch =
true
;
098
return
;
099
}
100
else
{
101
Close();
102
uidMatch =
false
;
103
}
104
//return;
105
}
106
}
107
}
108
109
110
111
void
setup
() {
112
u8g2.begin();
113
u8g2.enableUTF8Print();
114
u8g2.setFont(u8g2_font_10x20_t_cyrillic);
115
116
Serial
.begin(9600);
117
pinMode(LOCK, OUTPUT);
//объявляем пин как выход.
118
digitalWrite(LOCK, LOW);
//Выключаем замок
119
120
nfc.begin() ;
121
uint32_t versiondata=nfc.getFirmwareVersion() ;
122
nfc.SAMConfig() ;
123
return
;
124
pressCount = 0;
125
}
//end setup
126
127
128
void
loop
() {
129
u8g2.firstPage();
130
do
{
131
u8g2.setCursor(30, 15);
132
u8g2.print((
class
__FlashStringHelper *)s);
// print a sting, located in PROGMEM
133
u8g2.setCursor(13, 40);
134
u8g2.print((
class
__FlashStringHelper *)s1);
// print a sting (PROGMEM) via RAM array.
135
136
}
137
while
( u8g2.nextPage() );
138
success = 0 ;
// успех
139
uidLength=0;
// Длинна UID (4 или 7 байт зависимые на ISO14443A card type)
140
for
(
int
it = 0 ; it < 7 ; it++ )
// Clear UID buffer on each iteration of loop()
141
uid[it] = 0 ;
142
uidMatch=
false
;
// совпадение uid лож
143
success=nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A,uid,&uidLength);
144
145
if
(success)CheckUID();
146
147
for
(
int
i=0;i<pressCount;i++){
148
inputString+=
'*'
;
149
}
150
inputString+=
'_'
;
151
char
str[]=
"inputString"
;
152
u8g2.drawStr(40,66,str);
153
u8g2.sendBuffer();
154
155
currentTime = millis();
156
static
uint32_t inputTime=currentTime;
157
static
boolean isInput=0;
158
boolean endInput=0;
159
boolean keyFlag=0;
160
int
key=get_key();
161
static
int
prevKey=key;
162
163
if
(key&&prevKey!=key){
164
isInput=1;
165
codePressed[pressCount] = key;
166
Serial
.println(key);
167
delay(200);
168
pressCount++;
169
inputTime= currentTime;
170
}
171
if
(isInput){
172
if
(currentTime-inputTime>=5000||pressCount==codeLength){
173
Serial
.println(
"input comlete"
);
174
for
(
int
i=0;i<codeLength;i++)
Serial
.print(codePressed[i]);
175
pressCount=0;
176
endInput=1;
177
isInput=0;}
178
}
//end isImput
179
else
{inputTime=currentTime;}
180
181
prevKey=key;
182
183
if
(endInput){
184
endInput=0;
185
Serial
.print(
"calculate"
);
186
delay(20);
187
switch
(memcmp(codePressed,codeOrigin,codeLength)){
188
case
0:
189
Serial
.print(
"OPEN"
);
190
Open();
191
break
;
192
case
1:
193
Serial
.print(
"CLOSE"
);
194
Close();
195
break
;
196
}
//end switch
197
198
}
199
200
201
}
Пока только столкнулся с неуверенными в себе людьми, балаболами, и с людьми кто хотел бы помочь, без всякого пафоса, и в силу сопредельных обстоятельств, не имеющих возможности помочь.
"все мужики делятся на две группы - первые хотят, но не могут = импотенты, и вторая кто может, но не хочет = сволочи!"
Паша, а что вы удивляетесь? В предыдущей своей ветке, ныне удаленной вроде... где вы распинались как легко научить новичка кататься на велосипеде - вы умудрились послать далеко почти всех участников, которые могли бы вам помочь.
Единомышленников с кем?
И к чему эта тирада? Если даже скиф прошел мимо, то стоит задуматься...
Нет не работает! пробовал по 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