Protocolos de comunicação Arduino
Usando protocolos de comunicação, podemos enviar e receber os dados de qualquer sensor em Arduino.
Alguns sensores simples como o Infravery (IR) podem se comunicar diretamente com o Arduino, mas alguns dos sensores complexos, como módulo Wi-Fi, Módulo de cartão SD e giroscópio, não podem se comunicar diretamente com o Arduino sem nenhum protocolo de comunicação. Então, é por isso que esses protocolos são parte integrante da comunicação Arduino.
Arduino tem vários periféricos ligados a ele; Entre eles, existem três periféricos de comunicação usados nas placas Arduino.
Protocolos de comunicação Arduino
A comunicação entre diferentes dispositivos eletrônicos, como o Arduino, é padronizada entre esses três protocolos; Ele permite que os designers se comuniquem entre diferentes dispositivos facilmente sem problemas de compatibilidade. O trabalho desses três protocolos é o mesmo que servem ao mesmo objetivo de comunicação, mas diferem na implementação dentro de um circuito. Descrição adicional desses protocolos é discutida abaixo.
Uart
Uart é conhecido como o Transmissor de receptor assíncrono universal. O UART é um protocolo de comunicação serial que significa que os bits de dados são transferidos na forma seqüencial um após o outro. Para configurar a comunicação UART, precisamos de duas linhas. Um é o pino TX (D1) da placa Arduino e o segundo é o pino RX (D0) da placa Arduino. O pino TX é para transmitir dados para dispositivos e o pino RX é usado para receber dados. Diferentes placas de Arduino têm vários pinos UART.
Pin Digital Arduino | Pino uart |
D1 | Tx |
D0 | Rx |
Para estabelecer a comunicação serial usando a porta UART, precisamos conectar dois dispositivos abaixo da configuração mostrada:
No Arduino Uno, uma porta serial é dedicada à comunicação que é comumente referida como porta USB. Como o nome sugere o barramento serial universal, é uma porta serial. Usar o USB Port Arduino pode estabelecer comunicação com computadores. A porta USB está conectada aos pinos de bordo TX e RX de Arduino. Usando esses pinos, podemos conectar qualquer hardware externo que não seja o computador através do USB. Arduino IDE fornece biblioteca softwareserial (Softwareserial.h) que permite que os usuários usem pinos GPIO como pinos em série TX e RX.
Interface periférica em série (SPI)
Spi é um acrônimo de interface periférica em série que é projetada especialmente para microcontroladores para se comunicar com eles. O SPI opera no modo Full-Duplex, o que significa que o SPI pode enviar e receber dados simultaneamente. Quando comparado com UART e I2C, é o periférico de comunicação mais rápido nas placas Arduino. É comumente usado onde a alta taxa de dados é necessária, como no LCD Display e Micro SD Card Applications.
Os pinos digitais SPI no Arduino são predefinidos. Para a configuração do Arduino Uno SPI Pin, é o seguinte:
Linha spi | Gpio | PIN do cabeçalho do ICSP |
Sck | 13 | 3 |
MISSÔ | 12 | 1 |
Mosi | 11 | 4 |
Ss | 10 | - |
Um dos principais destaques do protocolo SPI é a configuração mestre-escravos. O uso do dispositivo SPI One pode ser definido como mestre para controlar vários dispositivos escravos. Master está no controle total de dispositivos escravos através do protocolo SPI.
O SPI é um protocolo síncrono, o que significa que a comunicação está ligada ao sinal de relógio comum entre mestre e escravo. O SPI pode controlar vários dispositivos como escravo em uma única linha de transmissão e recebimento. Todos os escravos estão conectados ao mestre usando comum MISSÔ receber linha junto com Mosi uma linha de transmissão comum. Sck é também a linha de relógio comum entre dispositivos mestre e escravo. A única diferença nos dispositivos escravos é que cada dispositivo escravo é controlado por meio de separados Ss Selecione a linha. Isso significa que cada escravo precisa de um pino de gpio extra da placa Arduino, que atuará como linha selecionada para esse dispositivo escravo em particular.
Alguns dos principais destaques do protocolo SPI estão listados abaixo:
I2C Protocolo de comunicação
Circuito inter -integrado (I2C) é outro protocolo de comunicação usado pelas placas Arduino. I2C é o protocolo mais difícil e complicado de implementar com o Arduino e outros dispositivos. Apesar de sua complicação, oferece vários recursos que estão ausentes em outros protocolos, como múltiplas mestre e múltiplas configurações de escravos. I2C permite conectar até 128 dispositivos à placa Arduino principal. Isso só é possível porque o I2C compartilhe um único fio entre todos os dispositivos escravos. I2C em Arduino usa um sistema de endereço, ou seja, antes de enviar dados para o dispositivo escravo Arduino deve primeiro selecionar o dispositivo escravo enviando endereço exclusivo. I2C usa apenas dois fios reduzindo a contagem geral de pinos Arduino, mas o lado ruim é I2C é mais lento que o protocolo SPI.
Pino analógico de Arduino | I2C PIN |
A4 | SDA |
A5 | SCL |
No nível de hardware, I2C é limitado a apenas dois fios, um para uma linha de dados conhecida como SDA (dados seriais) e segundo para a linha do relógio SCL (relógio em série). No estado inativo, tanto o SDA quanto o SCL são retirados. Quando os dados precisam ser transmitidos, essas linhas são puxadas baixas usando circuitos MOSFET. Usando I2C em projetos, é obrigatório usar resistores de puxar normalmente um valor de 4.7kohm. Esses resistores de tração garantem que as linhas SDA e SCL permaneçam altas em seu início ocioso.
Alguns dos principais destaques dos protocolos I2C são:
Comparação entre UART vs I2C vs SPI
Protocolo | Uart | Spi | I2c |
Velocidade | Mais lento | O mais rápido | Mais rápido que o UART |
Número de dispositivos | Até 2 | 4 dispositivos | Até 128 dispositivos |
Fios necessários | 2 (TX, RX) | 4 (SCK, Mosi, Miso, SS) | 2 (SDA, SCL) |
Modo duplex | Modo duplex completo | Modo duplex completo | Meio duplex |
Número de escravas mestres possíveis | Escravo de mestre único | Escravos Mestre-Multiple Mestre | Múltiplos escravos do Masters-Multiple |
Complexidade | Simples | Pode controlar facilmente vários dispositivos | Complexo com aumento de dispositivos |
Bit de reconhecimento | Não | Não | Sim |
Conclusão
Neste artigo, cobrimos uma comparação abrangente de todos os três protocolos UART, SPI e I2C usados em Arduino. Saber todos os protocolos é importante, pois oferece inúmeras oportunidades para integrar vários dispositivos. Compreender todos os periféricos de comunicação economizará tempo e ajudará a otimizar projetos de acordo com o protocolo correto.