<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[forum.rcl-radio.ru &mdash; RFID-RC522]]></title>
	<link rel="self" href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=662&amp;type=atom" />
	<updated>2025-06-17T14:49:13Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.rcl-radio.ru/viewtopic.php?id=662</id>
		<entry>
			<title type="html"><![CDATA[Re: RFID-RC522]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=11845#p11845" />
			<content type="html"><![CDATA[<p>delay(3000);</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2025-06-17T14:49:13Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=11845#p11845</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: RFID-RC522]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=11844#p11844" />
			<content type="html"><![CDATA[<p>Добрый день. Скетч с 1602.Подскажите где исправить в скетче, чтоб реле было выключено без ключа, а при поднесения ключа включалось. Сейчас наоборот. И где увеличить время реле у вас стоит 3 секунды. Спасибо!</p>]]></content>
			<author>
				<name><![CDATA[qwertya]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=3568</uri>
			</author>
			<updated>2025-06-17T14:47:18Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=11844#p11844</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: RFID-RC522]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=10625#p10625" />
			<content type="html"><![CDATA[<p>LCD1602_I2C</p><div class="codebox"><pre><code>#include &lt;SPI.h&gt;
#include &lt;MFRC522.h&gt;           // http://rcl-radio.ru/wp-content/uploads/2024/08/rfid-master.zip
#include &lt;EEPROM.h&gt;
#include &lt;Wire.h&gt; 
#include &lt;LiquidCrystal_I2C.h&gt;  // http://forum.rcl-radio.ru/misc.php?action=pan_download&amp;item=45&amp;download=1 

LiquidCrystal_I2C lcd(0x27,16,2);
 
int x;
int uid[4];
int master_kart[4]{129,71,80,131}; 
int set,eeprom; 
unsigned long times,times_open,tim; 
int open_,tim1; 

 
MFRC522 mfrc522(10,9); //(SS_PIN, RST_PIN)   
 
void setup() {
  Serial.begin(9600); 
  lcd.init();lcd.noBacklight();lcd.clear();
  pinMode(2,INPUT_PULLUP);
  pinMode(3,INPUT_PULLUP);  
  if(EEPROM.read(500)!=0){for(int i=0;i&lt;501;i++){EEPROM.update(i,0);}}              
  SPI.begin();              
  mfrc522.PCD_Init();      
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(7,OUTPUT);// zummer
  digitalWrite(7,HIGH);
}
 
void loop() {
// Чтение UID //////////////////////////////////////////////////////////////////////////////////
  if (mfrc522.PICC_IsNewCardPresent() &amp;&amp; mfrc522.PICC_ReadCardSerial()){delay(200);x=0; 
   for (int i = 0; i &lt; 4; i++) {uid[i] = mfrc522.uid.uidByte[i];if(uid[i]==master_kart[i]){x++;}}}
    else{cl();}
////////////////////////////////////////////////////////////////////////////////////////////////
      
//set ==0 read, set == 1 SAVE, set == 2 clear
   if(x==4 &amp;&amp; digitalRead(2)==LOW &amp;&amp; uid[0]!=0 &amp;&amp; set==0){set=1;lcd.clear();ok();times=millis();cl();delay(2000);}
   if(x==4 &amp;&amp; digitalRead(3)==LOW &amp;&amp; uid[0]!=0 &amp;&amp; set==0){set=2;lcd.clear();ok();times=millis();cl();delay(2000);}

  if(set&gt;0){
    if(digitalRead(2)==LOW){lcd.clear();eeprom++;if(eeprom&gt;49){eeprom=49;}times=millis();delay(200);}
    if(digitalRead(3)==LOW){lcd.clear();eeprom--;if(eeprom&lt;0){eeprom=0;}times=millis();delay(200);}
    }  
////////////////////////////////////////////////////////////////////////////////////////////////  
  if(uid[0]!=0 &amp;&amp; uid[1]!=0 &amp;&amp; uid[2]!=0 &amp;&amp; uid[3]!=0){
  Serial.print(&quot;UID: &quot;); 
  for(int i1=0;i1&lt;4;i1++){Serial.print(uid[i1]);Serial.print(&quot; &quot;);}Serial.println();}
////////////////////////////////////////////////////////////////////////////////////////////////
  if(set==1){
    lcd.backlight();
    lcd.setCursor(0, 0);lcd.print(&quot;SAVE  UID|NUM:&quot;);
    lcd.setCursor(14, 0);lcd.print(eeprom);
   
    if(uid[0]!=0 &amp;&amp; uid[1]!=0 &amp;&amp; uid[2]!=0 &amp;&amp; uid[3]!=0){lcd.clear();
      EEPROM.update(0+eeprom*4,uid[0]);
      EEPROM.update(1+eeprom*4,uid[1]);
      EEPROM.update(2+eeprom*4,uid[2]);
      EEPROM.update(3+eeprom*4,uid[3]);
      }
      
    lcd.setCursor(0, 1);lcd.print(EEPROM.read(0+eeprom*4));lcd.print(&quot;.&quot;);
    lcd.setCursor(4, 1);lcd.print(EEPROM.read(1+eeprom*4));lcd.print(&quot;.&quot;);
    lcd.setCursor(8, 1);lcd.print(EEPROM.read(2+eeprom*4));lcd.print(&quot;.&quot;);
    lcd.setCursor(12, 1);lcd.print(EEPROM.read(3+eeprom*4));
    }
////////////////////////////////////////////////////////////////////////////
  if(set==2){
    lcd.backlight();
    lcd.setCursor(0, 0);lcd.print(&quot;CLEAR UID|NUM:&quot;);
    lcd.setCursor(14, 0);lcd.print(eeprom);

    if(uid[0]==master_kart[0]&amp;&amp;uid[1]==master_kart[1]&amp;&amp;uid[2]==master_kart[2]&amp;&amp;uid[3]==master_kart[3]){lcd.clear();
      EEPROM.update(0+eeprom*4,0);
      EEPROM.update(1+eeprom*4,0);
      EEPROM.update(2+eeprom*4,0);
      EEPROM.update(3+eeprom*4,0);
      }

    lcd.setCursor(0, 1);lcd.print(EEPROM.read(0+eeprom*4));lcd.print(&quot;.&quot;);
    lcd.setCursor(4, 1);lcd.print(EEPROM.read(1+eeprom*4));lcd.print(&quot;.&quot;);
    lcd.setCursor(8, 1);lcd.print(EEPROM.read(2+eeprom*4));lcd.print(&quot;.&quot;);
    lcd.setCursor(12, 1);lcd.print(EEPROM.read(3+eeprom*4));
    }
//////////////////////////////////////////////////////////////////////////////  
  if(set==0){
  if(uid[0]!=0 &amp;&amp; uid[1]!=0 &amp;&amp; uid[2]!=0 &amp;&amp; uid[3]!=0){ for(int i=0;i&lt;50;i++){
  if(uid[0]==EEPROM.read(0+i*4)&amp;&amp;uid[1]==EEPROM.read(1+i*4)&amp;&amp;uid[2]==EEPROM.read(2+i*4)&amp;&amp;uid[3]==EEPROM.read(3+i*4)){open_=1;break;}else{open_=2;}}}}//set=0
 
  if(open_==1){open_=0;lcd.backlight();lcd.setCursor(6, 0);lcd.print(&quot;OPEN&quot;);digitalWrite(4,HIGH);
  for(int n=0;n&lt;8;n++){digitalWrite(7,LOW);delay(200);digitalWrite(7,HIGH);delay(200);}
  lcd.noBacklight();lcd.clear();digitalWrite(4,LOW);digitalWrite(7,HIGH);}
   
  if(open_==2){open_=0;lcd.backlight();lcd.setCursor(5, 0);lcd.print(&quot;ERROR&quot;);digitalWrite(5,HIGH);
  digitalWrite(7,LOW);delay(100);digitalWrite(7,HIGH);delay(3000);digitalWrite(5,LOW);lcd.noBacklight();lcd.clear();}
 
  if(millis()-times&gt;10000){lcd.noBacklight();lcd.clear();set=0;eeprom=0;}
}

void ok(){ lcd.backlight();lcd.setCursor(0, 0);lcd.print(&quot;OK&quot;);}

void cl(){uid[0]=0;uid[1]=0;uid[2]=0;uid[3]=0;}  </code></pre></div>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2024-08-13T06:28:07Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=10625#p10625</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: RFID-RC522]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=10622#p10622" />
			<content type="html"><![CDATA[<p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2024/08/cef49ea7ef263b9c7455fe29029eef51.png" alt="http://forum.rcl-radio.ru/uploads/images/2024/08/cef49ea7ef263b9c7455fe29029eef51.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2024/08/4ec518bed9fe14e7084ec48ce38afd3d.png" alt="http://forum.rcl-radio.ru/uploads/images/2024/08/4ec518bed9fe14e7084ec48ce38afd3d.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2024/08/9f7d853a99d91627ed0f840a9231dc90.png" alt="http://forum.rcl-radio.ru/uploads/images/2024/08/9f7d853a99d91627ed0f840a9231dc90.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2024/08/4e6b9c87c0820ce468c003250b8684c7.png" alt="http://forum.rcl-radio.ru/uploads/images/2024/08/4e6b9c87c0820ce468c003250b8684c7.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2024/08/eb1817d1dba10de1d8c908f120dee569.png" alt="http://forum.rcl-radio.ru/uploads/images/2024/08/eb1817d1dba10de1d8c908f120dee569.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2024/08/6baf23ace59b9ac437d16e8ecd134290.png" alt="http://forum.rcl-radio.ru/uploads/images/2024/08/6baf23ace59b9ac437d16e8ecd134290.png" /></span></p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2024-08-12T15:10:15Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=10622#p10622</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: RFID-RC522]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=10621#p10621" />
			<content type="html"><![CDATA[<p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2024/08/4cd59ff7290df19f14726ed65da4645f.png" alt="http://forum.rcl-radio.ru/uploads/images/2024/08/4cd59ff7290df19f14726ed65da4645f.png" /></span></p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2024-08-12T09:48:08Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=10621#p10621</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[RFID-RC522]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=10620#p10620" />
			<content type="html"><![CDATA[<p>Основная статья - <a href="http://rcl-radio.ru/?p=132410">http://rcl-radio.ru/?p=132410</a></p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2024/08/e4ad83c1838e16e5bd6c445ba473274c.png" alt="http://forum.rcl-radio.ru/uploads/images/2024/08/e4ad83c1838e16e5bd6c445ba473274c.png" /></span> </p><br /><div class="codebox"><pre><code>#include &lt;SPI.h&gt;
#include &lt;MFRC522.h&gt;           // http://rcl-radio.ru/wp-content/uploads/2024/08/rfid-master.zip
#include &lt;EEPROM.h&gt;
#include &lt;Wire.h&gt; 
#include &lt;U8glib.h&gt;            // https://github.com/olikraus/u8glib/

U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST);
 
int x;
int uid[4];
int master_kart[4]{129,71,80,131}; 
int set,eeprom; 
unsigned long times,times_open,tim; 
bool open_,tim1; 

 
MFRC522 mfrc522(10,9); //(SS_PIN, RST_PIN)   
 
void setup() {
  Serial.begin(9600); 
  pinMode(2,INPUT_PULLUP);
  pinMode(3,INPUT_PULLUP);  
  if(EEPROM.read(500)!=0){for(int i=0;i&lt;501;i++){EEPROM.update(i,0);}}              
  SPI.begin();              
  mfrc522.PCD_Init();      
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(7,OUTPUT);// zummer
  digitalWrite(7,HIGH);
}
 
void loop() {
// Чтение UID //////////////////////////////////////////////////////////////////////////////////
  if (mfrc522.PICC_IsNewCardPresent() &amp;&amp; mfrc522.PICC_ReadCardSerial()){delay(100);x=0; 
  
   for (int i = 0; i &lt; 4; i++) {
      uid[i] = mfrc522.uid.uidByte[i];
      if(uid[i]==master_kart[i]){
        x++;
      }}}
      else{cl();}
////////////////////////////////////////////////////////////////////////////////////////////////
      
//set ==0 read, set == 1 SAVE, set == 2 clear
   if(x==4 &amp;&amp; digitalRead(2)==LOW &amp;&amp; uid[0]!=0 &amp;&amp; set==0){set=1;ok();times=millis();cl();delay(2000);}
   if(x==4 &amp;&amp; digitalRead(3)==LOW &amp;&amp; uid[0]!=0 &amp;&amp; set==0){set=2;ok();times=millis();cl();delay(2000);}

   
  if(set&gt;0){
    if(digitalRead(2)==LOW){eeprom++;if(eeprom&gt;49){eeprom=49;}times=millis();delay(200);}
    if(digitalRead(3)==LOW){eeprom--;if(eeprom&lt;0){eeprom=0;}times=millis();delay(200);}
    }  
////////////////////////////////////////////////////////////////////////////////////////////////  
  if(uid[0]!=0 &amp;&amp; uid[1]!=0 &amp;&amp; uid[2]!=0 &amp;&amp; uid[3]!=0){
  Serial.print(&quot;UID: &quot;); 
  for(int i1=0;i1&lt;4;i1++){Serial.print(uid[i1]);Serial.print(&quot; &quot;);}Serial.println();}
////////////////////////////////////////////////////////////////////////////////////////////////

  u8g.firstPage();  
   do {
///////////////////////////////////////////////////////////////////////////// 
  if(set==1){
    u8g.setFont(u8g_font_profont17r);u8g.drawStr(0,12,&quot;SAVE UID&quot;);
    u8g.setFont(u8g_font_profont12r);
    u8g.drawLine(0, 17, 128, 17);
    u8g.drawStr(0,45,&quot;UID:&quot;);
    u8g.drawStr(0,30,&quot;Nomber:&quot;);u8g.setPrintPos(50, 30);u8g.print(eeprom);

    if(uid[0]!=0 &amp;&amp; uid[1]!=0 &amp;&amp; uid[2]!=0 &amp;&amp; uid[3]!=0){
      EEPROM.update(0+eeprom*4,uid[0]);
      EEPROM.update(1+eeprom*4,uid[1]);
      EEPROM.update(2+eeprom*4,uid[2]);
      EEPROM.update(3+eeprom*4,uid[3]);
      }
      
    u8g.setPrintPos(30, 45);u8g.print(EEPROM.read(0+eeprom*4));
    u8g.setPrintPos(55, 45);u8g.print(EEPROM.read(1+eeprom*4));
    u8g.setPrintPos(80, 45);u8g.print(EEPROM.read(2+eeprom*4));
    u8g.setPrintPos(105, 45);u8g.print(EEPROM.read(3+eeprom*4));
    }
////////////////////////////////////////////////////////////////////////////
  if(set==2){
    u8g.setFont(u8g_font_profont17r);u8g.drawStr(0,12,&quot;CLEAR UID&quot;);
    u8g.setFont(u8g_font_profont12r);
    u8g.drawLine(0, 17, 128, 17); 
    u8g.drawStr(0,45,&quot;UID:&quot;);
    u8g.drawStr(0,30,&quot;Number:&quot;);u8g.setPrintPos(50, 30);u8g.print(eeprom);

    if(uid[0]==master_kart[0]&amp;&amp;uid[1]==master_kart[1]&amp;&amp;uid[2]==master_kart[2]&amp;&amp;uid[3]==master_kart[3]){
      EEPROM.update(0+eeprom*4,0);
      EEPROM.update(1+eeprom*4,0);
      EEPROM.update(2+eeprom*4,0);
      EEPROM.update(3+eeprom*4,0);
      }

    u8g.setPrintPos(30, 45);u8g.print(EEPROM.read(0+eeprom*4));
    u8g.setPrintPos(55, 45);u8g.print(EEPROM.read(1+eeprom*4));
    u8g.setPrintPos(80, 45);u8g.print(EEPROM.read(2+eeprom*4));
    u8g.setPrintPos(105, 45);u8g.print(EEPROM.read(3+eeprom*4));
    }

//////////////////////////////////////////////////////////////////////////////  
  if(set==0){
  u8g.setFont(u8g_font_profont17r);   
  if(uid[0]!=0 &amp;&amp; uid[1]!=0 &amp;&amp; uid[2]!=0 &amp;&amp; uid[3]!=0&amp;&amp; millis()-times_open&gt;3000){
    for(int i=0;i&lt;50;i++){
     if(
      uid[0]==EEPROM.read(0+i*4)&amp;&amp;
      uid[1]==EEPROM.read(1+i*4)&amp;&amp;
      uid[2]==EEPROM.read(2+i*4)&amp;&amp;
      uid[3]==EEPROM.read(3+i*4))
      {open_=1;times_open=millis();tim=millis();break;}else{open_=0;times_open=millis();tim1=1;}
      }
    }
  }//set=0
  
  if(tim1==1){tim1=0;digitalWrite(7,LOW);delay(100);digitalWrite(7,HIGH);}
  
  if(open_==1 &amp;&amp; millis()-times_open&lt;3000){u8g.drawStr(40,30,&quot;OPEN&quot;);digitalWrite(4,HIGH);
  if(millis()-tim&lt;200){digitalWrite(7,LOW);}
  if(millis()-tim&gt;200){digitalWrite(7,HIGH);}
  if(millis()-tim&gt;400){tim=millis();}
  } else{digitalWrite(4,LOW);digitalWrite(7,HIGH);}
   
  if(open_==0 &amp;&amp; millis()-times_open&lt;3000){u8g.drawStr(35,30,&quot;ERROR&quot;);digitalWrite(5,HIGH);}
   else{digitalWrite(5,LOW);}
  
  } while( u8g.nextPage() );
 
 if(millis()-times&gt;20000){set=0;eeprom=0;}
}

void ok(){
    u8g.firstPage();  
   do {
    u8g.setFont(u8g_font_profont17r); 
    u8g.drawStr(55,30,&quot;OK&quot;);
  } while( u8g.nextPage() );
  }

void cl(){uid[0]=0;uid[1]=0;uid[2]=0;uid[3]=0;}  </code></pre></div>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2024-08-12T09:46:52Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=10620#p10620</id>
		</entry>
</feed>
