Manual Técnico Arduino Supervisório MODBUS & Conversor RS485



Documentos relacionados
Manual Técnico Módulo Ponte H Dupla

ACENDENDO AS LUZES. Capitulo 2 - Aula 1 Livro: Arduino básico Tutor: Wivissom Fayvre

Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações.

Projeto No. 11 Display de Leds de 7 Segmentos

Este tutorial mostra como utilizar as ferramentas Send Mail e Web Commands.

Robótica com Arduino

Programação Básica em Arduino Aula 2

RESULTAR EM "CHOQUE ELÉTRICO", FOGO, ENTRE OUTROS.

Manual Técnico. Arduino Programador Supervisório. [ Seu Arduino não é mais reconhecido pelo PC? ] Saiba como consertar você mesmo!

Hacking Class Controlando tomadas da sua casa via Internet

Entradas Digitais. PdP. Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006

InteropMix Arduino e Internet das Coisas. Leandro Ramos Leonardo Toledo Robson Machado

PROJETO. Ponte Digital. Luciano Daniel Amarante - carabina@pop.com.br Ricardo Watzko - rw@netuno.com.

Programação de Robótica: Modo Circuitos Programados - Avançado -

2014 Lumikit Sistemas para Iluminação

Projeto No. 12 Display de Led de 7 Segmentos

Minicurso de Arduino

O Laboratório de Garagem

Placa Acessório Modem Impacta

1 Componentes da Rede Gestun

Manual DataMax (Instalação)

Copyright 2013 VW Soluções

Manual PROTO-BEE Versão 1.1 Julho/2012 (nota na última página deste) Copyright, ROGERCOM Fones: / Cel.

Professor: Fernando Krein Pinheiro

Descrição dos pinos do Módulo Driver Motor com Dupla Ponte-H - L298N:

Resumo da Instalação do Modelo HC-1180 Modbus RTU V Instalações Necessárias. P1- Drive USB para Windows do Conversor RS- 485 para USB.

(21) (11) (21) Skype: cerne-tec MSN:

BEC- Bafômetro Embutido em Carros

Módulo de Conversão RS232/RS485

Módulo de Comunicação

Manual Placa DMX 10 pixels RGB

Manual Técnico Arduino Programador Supervisório Gravador de Bootloader

Testador de cabos de rede

Tutorial de Utilização do CellControl SMS I/O em rede DXNET com CLP Dexter µdx série 200

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CÂMPUS CURITIBA CURSO DE ENGENHARIA DE COMPUTAÇÃO

blueberry Documentation Versão 1.0

Hera Indústria de Equipamentos Eletrônicos LTDA Manual de Instalação e Operação DISCADORA VIA CELULAR. HERA HR Cel.

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo.

OPT CONVERSOR SERIAL PARA FIBRA ÓPTICA

Central de Alarme de Oito Zonas

Cabeça de Rede de Campo PROFIBUS-DP

Leitor ATG25A-CT (Cabo Preto)

Como instalar uma impressora?

Robótica com Arduino. Resistores. Professor: Paulo Trentin

Robô Wi-Fi controlado via Internet com Arduino e Shield Ethernet

Tutorial de Utilização do CellControl SMS 200 em rede DXNET com CLP Dexter µdx série 200

Manual do instalador Box Input Rev Figura 01 Apresentação do Box Input.

ARDUINO UNO Guia do Usuário

Linha de Módulos de Comando

ACIONAMENTOS ELETRÔNICOS (INVERSOR DE FREQUÊNCIA)

Manual informativo versão Julho/ Copyright, ROGERCOM

Módulo WCM200. Controlador WSI250 - HI Tecnologia

Manual do Usuário. ccntelecom.com.br

Bancada de Testes Hidrostáticos e Pneumáticos

Sistema Modelix-G (Modelix-Grafix)

Uma Fonte de Alimentação para a Bancada de Eletronica

Conversor Ethernet Serial CES-0200-XXX-XX. Manual V3.9

FIREWIRE. O logotipo padronizado: Suas principais vantagens:

PdP. Autor: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 26/12/2005 Última versão: 18/12/2006

Viabilizado pela Organização do ERI MS; Apoiado pelo grupo ArduinoMS; Agradecimentos especiais ao do SENAC e UCDB.

Hera Indústria de Equipamentos Eletrônicos LTDA. Manual de Instalação e Operação. Discadora por Celular HERA HR2048.

Parte I Tutorial Wi Fi 2.0 Arduino Exemplo usado: Webserver

Manual do Usuário - NKPROX

Just do it yourself ;) Guia de instalação rápida da ITSCAM Dispositivo de Controle de Tráfego Modelos 400 a 421

Conjunto Sensor IR Para quem tem fome de vencer

Características técnicas Baseado no ATMega da empresa AVR, fabricante de micro-controladores em plena ascensão e concorrente do PIC Pode usar ATMega

Kit de desenvolvimento ACEPIC 40N

Manual do instalador Box Output AC Rev Figura 01 Apresentação do Box Output AC.

Placas, cabos e hubs

Manual de utilização do módulo NSE METH-8RL/Exp

Capítulo 2. Laboratório 2.1. Introdução ao Packet Tracer, Roteadores, Switches e Inicialização

SCD 912. Dispositivo de comunicação e armazenamento. Apresentação. Dados Técnicos. Conexões

Manual informativo CON-USBBEE Julho/ Copyright, ROGERCOM

DIFERENÇAS ENTRE HUB, SWITCH E ROOTER

Guia de utilização do software. universal GPRS M-300.

Cerne Tecnologia e Treinamento

Índice. presys Introdução... 1 Comunicação RS Comunicação RS Anexo 1 Comunicação RS-232 com Instrumento DMY

Easy Lab. Manual do usuário Revisão /11/14. DMA Electronics 1

MÓDULO MD-50 DESCRIÇÃO DO PRODUTO CARACTERÍSTICAS GERAIS CONECTOR DE ENTRADA SENHA DO USUÁRIO

3. Cite o nome e características do ponto mais alto e do ponto mais baixo de uma onda?

ITSCAM ITSLUX/SUPERLUX GUIA DE INSTALAÇÃO RÁPIDA

Cerne Tecnologia e Treinamento

Manual do instalador Box Output DC Rev Figura 01 Apresentação do Box Output DC.

SENSOR DE LUMINOSIDADE Com indicador de intervalo

Arduino Aula 4 SHIELDS: BLUETOOTH, ETHERNET E EMG

Projeto No. 10 Relógio com LCD

Manual. Controle de motores via Bluetooth. William Trevine

LED STRIP DRIVER 9 CHANNELS

Curso de Instalação e Gestão de Redes Informáticas

R O B Ó T I C A. Sensor Smart. Seguidor de Linha. Versão Hardware: 1.0 Versão Firmware: 2.0 REVISÃO

Manual de funcionamento Esteira transportadora

Módulo FGM721. Controlador P7C - HI Tecnologia

MANUAL CONVERSOR ETHERNET SERIAL

UDPcast Clonagem de HDs via rede utilizando

SISTEMA DE MONITORAMENTO DIGITAL

Motor de Passo - Arduino

REDE CABEADA CFTV MANUAL DO USUÁRIO

Arduino Hack Day PROMOVA VOCÊ TAMBÉM UM ARDUINO HACK DAY!

CENTRAL DE ALARME SEM FIO AS-321

Leitor MaxProx-Lista

Transcrição:

Manual Técnico Arduino Supervisório MODBUS & Conversor RS485 2015 Todos os direitos reservados Página 1 de 27

Sumário Manual Técnico...1 Introdução...3 Arduino Supervisório MODBUS...3 Conversor RS485...3 Características...4 Sobre o RS485 & MODBUS...5 Diagrama de Conexões Para Testes de Bancada...6 Como Ligar FTDi Basic No Arduino Supervisório...8 Siga a orientação mostrada nas fotos abaixo para conectar seu Arduino FTDi Basic da Serial Link no Arduino Supervisório MODBUS...8 Veja também o manual do Arduino FTDi Basic no link abaixo:...8 http://www.seriallink.com.br/lab/arduino/datasheet_ftdibasic_seriallink.pdf...8 Identificando Conectores & Jumpers...9 Detalhes Sobre o Arduino Supervisório...16 Configurando Jumpers...18 Exemplo 1 Teste de Bancada Comunicando 2 Arduinos...21 Código do Exemplo 1...21 Exemplo 2 Ligando 4 Arduinos em Rede...23 Código do Exemplo 2...24 2015 Todos os direitos reservados Página 2 de 27

Introdução Neste manual veremos os detalhes técnicos de dois produtos, concebidos para funcionar em conjunto, formando uma rede MODBUS, via comunicação RS485. Arduino Supervisório MODBUS Arduino Supervisório que a gente já conhece, mas nessa versão, integrado com um circuito de comunicação RS485. Totalmente configurável por jumpers, o módulo RS485 integrado no Arduino Supervisório, é muito versátil. Tão versátil que pode ser destacado! Isso mesmo! Você pode cortar o Módulo RS485 fora do Arduino Supervisório e ambos continuarão funcionando separadamente. Conversor RS485 Conversor RS485 é um Módulo Avulso que pode ser ligado em um FTDi, um Arduino UNO, NANO etc. Na verdade o Conversor RS485 é igual ao Módulo Integrado RS485 do Arduino Supervisório, com algumas pequenas diferenças. A primeira é dele ser avulso. A segunda é que seu conector tem uma pinagem diferente do RS485 integrado. Mas possui todos os jumpers de configuração e a mesma funcionalidade do módulo integrado. Foi pensado dessa forma para ser um acessório de bancada, onde você pode ligar seu Arduino UNO nesse Conversor RS485 e ligar os fios no Arduino Supervisório MODBUS, para testar a comunicação MODBUS. No manual veremos também código de exemplo para você poder efetuar os testes de funcionamento do seu equipamento. 2015 Todos os direitos reservados Página 3 de 27

Características Arduino Supervisório MODBUS Aceita alimentação 5VDC e 12VDC Proteção contra curto-circuito na entrada de 12VDC Exclusivo Conector FTDi Serial Link para carregar a programação do Arduino sem precisar tirar o chip da placa. Todas as portas do Arduino UNO disponíveis para conexão via bornes parafusáveis, garantindo melhor fixação contra vibrações. Portas Auxiliares também dispostas em bornes AREF, RST, GND Nesta versão temos também bornes para fixação dos fios da Comunicação RS485 Possibilidade de cortar o módulo integrado RS485 fora e utilizar o Arduino Supervisório sozinho Jumpers de Configuração do Módulo RS485 7 jumpers, sendo: 1x Jumper de GND (desativado) 1x Jumper EN Decide se envia ou recebe, 2x na linha da Serial, 1x de resistor terminador (120R), 2x resistores de pull-up/down (470R) Conector Auxiliar RS485 caso o módulo seja cortado para também poder ser usado separadamente Conversor RS485 Apenas alimentação 5VDC Acessório indispensável para testes de bancada Integra plataformas como PC, Android, Arduino UNO, Raspberry Pi, através da Serial, convertendo em RS485. Oferece integração simples usando apenas 5 fios: 5V, GND, EN, RX, TX (não necessariamente nessa ordem, vide ordem correta abaixo) Possui também os Jumpers de Configuração do Módulo RS485 7 jumpers, sendo: 1x Jumper de GND (desativado) 1x Jumper EN Decide se envia ou recebe, 2x na linha da Serial, 1x de resistor terminador (120R), 2x resistores de pull-up/down (470R) Borne com terminais parafusáveis para ligação dos fios da Comunicação RS485, compatíveis com a linha Supervisório da Serial Link. 2015 Todos os direitos reservados Página 4 de 27

Sobre o RS485 & MODBUS RS485 É o código determinado por uma norma de engenharia para definir a comunicação entre equipamentos. Essa norma RS485 em especial é muito interessante pois determina níveis lógicos de sinal, com tensões que ultrapassam os 30V positivos e negativos! Essa característica é muito interessante para comunicação a longas distâncias! O Protocolo RS485, como é conhecida essa norma de engenharia da comunicação, por suas características, consegue lidar com distâncias de até 2Km! Isso tudo em apenas dois fios trançados! MODBUS O mais interessante da aplicação do Protocolo RS485 é a possibilidade de definir endereços para cada Nó da Rede, ou seja, para cada Equipamento ligado em série pelos dois fios, formando uma rede de comunicação, conforme veremos adiante. Veremos código para implementar essa Rede conhecida por MODBUS e como comunicar com os equipamentos ligados na rede de forma individual. 2015 Todos os direitos reservados Página 5 de 27

Diagrama de Conexões Para Testes de Bancada Efetue as conexões fornecidas no diagrama abaixo para poder executar os exemplos desse manual. Repare que serão necessários adicionalmente dois itens: Arduino FTDi Basic (fabricado e vendido pela Serial Link, separadamente) Arduino UNO (chines ou original italiano, comprado a parte) Conversor RS485 N/A TX RX 5V EN GND Arduino UNO D1 (TX) D0 (RX) D3 A B 2015 Todos os direitos reservados Página 6 de 27

Diagrama de Conexões (Cont.) A B + - Arduino Supervisório MODBUS Conectar aqui o ATMega328 Conectar aqui o FTDI Basic para carregar a programação 2015 Todos os direitos reservados Página 7 de 27

Como Ligar FTDi Basic No Arduino Supervisório Siga a orientação mostrada nas fotos abaixo para conectar seu Arduino FTDi Basic da Serial Link no Arduino Supervisório MODBUS. Veja também o manual do Arduino FTDi Basic no link abaixo: http://www.seriallink.com.br/lab/arduino/datasheet_ftdibasic_seriallink.pdf 2015 Todos os direitos reservados Página 8 de 27

Identificando Conectores & Jumpers Arduino Supervisório MODBUS Tendo em mãos sua placa do Arduino Supervisório com RS485 integrado, vamos verificar onde estão localizadas as portas, as posições dos bornes e também conectores auxiliares e jumpers. Portas Digitais Compatíveis com padrão de pinagem do Arduino UNO. A única diferença está na identificação dos pinos D0 e D1, que no Arduino Supervisório aparecem como RX e TX, respectivamente. Portas digitais 0 a 9: Portas digitais 10 a 13: 2015 Todos os direitos reservados Página 9 de 27

Portas Analógicas Arduino Supervisório possui 6 portas analógicas, desde A0 até A5, conforme foto: Alimentação 5VDC & 12VDC Contando com um Regulador de Tensão, o Arduino Supervisório aceita alimentação 5V (corrente contínua) e também 12V (corrente contínua) ATENÇÃO Não ligue AC (corrente alternada) em nenhum borne de alimentação! Borne de Alimentação 5VDC - + 2015 Todos os direitos reservados Página 10 de 27

Borne de Alimentação 12VDC + - Portas Auxiliares As portas auxiliares do Arduino Supervisório encontram-se no mesmo conector da Alimentação 5VDC, conforme foto: Portas Auxiliares 2015 Todos os direitos reservados Página 11 de 27

Conector RS485 Integrado ao Arduino Supervisório, temos os bornes do Conector RS485, onde devemos ligar os fios trançados da Rede MODBUS. 2015 Todos os direitos reservados Página 12 de 27

Jumpers de Configuração RS485 Ligamos todos os equipamentos da Rede MODBUS em série, através de dois fios trançados para evitar interferência magnética externa. Como muitos Arduinos Supervisório podem ser ligados na mesma Rede, muitos jumpers de configuração de fazem necessários para ajustar cada Arduino da Rede com uma configuração diferente. Na rede RS485 temos algumas características interessantes, vejamos a imagem da Rede MODBUS abaixo: Repare que os equipamentos da ponta precisam ativar o resistor terminador de 120 ohms. E que também um deles precisa ativar os resistores de pull-up/down. Já os outros equipamentos da Rede RS485 não precisam, então todos esses detalhes são configurados através do sete (07) jumpers disponíveis na plataforma MODBUS da Serial Link. 2015 Todos os direitos reservados Página 13 de 27

Veja abaixo na foto onde estão localizados os Jumpers e também a numeração deles que utilizaremos adiante nesse manual. 7 1 2 3 4 6 5 1) Jumper do GND Sem uso, apenas um pino extra de GND. (Não conectado) 2) Jumper do EN Chaveia entre Transmissão/Recepção (ENABLE) 3) Jumper do RX Jumper da linha Serial RX (desligar quando for subir programação no Arduino) 4) Jumper do TX Jumper da linha Serial TX (desligar quando for subir programação no Arduino) 5) Jumper de Pull-Up Ligado no Resistor 470R que vai para o positivo (VCC) 6) Jumper do Terminador Ligado no Resistor 120R terminador da Rede RS485 7) Jumper de Pull-Down Ligado no Resistor 470R que vai para o terra (GND) 2015 Todos os direitos reservados Página 14 de 27

Conector FTDi Por se tratar de um Arduino Supervisório REV2.1 Red Dragon, temos nessa placa também o Conector FTDi, para carregar códigos do Arduino sem precisar retirar o chip ATMega da placa! O Arduino FTDi Basic da Serial Link foi desenvolvido para esse fim e deve ser conectado nesse conector da foto abaixo: Conector FTDi 2015 Todos os direitos reservados Página 15 de 27

Detalhes Sobre o Arduino Supervisório O Arduino Supervisório é bem simples de ser utilizado, pois ele funciona como um Arduino UNO qualquer. Veja tabela comparativa abaixo: Característica Arduino UNO Conversor USB/Serial integrado SIM NÃO Saídas digitais D0~D13 SIM SIM Saídas Analógicas A0~A5 SIM SIM Alimentação 5V/GND SIM SIM Alimentação 12V/GND SIM (VIN) SIM Portas Auxiliares RST e AREF SIM SIM Regulador de Tensão 3V3 SIM NÃO Arduino Supervisório Como podemos ver, as únicas diferenças são entre o Conversor USB/Serial e o Regulador de Tensão 3,3V. No caso do Conversor USB/Serial, o Arduino UNO possui um ATMega16u2 integrado na placa para essa tarefa; bem como componentes auxiliares e o conector USB, tudo integrado na placa. Já o Arduino Supervisório não possui o Conversor USB/Serial integrado, pois como ele é voltado para ser utilizado em máquinas que possuem vibrações, o circuito é bem minimalista e robusto; portanto esse circuito (que serve apenas na bancada) foi separado no Arduino FTDi Basic, que é um outro produto Serial Link vendido separadamente: http://seriallink.com.br/web/index.php?r=produtos/placaarduinoftdibasic Dessa forma o cliente precisa comprar apenas um Arduino FTDi Basic para gravar quantos Arduinos Supervisório quiser! Além de ser mais econômico, basta deixar o Arduino FTDi Basic já conectado no cabo USB para atualizar o código da máquina, sem precisar desmontar nada! Basta apenas chegar perto com um Notebook e espetar o FTDi Basic no conector FTDi do Arduino Supervisório! 2015 Todos os direitos reservados Página 16 de 27

Módulo Integrado RS485 A novidade dessa versão de Arduino Supervisório é o Módulo RS485 integrado, que traz uma característica muito interessante para a plataforma Supervisório: A possibilidade de ligar vários Arduinos em Rede! Dessa forma é possível integrar várias máquinas, reduzindo o custo, sem se preocupar com distâncias, pois o RS485 é conhecido pela sua confiabilidade de conexão em cabos trançados de até 2Km! Vamos ver os exemplos. 2015 Todos os direitos reservados Página 17 de 27

Configurando Jumpers A princípio, 7 parece um número muito grande de jumpers para configurar, mas não é tão complicado assim! Um deles ainda não tem uso e serve como um pino auxiliar de GND. Ele é o primeiro Jumper, conforme foto: 1 Dois deles são os da linha da Serial, que ligam os circuitos do RX e TX (e que devem ser desligados ao carregar programas pelo FTDi) conforme foto abaixo: 3 4 2015 Todos os direitos reservados Página 18 de 27

O jumper principal da Rede MODBUS é o que ativa o resistor de 120 ohms. Esse resistor é chamado de terminador e só precisa ser ativado nos Arduinos das pontas, ou seja, no primeiro Arduino e no último da Rede. 6 Outros dois jumpers importantes na Comunicação RS485 são os de pull-up/down da Rede. Eles são responsáveis por criar um divisor resistivo na alimentação positiva (pull-up) e negativa (pull-down). Estes jumpers precisam ser ativados em apenas 1 dos Arduinos da Rede toda. Ou seja, basta ativar esses jumpers em qualquer um dos Arduinos da rede e desligar em todos os outros. Costuma-se ativar esses jumpers de elevação no primeiro ou no último Arduino (sempre nos Arduinos das pontas). 7 5 2015 Todos os direitos reservados Página 19 de 27

Por último e não menos importante temos o Jumper do ENABLE, que funciona como uma chave para decidir se o módulo está transmitindo ou recebendo. Veremos isso na parte do código, mas basta colocar esse pino em estado lógico para transmitir e em estado baixo para receber. Esse jumper fica normalmente conectado e não precisa mexer. 2 A placa do Arduino Supervisório MODBUS acompanha todas as capinhas dos jumpers. 2015 Todos os direitos reservados Página 20 de 27

Exemplo 1 Teste de Bancada Comunicando 2 Arduinos Para esse exemplo, vamos conectar os fios conforme mostrado mais acima neste manual, no diagrama de teste de bancada. O que vamos fazer é bem simples: 1. Ligamos o Módulo Avulso RS485 no Arduino UNO 2. Conectamos os fios trançados entre o Módulo Avulso e o Integrado de RS485 3. Ligamos alimentação no Arduino Supervisório 4. Ligamos o Arduino UNO na USB do computador. 5. Pronto! É simples assim! Se você quiser, pode adicionar alguns LEDs em série com resistores nas portas do Arduino Supervisório para ver eles acendendo conforme os comandos enviados pelo Arduino UNO. Código do Exemplo 1 Cod1Transmissor.ino int enablepin = 3; // endereco do pino EN void setup() Serial.begin(9600); pinmode(enablepin, OUTPUT); delay(10); digitalwrite(enablepin, HIGH); // para enviar //colocar esse pino em HIGH // para receber //colocar esse pino em LOW void loop() // Acionando 4 LEDs que ficam no Receptor for (int i = 0; i < 4; i++) switch(i) // acionando Arduino (A) do BUS // pulsando 1 led por segundo // sequencialmente case 0: Serial.println("A1000"); break; case 1: Serial.println("A0100"); break; case 2: Serial.println("A0010"); break; case 3: Serial.println("A0001"); break; delay(1000); 2015 Todos os direitos reservados Página 21 de 27

Cod1Receptor.ino int enablepin = 3; // endereco do pino EN char endereco = 'A'; // definir aqui o endereco do Arduino no BUS String inputstring = ""; // string q recebe os dados boolean stringcomplete = false; // terminou de receber string? void setup() Serial.begin(9600); pinmode(enablepin, OUTPUT); delay(10); digitalwrite(enablepin, LOW); // para enviar //colocar esse pino em HIGH // para receber //colocar esse pino em LOW // Ativando as portas dos LEDs de verificacao // LEDs nas portas digitas 4, 5, 6, 7, 8 for (int i = 4; i < 8; i++) pinmode(i, OUTPUT); void loop() if (stringcomplete) // verificando se comando eh pra mim if (inputstring.charat(0) == endereco) for (int i = 1; i < 5; i++) if (inputstring.charat(i) == '1') digitalwrite(3 + i, 1); else digitalwrite(3 + i, 0); // limpa string inputstring = ""; stringcomplete = false; void serialevent() while (Serial.available()) char inchar = (char)serial.read(); inputstring += inchar; if (inchar == '\n') stringcomplete = true; 2015 Todos os direitos reservados Página 22 de 27

Exemplo 2 Ligando 4 Arduinos em Rede Neste outro exemplo veremos como comunicar o Arduino Uno com 3 outros Arduinos Supervisórios, formando uma Rede com 4 Arduinos no total! Se você adicionalmente quiser montar os LEDs conforme a foto abaixo, o código de teste forma um efeito bem interessante! 2015 Todos os direitos reservados Página 23 de 27

Código do Exemplo 2 Cod2Transmissor.ino int enablepin = 3; // endereco do pino EN void setup() Serial.begin(9600); pinmode(enablepin, OUTPUT); delay(10); digitalwrite(enablepin, HIGH); // para enviar //colocar esse pino em HIGH // para receber //colocar esse pino em LOW void loop() // Acionando 4 LEDs que ficam no Receptor for (int i = 0; i < 4; i++) // acionando Arduino (A) do BUS switch(i) // pulsando 1 led por segundo // sequencialmente case 0: Serial.println("A1000"); break; case 1: Serial.println("A0100"); break; case 2: Serial.println("A0010"); break; case 3: Serial.println("A0001"); break; // acionando Arduino (B) do BUS switch(i) // pulsando 1 led por segundo // sequencialmente case 0: Serial.println("B1000"); break; case 1: Serial.println("B0100"); break; case 2: Serial.println("B0010"); break; case 3: Serial.println("B0001"); break; // acionando Arduino (C) do BUS switch(i) // pulsando 1 led por segundo // sequencialmente case 0: Serial.println("C1000"); break; case 1: Serial.println("C0100"); break; case 2: Serial.println("C0010"); break; case 3: Serial.println("C0001"); break; delay(1000); 2015 Todos os direitos reservados Página 24 de 27

Cod2ReceptorA.ino int enablepin = 3; // endereco do pino EN char endereco = 'A'; // definir aqui o endereco do Arduino no BUS String inputstring = ""; // string q recebe os dados boolean stringcomplete = false; // terminou de receber string? void setup() Serial.begin(9600); pinmode(enablepin, OUTPUT); delay(10); digitalwrite(enablepin, LOW); // para enviar //colocar esse pino em HIGH // para receber //colocar esse pino em LOW // Ativando as portas dos LEDs de verificacao // LEDs nas portas digitas 4, 5, 6, 7, 8 for (int i = 4; i < 8; i++) pinmode(i, OUTPUT); void loop() if (stringcomplete) // verificando se comando eh pra mim if (inputstring.charat(0) == endereco) for (int i = 1; i < 5; i++) if (inputstring.charat(i) == '1') digitalwrite(3 + i, 1); else digitalwrite(3 + i, 0); // limpa string inputstring = ""; stringcomplete = false; void serialevent() while (Serial.available()) char inchar = (char)serial.read(); inputstring += inchar; if (inchar == '\n') stringcomplete = true; Serial Link Comunicações & Serviços 2015 Todos os direitos reservados Página 25 de 27

Cod2ReceptorB.ino int enablepin = 3; // endereco do pino EN char endereco = 'B'; // definir aqui o endereco do Arduino no BUS String inputstring = ""; // string q recebe os dados boolean stringcomplete = false; // terminou de receber string? void setup() Serial.begin(9600); pinmode(enablepin, OUTPUT); delay(10); digitalwrite(enablepin, LOW); // para enviar //colocar esse pino em HIGH // para receber //colocar esse pino em LOW // Ativando as portas dos LEDs de verificacao // LEDs nas portas digitas 4, 5, 6, 7, 8 for (int i = 4; i < 8; i++) pinmode(i, OUTPUT); void loop() if (stringcomplete) // verificando se comando eh pra mim if (inputstring.charat(0) == endereco) for (int i = 1; i < 5; i++) if (inputstring.charat(i) == '1') digitalwrite(3 + i, 1); else digitalwrite(3 + i, 0); // limpa string inputstring = ""; stringcomplete = false; void serialevent() while (Serial.available()) char inchar = (char)serial.read(); inputstring += inchar; if (inchar == '\n') stringcomplete = true; Serial Link Comunicações & Serviços 2015 Todos os direitos reservados Página 26 de 27

Cod2ReceptorC.ino int enablepin = 3; // endereco do pino EN char endereco = 'C'; // definir aqui o endereco do Arduino no BUS String inputstring = ""; // string q recebe os dados boolean stringcomplete = false; // terminou de receber string? void setup() Serial.begin(9600); pinmode(enablepin, OUTPUT); delay(10); digitalwrite(enablepin, LOW); // para enviar //colocar esse pino em HIGH // para receber //colocar esse pino em LOW // Ativando as portas dos LEDs de verificacao // LEDs nas portas digitas 4, 5, 6, 7, 8 for (int i = 4; i < 8; i++) pinmode(i, OUTPUT); void loop() if (stringcomplete) // verificando se comando eh pra mim if (inputstring.charat(0) == endereco) for (int i = 1; i < 5; i++) if (inputstring.charat(i) == '1') digitalwrite(3 + i, 1); else digitalwrite(3 + i, 0); // limpa string inputstring = ""; stringcomplete = false; void serialevent() while (Serial.available()) char inchar = (char)serial.read(); inputstring += inchar; if (inchar == '\n') stringcomplete = true; Serial Link Comunicações & Serviços 2015 Todos os direitos reservados Página 27 de 27