Sistema de atendimento baseado em RFID usando microcontrolador 8051

Sistema de atendimento baseado em RFID usando microcontrolador 8051

Este projeto denominado “SISTEMA DE ATENDIMENTO BASEADO EM RFID”é baseado em RFID como o nome sugere. Aqui, nosso objetivo é anotar cada funcionário que entra no escritório e também calcular o tempo que a pessoa permanece no escritório. Mais cedo, empresa costumava inserir os dados no cadastro e era um pouco desajeitado. Então pensei em usar o código de barras, mas o código de barras não era muito durável. O código de barras requer linha de visão contínua, baixa capacidade de dados, não pode ser reescrito, etc. devido a esses problemas, o código de barras não pode ser usado. Portanto, o RFID é a solução perfeita para isso. É muito fácil de trabalhar. As tags podem ser reconfiguradas se tags de leitura/gravação forem usadas. O alcance pode ser melhorado usando um leitor de alta frequência. Também pode adicionar segurança. Ao programar muitas outras facilidades podem ser adicionadas. Assim, devido a essas vantagens do RFID, nós o utilizamos para sistema de atendimento

Sistema de atendimento baseado em RFID usando microcontrolador 8051

Sistema de atendimento baseado em RFID usando microcontrolador 8051

Sistema de atendimento baseado em RFID usando microcontrolador 8051

Sistema de atendimento baseado em RFID usando microcontrolador 8051

Sistema de atendimento baseado em RFID usando microcontrolador 8051

(cabeçalho = O que é RFID?)

O QUE É RFID?

RFID é a abreviação de identificação por radiofrequência. Geralmente um sistema RFID consiste em 2 partes. Um Leitor e um ou mais Transponders, também conhecidos como Tags. Os sistemas RFID evoluíram a partir de etiquetas de código de barras como um meio de identificar e rastrear automaticamente produtos e pessoas. Em geral, você estará familiarizado com os sistemas RFID, conforme visto em:
Controle de acesso: Leitores RFID colocados em entradas que exigem que uma pessoa passe o seu cartão de proximidade (tag RF) para ser “lido” antes de o acesso poder ser feito.

Contate menos Sistemas de Pagamento: Etiquetas RFID usadas para transportar informações de pagamento. Os RFIDs são particularmente adequados para sistemas eletrônicos de cobrança de pedágio. Etiquetas fixadas em veículos ou transportadas por pessoas transmitem informações de pagamento para um leitor fixo conectado a uma estação de pedágio. Os pagamentos são então deduzidos rotineiramente da conta do usuário ou as informações são alteradas diretamente na etiqueta RFID.

Rastreamento de produtos e controle de estoque: Os sistemas RFID são comumente usados ​​para rastrear e registrar o movimento de itens comuns, como livros de biblioteca, roupas, paletes de fábrica, produtos elétricos e vários itens.

COMO FUNCIONA O RFID?

Abaixo é mostrado um sistema RFID típico. Em todo sistema RFID as Tags do transponder contêm informações. Essas informações podem ser tão pequenas quanto um único bit binário ou uma grande variedade de bits que representam coisas como um código de identidade, informações médicas pessoais ou literalmente qualquer tipo de informação que possa ser armazenada em formato binário digital.

Funcionamento de RFID

Fig. TRABALHO DE RFID

É mostrado um transceptor RFID que se comunica com uma etiqueta passiva. As tags passivas não possuem fonte de energia própria e, em vez disso, derivam energia do campo eletromagnético incidente. Normalmente, o coração de cada etiqueta é um microchip. Quando o Tag entra no campo de RF gerado ele é capaz de extrair energia suficiente do campo para acessar sua memória interna e transmitir as informações armazenadas. Quando a etiqueta do transponder consome energia desta forma, a interação resultante dos campos de RF faz com que o valor da tensão na antena do transceptor caia. Este efeito é utilizado pela Tag para comunicar suas informações ao leitor. O Tag é capaz de controlar a quantidade de energia retirada do campo e, ao fazê-lo, pode modular a tensão detectada no Transceptor de acordo com o padrão de bits que deseja transmitir.

(cabeçalho = Componentes de RFID)

COMPONENTES DE RFID

Um sistema RFID básico consiste em três componentes:Uma antena ou bobinaUm transceptor (com decodificador)Um transponder (etiqueta RF) programado eletronicamente com informações exclusivas Eles são descritos abaixo:

ANTENA

A antena emite sinais de rádio para ativar a etiqueta e ler e gravar dados nela. As antenas são os conduítes entre a etiqueta e o transceptor, que controlam a aquisição e comunicação de dados do sistema. As antenas estão disponíveis em vários formatos e tamanhos; eles podem ser embutidos em uma moldura de porta para receber dados de pessoas ou coisas que passam pela porta, ou montados em uma cabine de pedágio interestadual para monitorar o tráfego que passa em uma rodovia. O campo eletromagnético produzido por uma antena pode estar constantemente presente quando múltiplas tags são esperadas continuamente. Se a interrogação constante não for necessária, um dispositivo sensor pode ativar o campo.Freqüentemente, a antena é embalada com o transceptor e o decodificador para se tornar um leitor (também conhecido como interrogador), que pode ser configurado como um dispositivo portátil ou de montagem fixa. O leitor emite ondas de rádio em faixas que variam de uma polegada a 30 metros ou mais, dependendo da potência de saída e da frequência de rádio usada. Quando uma etiqueta RFID passa pela zona eletromagnética, ela detecta o sinal de ativação do leitor. O leitor decodifica os dados codificados no circuito integrado da etiqueta (chip de silício) e os dados são passados ​​ao computador host para processamento.

Antena RFID

Figo, ANTENA
TAGS (transponders)

Uma etiqueta RFID é composta por um microchip contendo informações de identificação e uma antena que transmite esses dados sem fio para um leitor. Basicamente, o chip conterá um identificador serializado, ou número de placa, que identifica exclusivamente aquele item,semelhante à forma como muitos códigos de barras são usados ​​hoje. Uma diferença fundamental, porém, é que as etiquetas RFID têm uma capacidade de dados maior do que os códigos de barras equivalentes. Isso aumenta as opções para o tipo de informação que pode ser codificada na etiqueta, incluindo fabricante, lote ou número de lote, peso, propriedade, destino e histórico (como a faixa de temperatura à qual um item foi exposto). Na verdade, uma lista ilimitada de outros tipos de informações pode ser armazenada em etiquetas RFID, dependendo das necessidades da aplicação. Uma etiqueta RFID pode ser colocada em itens individuais, caixas ou paletes para fins de identificação, bem como em ativos fixos, como reboques, contêineres, sacolas, etc.

As tags vêm em vários tipos, com diversos recursos. As principais variáveis ​​incluem:“Somente leitura” versus “leitura-gravação”
Existem três opções em termos de como os dados podem ser codificados nas etiquetas: (1) As etiquetas somente leitura contêm dados como um número de rastreamento serializado, que é pré-escrito nelas pelo fabricante ou distribuidor da etiqueta. Estas são geralmente as etiquetas mais baratas porque não podem incluir nenhuma informação adicional à medida que se movem ao longo da cadeia de abastecimento. Quaisquer atualizações dessas informações teriam que ser mantidas no software aplicativo que rastreia o movimento e a atividade do SKU. (2) Tags “Write once” permitem que um usuário grave dados na tag uma vez em processos de produção ou distribuição. Novamente, isso pode incluir um número de série, mas talvez outros dados, como lote ou número de lote. (3) Tags completas de “leitura e gravação” permitem que novos dados sejam gravados na tag conforme necessário – e até mesmo sobrescritos sobre os dados originais. Exemplos para o último recurso podem incluir a hora e a datade transferência de propriedade ou atualização do histórico de reparos de um ativo fixo. Embora estes sejam os mais caros dos três tipos de etiquetas e não sejam práticos para rastrear itens baratos, os futuros padrões para códigos eletrônicos de produtos (EPC) parecem estar caminhando nessa direção.

Etiquetas RFIDFig., ETIQUETAS RFID

Capacidade de dados
A quantidade de armazenamento de dados em uma tag pode variar, variando de 16 bits no nível inferior até vários milhares de bits no nível superior. É claro que quanto maior for a capacidade de armazenamento, maior será o preço por etiqueta.
Fator de forma

A estrutura da etiqueta e da antena pode vir em uma variedade de formatos físicos e pode ser independente ou incorporada como parte de uma estrutura de etiqueta tradicional (ou seja, a etiqueta está dentro do que parece ser uma etiqueta de código de barras normal – isso é chamado de ' As empresas de Etiqueta Inteligente') devem escolher os fatores de forma apropriados para a etiqueta com muito cuidado e devem esperar usar vários fatores de forma para atender às necessidades de etiquetagem de diferentes produtos físicos e unidades de medida. Por exemplo, uma palete pode ter uma etiqueta RFID colocada apenas numa área de colocação protegida na própria palete. Por outro lado, as caixas no palete possuem etiquetas RFID dentro das etiquetas de código de barras que também fornecem aos operadores informações legíveis por humanos e um backup caso a etiqueta falhe ou passe por elos da cadeia de suprimentos não compatíveis com RFID.

Passivo versus ativo

As etiquetas “Tags RFID passivas” não possuem bateria e “transmitem” seus dados somente quando energizadas por um leitor. Isso significa que eles devem ser pesquisados ​​ativamente para enviar informações. As etiquetas “Active RFID Tags” são capazes de transmitir seus dados usando sua própria bateria. Em geral, isso significa que os intervalos de leitura são muito maiores para tags ativas do que para tags passivas – talvez um alcance de leitura de 30 metros ou mais, versus 4,5 metros ou menos para a maioria das tags passivas. A capacidade extra e os intervalos de leitura das tags ativas, entretanto, têm um custo; elas são várias vezes mais caras que as tags passivas. Hoje, é muito mais provável que as tags ativas sejam usadas para itens de alto valor ou ativos fixos, como trailers, onde o custo é mínimo comparado ao valor do item e são necessários intervalos de leitura muito longos. A maioria das aplicações tradicionais da cadeia de suprimentos, como o Rastreamento baseado em RFID e os programas de conformidade emergentes na cadeia retalhista de bens de consumo utilizarão etiquetas passivas menos dispendiosas.

Frequências

Como todas as comunicações sem fio, há uma variedade de frequências ou espectros através dos quais as etiquetas RFID podem se comunicar com os leitores. Novamente, existem compensações entre custo, desempenho e requisitos de aplicação. Por exemplo, as etiquetas de baixa frequência são mais baratas do que as etiquetas de ultra-alta frequência (UHF), utilizam menos energia e são mais capazes de penetrar em substâncias não metálicas. Eles são ideais para escanear objetos com alto teor de água, como frutas, de perto. As frequências UHF normalmente oferecem melhor alcance e podem transferir dados mais rapidamente. Mas eles usam mais energia e têm menos probabilidade de passar por alguns materiais. As etiquetas UHF são normalmente mais adequadas para uso com ou perto de madeira, papel, papelão ou produtos de vestuário. Em comparação com as etiquetas de baixa frequência, as etiquetas UHF podem ser melhores para digitalizar caixas de mercadorias à medida que passam pela porta do compartimento até um armazém. Embora os requisitos de etiqueta para mandatos de conformidade possam ser definidos de forma restrita, é provável que uma variedade de tipos de etiqueta seja necessária para resolver problemas operacionais específicos. Você desejará trabalhar com uma empresa que tenha muito conhecimento em tecnologia de etiquetas e leitores para identificar adequadamente a combinação certa de tecnologia RFID para seu ambiente e aplicação.

Etiquetas EPC

EPC refere-se a “código de produto eletrônico”, uma especificação emergente para etiquetas RFID, leitores e aplicações comerciais desenvolvida pela primeira vez no Auto-IDCenter do Massachusetts Institute of Technology. Esta organização forneceu liderança intelectual significativa no uso e aplicação da tecnologia RFID. O EPC representa uma abordagem específica para identificação de itens, incluindo um padrão emergente para as próprias etiquetas, incluindo tanto o conteúdo dos dados da etiqueta quanto os protocolos abertos de comunicação sem fio. De certa forma, o movimento EPC está combinando os padrões de dados incorporados em certas especificações de códigos de barras, como os padrões de código de barras UPC ou UCC-128, com os padrões de código de barras sem fio.padrões de comunicação que foram desenvolvidos pela ANSI e outros grupos.

Transceptor RF:

O transceptor RF é a fonte de energia RF usada para ativar e alimentar as etiquetas RFID passivas. O transceptor RF pode ser colocado no mesmo gabinete que o leitor ou pode ser um equipamento separado. Quando fornecido como um equipamento separado, o transceptor é comumente chamado de módulo RF. O transceptor RF controla e modula as frequências de rádio que a antena transmite e recebe. O transceptor filtra e amplifica o sinal de retroespalhamento de uma etiqueta RFID passiva.

(cabeçalho = diagrama de blocos do sistema de atendimento RFID)

DIAGRAMA DE BLOCOS DO SISTEMA DE ATENDIMENTO BASEADO EM RFID

Diagrama de blocos do sistema de atendimento RFIDFig., DIAGRAMA DE BLOCOS

MICROCONTROLADOR: O microcontrolador é o coração do sistema. Usamos P89V51RD2. É semelhante ao microcontrolador 8051. É feito pela Phillips. O P89V51RD2 é um microcontrolador 80C51 com 64 kB Flash e 1024 bytes de RAM de dados.
Em primeiro lugar, o leitor busca 12 caracteres da tag. Esses 12 caracteres são então enviados ao microcontrolador via comunicação serial. No microcontrolador, o controlador combina os caracteres recebidos com os caracteres salvos. Se corresponder, o LED verde brilha, caso contrário, o LED vermelho brilha. O microcontrolador faz interface com o LCD para exibir os dados recebidos.
FONTE DE ENERGIA: para fonte de alimentação é usado um adaptador. Adaptador converte 230v em 5v.

LCD: LCD 16 x 2 é usado. LCD tem 16 pinos. Ele pode ler ou gravar dados. Aqui vamos usá-lo para escrever dados nele.
RTC: RTC significa Relógio em tempo real. RTC usado para cálculo de tempo. Sempre que uma pessoa entra, os dados do RTC são buscados e armazenados no microcontrolador. Quando a pessoa sai da sala novamente, os dados são buscados.
EEPROM: como a memória embutida no microcontrolador não será suficiente, uma EEPROM extra é anexada. EEPROM (24C512) está anexada. Possui 512kb de memória. Cerca de 2.000 registros podem ser salvos
TECLADO MATRIZ: O teclado matricial de 8 ou 16 switches é usado para definir novamente a temporização do RTC e também para inserir novos dados do usuário.
MÁX232: MAX 232 IC é usado. É usado como microcontrolador e trabalho de computador em diferentes níveis lógicos. O computador funciona no nível RS-232 e o microcontrolador funciona no nível TTL. Portanto, para haver comunicação entre dois, é utilizado um IC MAX232. Este IC traz o nível RS-232 para o nível TTL ou o nível TTL para o nível RS-232 de acordo.

(cabeçalho = Funcionamento do Sistema de Atendimento RFID)

FUNCIONAMENTO DO SISTEMA DE ATENDIMENTO RFID

Quando uma pessoa com etiqueta RFID ou transponder entra no alcance do leitor RFID, o campo RF induz tensão nas bobinas da etiqueta. O intervalo pode ser definido usando o leitor apropriado de frequência apropriada. Este campo induzido fornece a tensão no caso de tags passivas e atua como uma bateria nesse caso. Se tags ativas forem usadas, o caso será diferente, pois elas possuem bateria própria. Devido à interação do Tag com o Leitor, 12 caracteres do Tag são enviados ao controlador. Esses 12 caracteres são enviados ao controlador via comunicação serial. Antes que este controlador seja carregado com um programa. No controlador os dados do funcionário são salvos. No nosso caso, os dados de dois funcionários são salvos, ou seja, número e nome da etiqueta. Quando fornecemos alimentação ao circuito, o circuito liga e “SISTEMA DE ATENDIMENTO BASEADO EM RFID” é exibido no LCD.

Fig. TELA PADRÃO

Quando 12 caracteres são transferidos para o controlador, o controlador combina os caracteres com os caracteres salvos. Se os caracteres corresponderem, o controlador envia '1' para o LED verde e a hora e a data no momento da entrada são buscadas e armazenadas.Entrada válida

Fig., ENTRADA VÁLIDA

Se os caracteres não corresponderem aos caracteres salvos, o controlador envia '1' para o LED vermelho e exibe o número da etiqueta junto com uma string “ERROR”.Entrada inválida

Fig., ENTRADA INVÁLIDA

Desta forma, isso pode ser feito várias vezes para diferentes funcionários. Da mesma forma, haverá número de entradas, válidas ou inválidas.No final das contas, o circuito pode ser conectado ao PC através de RS232. E os dados completos são transferidos para o computador no HYPERTERMINAL/TERATERM.

Teraterm

Fig., VISUALIZAÇÃO TERATERM DA SAÍDA

Para inserir entradas de mais funcionários, uma EEPROM externa é anexada. No nosso caso é usado 24C256. Possui 256 KB de ROM. Assim, com a ajuda disso, 1000 registros podem ser armazenados.
Mantivemos uma tag para o gerente (ADMIN CARTÃO). Este cartão quando movido sobre o leitor RFID apagará todo o conteúdo. Assim, no final do dia, o gestor pode usar este cartão para esvaziar todo o conteúdo do dia. E a partir do dia seguinte pode ser repetido de forma semelhante.
Projeto RFID

Fig., CARTÃO DE ADMINISTRAÇÃO

(cabeçalho = Lista e explicação de componentes)

LISTA DE COMPONENTES
1. MICROCONTROLADOR: P89V51RD2 – 1 não
2. LCD 16 x 2 – 1 não
3. LEITOR RFID – RKI-1512 – 1 não
4. MÁX. 232 – 1 não

5.

Código fonte do projeto

 

Código fonte do projeto

###



#include
#include

//0000 to 7FFF

sbit RS = P0^7;
sbit EN = P0^6;

sbit SDA = P1^0;
sbit SCL = P1^1;
sbit RELAY = P1^2;

code unsigned char RFID_1  = "34006C9C04C0"; //34006C9C04+NULL
code unsigned char RFID_2  = "34006C549C90";
code unsigned char RFID_3  = "1300F8FAC1D0";
code unsigned char RFID_4  = "34006CD5AD20";
code unsigned char RFID_5  = "420061231E1E";

code unsigned char name_1  = "ROHIT SOLANKI";
code unsigned char name_2  = "SHEKHAT HARSH";
code unsigned char name_3  = "DHOLARIYA RAKSHIT";
code unsigned char name_4  = "DIVYANG SHAH";
code unsigned char name_5  = "ADMIN";

unsigned char rs(15);

unsigned int no_of_records;

void delay 
{
	int i;
	for(i=0;i<500;i++);
}

void long_delay 
{
	unsigned int i;
	for(i=0;i<65000;i++);
}

void idelay 
{
	unsigned int i;
	for(i=0;i<10000;i++);
}

void lcd_command(char lc)
{
	P2 = lc;
	RS = 0;
	EN = 1;
	delay ;
	EN = 0;
}

void lcd_data(char ld)
{
	P2 = ld;
	RS = 1;
	EN = 1;
	delay ;
	EN = 0;
}

void lcd_init 
{
	lcd_command(0x38);
	lcd_command(0x0E);
	lcd_command(0x01);
}

void serial_init 
{
	SCON = 0x50;
	TMOD = 0x20;
	TH1 = 0xFD;
	TR1 = 1;
}

void transmit(unsigned char tx)
{
	SBUF = tx;
	while(TI==0);
	TI = 0;
}

void send_string(unsigned char *str)
{
	int i;
	for(i=0;str(i)!='';i++)
		transmit(str(i));	
}

unsigned char receive 
{
	char rx;
	while(RI==0);
	RI = 0;
	rx = SBUF;
	return(rx);
}

void lcd_string(char add,char *str)
{
	int i;
	lcd_command(add);
	for(i=0;str(i)!='';i++)
		lcd_data(str(i));	
}

void start 
{
	SDA = 1;
	SCL = 1;
	SDA = 0;
}

void stop 
{
	SDA = 0;
	SCL = 1;
	SDA = 1;
}

void write(unsigned char w)
{
	int i;
	SCL = 0;
	for(i=0;i<8;i++)
	{
		if((w & 0x80)==0)
			SDA = 0;
		else
			SDA = 1;
		SCL = 1;
		SCL = 0;
		w = w << 1;
	}
	SCL = 1;
	SCL = 0;
}

unsigned char read 
{
	int i;
	unsigned char r = 0x00;
	SDA = 1;

	for(i=0;i<8;i++)
	{
		SCL = 1;
		r = r << 1;
		if(SDA == 1)
			r = r   0x01;
		SCL = 0;
	}
	return(r);
}

void ack 
{
	SDA = 0;
	SCL = 1;
	SCL = 0;
}

void nack 
{
	SDA = 1;
	SCL = 1;
	SCL = 0;
}

void rtc_read 
{
		unsigned char ss,mm,hh,day,mn,date,yr;
		start ;
		write(0xD0);
		write(0x00);		
		stop ;
		start ;
		write(0xD1);
		ss = read ;
		ack ;
		mm = read ;
		ack ;
		hh = read ;
		ack ;
		day = read ;
		ack ;
		date = read ;
		ack ;
		mn = read ;
		ack ;
		yr = read ;
		nack ;
		stop ;

		rs(0) = hh/0x10 + 48;
		rs(1) = hh%0x10 + 48;
		rs(2) = ':';
		rs(3) = mm/0x10 + 48;
		rs(4) = mm%0x10 + 48;
		rs(5) = ',';
		rs(6) = date/0x10 + 48;
		rs(7) = date%0x10 + 48;
		rs(8) = '/';
		rs(9) = mn/0x10 + 48;
		rs(10) = mn%0x10 + 48;
		rs(11) = '/';
		rs(12) = yr/0x10 + 48;
		rs(13) = yr%0x10 + 48;
		rs(14) = '';
}

void rtc_init 
{
	start ;
	write(0xD0);
	write(0x00);
	write(0x00);
	write(0x00);
	write(0x13);
	write(0x05);
	write(0x12);
	write(0x04);
	write(0x12);
	stop ;

}

void write_records(unsigned char *str);
void read_records ;

void main 
{
	unsigned char rec_data(13),i,t;

	RELAY = 0;

	lcd_init ;
	serial_init ;
	rtc_init ;
	idelay ;
	start ;
	write(0xA0);
	write(0x7F);
	write(0xFF);
	stop ;
	start ;
	write(0xA1);
	no_of_records = read ;
	nack ;
	stop ;

//	no_of_records = 0;

	while(1)
	{
	start:
		lcd_command(0x01);
		lcd_string(0x80,"RFID ATTENDANCE");
		lcd_string(0xC5,"SYSTEM");

		i = 0;
		while(1)
		{
			if(RI==1)
			{
				RI = 0;
				t = receive ;
				if(t == '+')
				{
					read_records ;
					goto start;
				}
				else
				{
					rec_data(i) = t;
					for(i=1;i<12;i++)
						rec_data(i) = receive ;
					rec_data(i) = '';	
					break;
				}
			}
		}

		i = strcmp(RFID_1,rec_data);	//match => i = 0

		lcd_command(0x01);

		if(i==0)
		{
			RELAY = 1;
			lcd_string(0x80,name_1);
			rtc_read ;
			lcd_string(0xC0,rs);
			long_delay ;
			write_records(name_1);
			RELAY = 0;
			goto start;		
		}

//
		i = strcmp(RFID_2,rec_data);	//match => i = 0

		if(i==0)
		{
			RELAY = 1;
			lcd_string(0x80,name_2);
			rtc_read ;
			lcd_string(0xC0,rs);
			long_delay ;
			write_records(name_2);
			RELAY = 0;
			goto start;		
		}

//
		i = strcmp(RFID_3,rec_data);	//match => i = 0

		if(i==0)
		{
			RELAY = 1;
			lcd_string(0x80,name_3);
			rtc_read ;
			lcd_string(0xC0,rs);
			long_delay ;
			write_records(name_3);
			RELAY = 0;
			goto start;		
		}

		i = strcmp(RFID_4,rec_data);	//match => i = 0

		if(i==0)
		{
			RELAY = 1;
			lcd_string(0x80,name_4);
			rtc_read ;
			lcd_string(0xC0,rs);
			long_delay ;
			write_records(name_4);
			RELAY = 0;
			goto start;		
		}

		i = strcmp(RFID_5,rec_data);	//match => i = 0

		if(i==0)
		{
			RELAY = 1;
			lcd_string(0x80,name_5);
			no_of_records = 0;
			start ;
			write(0xA0);
			write(0x7F);
			write(0xFF);
			write(0x00);
			stop ;
			lcd_string(0xC0,"MEMORY CLEARED");
			long_delay ;
			RELAY = 0;
			goto start;		
		}
		lcd_string(0x80,"ERROR");
		lcd_string(0xC0,rec_data);
		long_delay ;
	}
}


###

Vídeo do projeto

Вернуться в блог

Оставьте комментарий

Комментарии должны быть одобрены перед публикацией.