Expansão das entradas do Arduino. Como aumentar o número de pinos digitais do Arduino usando um expansor de porta

10.09.2021

Descrição do escudo expansor

Expander Shield é um módulo adicional original projetado para aumentar o número de portas de entrada/saída de microcontroladores baseados em Plataformas Arduino, bem como outros microcontroladores, utilizando expansores de porta com interface SPI ou I2C.


Os principais elementos do módulo Expander Shield adicional são dois microcircuitos MCP23S17 ou MCP23017 (dois expansores de porta I/O de 16 bits com interface SPI ou I2C, respectivamente), que permitem adicionar quatro portas I/O de 8 bits, ou seja , 32 “pernas” adicionais.

Equipamento

O módulo Expander Shield é fornecido na versão SPI ou I2C montada (com chips associados), ou como kit sem chips, que pode ser adquirido separadamente.

Os terminais do módulo podem ser equipados com travas de transporte, que devem ser removidas antes de iniciar o trabalho.

Escudo expansor SPI 1100 esfregar.

850 esfregar.

Adicionar ao carrinho

formulário de pedido.

ExpanderShield para barramento SPI (com chips MCP23S17). Escudo expansor I2C 1100 esfregar. 850 esfregar.

Adicionar ao carrinho

Atenção! Você tem o JavaScript desativado.

Operação normal sistemas de pedidos e carrinhos de compras não são possíveis. Se por algum motivo você não conseguir ativar o JavaScript, simplesmente liste os itens que você está solicitando no formulário de pedido. ExpanderShield para barramento I2C (com chips MCP23017).

  • Especificações Aqui estão os mais importantes recursos funcionais
  • Módulo Expansor Shield.
  • interruptor conveniente do modo de operação do módulo, dependendo do tipo instalado em
  • no momento
  • chips expansores de porta;
  • a capacidade de selecionar uma reinicialização de hardware separada ou conjunta (botão RESET) dos chips expansores de porta de E/S de 16 bits e do microcontrolador Freeduino/Arduino usando jumpers;
  • conector JPIC adicional com pinos de interrupção (INTA, INTB), reinicialização de hardware (RST) e seleção de chip (CS);

As demais características do módulo são determinadas principalmente pelas características dos microcircuitos MCP23S17/MCP23017, cuja descrição técnica está disponível na documentação do fabricante.

Além disso, antes de começar a trabalhar com o módulo Expander Shield adicional, recomendamos que você se familiarize com seu diagrama de circuitos.

Modos de operação

O modo de operação Expander Shield é selecionado usando uma chave DIP e jumpers.

Seleção de interface e controle de pull-up do barramento I2C

Usando uma chave DIP, você seleciona o modo SPI (ativando o grupo de contato 1-4) para microcircuitos MCP23S17 ou o modo I2C (ativando o grupo de contato 5-6) para microcircuitos MCP23017. Além disso, no modo I2C, usando os pinos 7 e 8, se necessário, o barramento I2C é puxado através de resistores limitadores de corrente para o barramento de alimentação de +5V. Normalmente, os resistores pull-up devem ser conectados se houver apenas um dispositivo no barramento I2C. Se houver vários dispositivos, os resistores serão conectados apenas para um dos dispositivos.

Ativação simultânea do barramento SPI e I2C, bem como do barramento SPI e grupo de 7, 8 pinos não permitido.

Modo de operação combinado, quando um dos dois chips em um módulo Expander Shield opera de acordo com Interface SPI(MCP23S17), e o outro via interface I2C (MCP23017) não é possível.

Se você precisar organizar o trabalho simultaneamente por meio de interfaces SPI e I2C, deverá usar dois (vários) módulos Expander Shield adicionais com as posições de chave correspondentes.

Selecionando o número do pino para controlar o sinal CS do barramento SPI

Para o barramento SPI, você precisa selecionar o pino do microcontrolador Freeduino/Arduino usado como sinal CS. Normalmente, é usado o pino 10, que corresponde à posição do jumper mais à esquerda no conector SS1. Movendo o jumper para uma das outras duas posições é possível selecionar os pinos 9 e 8, respectivamente.

Selecionando o endereço dos microcircuitos no barramento

Os três bits mais baixos do endereço dos microcircuitos MCP23S17/MCP23017 são selecionados usando jumpers nos conectores IC1_addr/IC2_addr puxando os bits 0, 1, 2 para o terra (Gnd) ou +5V (5V).

O endereço de cada chip deve ser único.

Assim, até 8 microcircuitos podem ser colocados em um barramento (combinando, por exemplo, 4 Expander Shields).

Selecionando o modo de operação de reinicialização de hardware (botão RESET)

É possível organizar um dos vários modos de operação do botão RESET

  • O botão RESET redefine os chips Freeduino/Arduino e MCP23S17/MCP23017
  • O botão RESET apenas redefine o Freeduino/Arduino
  • O botão RESET redefine apenas os chips MCP23S17/MCP23017

As posições correspondentes dos jumpers no conector JRS (da esquerda para a direita) são mostradas abaixo.

Biblioteca MCP23xxx

Para simplificar o trabalho com este e vários outros módulos, foi desenvolvida a biblioteca MCP23xxx, que fornece uma interface simples para a funcionalidade dos microcircuitos da série MCP23xxx. A biblioteca está disponível para download gratuito: A biblioteca é compatível com o software Arduino versão 1.0.5 (compatibilidade com versões posteriores também é esperada).

Na verdade, este é um conjunto de duas bibliotecas: MCP23xxx e LiquidCrystal_MCP23x17.

A instalação de bibliotecas é descrita com mais detalhes na seção conectando bibliotecas. A estrutura de diretórios da pasta de bibliotecas após a instalação deve ser assim:

/bibliotecas/LiquidCrystal_MCP23x17
/bibliotecas/MCP23xxx

A biblioteca MCP23xxx implementa modelos de classe que organizam o trabalho com os expansores de porta MCP23017, MCP23S17, MCP23008 e MCP23S08. A biblioteca LiquidCrystal_MCP23x17 é uma biblioteca modificada biblioteca padrão LiquidCrystal, que suporta o idioma russo e funciona através de um expansor de porta.

A biblioteca vem com exemplos que explicam como trabalhar com ela. A versão anterior da biblioteca também está disponível para download:

Vejamos um exemplo de trabalho com um módulo para o barramento I2C:

//No exemplo, é lido o estado dos pinos do 1º chip, e os mesmos valores são definidos no 2º

//Para a versão I2C, conecte Wire.h:
#incluir
//conecta a biblioteca
#incluir

//Cria dois objetos da classe CMCP23017, mas não os inicializa, pois O barramento I2C não está pronto
CMCP23017 mcp23_1;
CMCP23017 mcp23_2;

configuração nula()
{
//Inicializa o barramento I2C...
Wire.begin();
//... e objetos MCP23* com endereços 0 e 1
mcp23_1.init(0);
mcp23_2.init(1);

//Todos os pinos do 1º chip devem ser entradas, e o 2º - saídas
//Isso pode ser feito em um loop
para (int eu= 0; eu< 16 ; i++ ) {
mcp23_1.pinMode (i, ENTRADA);
mcp23_2.pinMode (i, SAÍDA);
}
//ou de uma só vez, chamando o método pinMode16
//mcp23_1.pinMode16(0x0ffff);
//mcp23_2.pinMode16(0x00000);
}

loop vazio()
{
//Você pode ler todas as entradas do 1º chip e definir as mesmas no 2º em um loop
para (int eu= 0; eu< 16 ; i++ ) {
mcp23_2.digitalWrite (i, mcp23_1.digitalRead (i) );
}
//ou por vez, usando os métodos digitalRead16 e digitalWrite16
//mcp23_2.digitalWrite16(mcp23_1.digitalRead16());
}

Novos artigos

● 5.4. Expansão de porta digital para NodeMCU ESP8266 usando chip MCP23017

Apresentaremos a indicação LED e o alarme sonoro ao usar o módulo Nodemcu como um controlador doméstico inteligente. O número de pinos no módulo Nodemcu é muito menor que no Arduino Mega, então precisaremos de um chip expansor de entrada MCP23017. O chip MCP23017 adiciona 16 portas, que podem ser configuradas tanto como entrada quanto como saída (Fig. 5.7). O chip usa o popular barramento I2C de dois fios.

Arroz. 5.7. Pinagens do chip MCP23017

O endereço do microcircuito MCP23017 para o protocolo I2C pode ser definido por uma combinação de sinais nas entradas digitais A0 - A2 (Fig. 5.8), o que permite conectar simultaneamente 8 microcircuitos MCP23017 ao microcontrolador, respectivamente 16 * 8 = 128 contatos.

Arroz. 5.8. Configurando o endereço do chip MCP23017

O chip possui 2 bancos de portas A (GPA0-GPA7) e B (GPB0-GPAB), cada uma das quais pode ser configurada para entrada ou saída.
Na listagem 5.3. Um exemplo de configuração dos bancos de pinos A e B é mostrado.

Listagem 5.3

//conectando a biblioteca Wire.h #incluir entrada de bytes = 0; configuração nula()( Serial.begin(9600 ); Wire.begin(0 ,2 ); // inicia I2C Wire.beginTransmission(0x20 ); //i2c - endereço (A0-0,A1-0,A2-0) Wire.write(0x00); // registro IODIRA Wire.write(0x00 ); //define a PORTA A como saída Wire.endTransmission(); ) loop vazio(){ //lê dados da PORTA B Wire.beginTransmission(0x20); Wire.write(0x13); Wire.endTransmission();

Wire.requestFrom(0x20, 1);

input=Wire.read();

// escreve os dados recebidos na PORTA A Wire.beginTransmission(0x20);. (TODO: insira um link para o artigo sobre o testador SD quando estiver pronto). Como resultado, meu dispositivo para testar motores de passo revelou-se bastante complexo - um display 1602 de duas linhas com um sistema de menu controlado por um teclado 4x4 totalmente funcional, 3 dígitos digitais para definir o valor de micropasso do motor de passo, Passo e sinais Dir para o motor de passo, etc. Parece que é hora de migrar para outra versão do Arduino. Mas a minha preguiça natural opôs-se a esta migração. E a cabeça preguiçosa começou a procurar uma solução.

Decidiu-se procurar uma solução com base no que já existe. Enquanto separava lenços e peças dos kits, notei um “besouro” preto de 16 pinos. Primeiro em um conjunto, depois em outro. Resolvi perguntar que tipo de peça era essa e por que foi adicionada aos sets. Não entendo por que o colocaram em kits, mas encontrei o chip no site da NXP.

Descobriu-se que este é um microcircuito bastante interessante - um registrador de deslocamento com entrada serial e saída paralela.

(da folha de dados)

Descrição dos pinos

Contato Nome Descrição e conexão
10 ~MR Redefinição mestre- reset, nível ativo baixo. Idealmente, seria uma boa ideia fazer um circuito de reinicialização que primeiro alimentasse nível baixo para esta entrada e, em seguida, transfere-a para o estado da unidade. Mas você não precisa mexer e conectá-lo a +5V. Neste caso, a saída antes do primeiro registro conterá valores aleatórios
13 ~OE Habilitação de saída- resolução de saída, nível ativo baixo. Quando 0 é fornecido, o conteúdo do registro é fornecido às saídas; quando 1 é aplicado, as saídas são desligadas e transferidas para o estado Z, o que permite usar um barramento alternadamente; dispositivos diferentes. Conecte ao terra se não precisar controlar o estado das saídas
14 D.S. Entrada de dados seriais- entrada serial. Esta entrada deve ser definida para o valor do sinal de entrada antes que o relógio de deslocamento SHCP seja aplicado.
11 PCH Relógio de entrada do registrador de deslocamento- entrada de clock do registrador de deslocamento. Para mover um bit para um registro, uma transição de 0 para 1 deve ser aplicada. Quando retornar a 0 fica a seu critério. Você pode – imediatamente, você pode – pouco antes de se mudar. No primeiro caso, podemos assumir que a comutação ocorre ao longo da borda do sinal direto, no segundo - ao longo do declínio do sinal inverso. Veja também as notas de desempenho abaixo. Além disso, na chegada deste sinal, o valor da saída serial Q7/S muda
12 STCP Entrada de relógio do registro de armazenamento- entrada de clock do registrador latch. No limite deste pulso, o valor é transferido do registrador de deslocamento para as saídas paralelas Q0-Q7
9 Q7S Saída de dados seriais- saída serial. O valor do bit mais significativo do registrador de deslocamento é exibido nele. Esta saída pode ser usada para escalar o registrador de deslocamento para 16 bits, 24 bits, etc. esquemas
15, 1-7 Q0, Q1-7 Saídas de registro de trava. O sinal para eles é transferido do registrador de deslocamento interno na chegada do sinal STCP
8 GND Nutrição- fio comum
16 CCV Nutrição - +

Nutrição

A versão HC do microcircuito requer fonte de alimentação de 2V a 6V, a versão HCT (compatível com TTL) - de 4,5V a 5,5V. HCT - TTL - ainda é usado? O Arduino parece ser o próprio CMOS, então o HCT não é necessário, mas se você precisar coordenar os níveis com consumidores TTL externos, poderá alimentar o HC a partir de 3,3V, então os níveis de sinal serão compatíveis com o TTL. Em geral, tanto o HC quanto o HCT devem funcionar com um Arduino de 5 volts. Isto é o que eles escrevem na Internet.

O que é mais importante são os capacitores de bloqueio. Sem eles, o circuito pode não funcionar como pretendido e, além disso, pode ser imprevisível. Teoricamente, um capacitor de 0,1 µF deveria ser instalado no circuito de potência de cada gabinete. Calculei esse valor de capacidade como uma média da Internet. Meu esquema funcionou muito bem sem ele. Para esclarecer, fui à bíblia do designer de circuito para esclarecer - Hill e Horowitz, “The Art of Circuit Design” é quase como “The Art of Programming” de Donald Knutt, mas apenas para pessoas de hardware (a propósito, Hill e Horowitz estão muito mais próximos das pessoas, através de Knutt - ele está sendo muito inteligente) - mas lá eles parecem chamar capacitores de bloqueio de capacitores de desacoplamento nas entradas. É uma pena bom livro, mas ela já está muito atrasada. Tenho a segunda ou terceira edição russa do final dos anos 90 ou início dos anos 0, o original provavelmente ainda é 10 anos mais velho. No terceiro volume, rosa, encontrei um adesivo - “14 rublos” - como tudo era barato naquela época, para os padrões modernos. Mas apenas 15 anos ou um pouco mais se passaram. A nostalgia foi avassaladora.

Desempenho

No título da ficha técnica 74HC595 escrevem que ele opera a 100 MHz. Uma rápida olhada nos gráficos e tabelas da folha de dados mostra que os tempos mais longos na faixa de temperatura de -40C a +85C com uma fonte de alimentação de 4,5V são 10-20ns (100-50MHz). Com as frequências em que o Arduino opera, você não precisa saber mais nada. Só é possível que a biblioteca padrão digitalRead/digitalWrite seja um grande freio devido a várias verificações, e elas podem (e devem) ser reescritas como uma versão mais rápida. Tenho planos de me aprofundar nisso e escrever com mais detalhes, mas por enquanto não tenho uma necessidade específica.

Desempenho do Arduino Nano e Bibliotecas Arduino em termos de velocidade de comutação de saídas e processamento de entradas, de acordo com minhas observações, está em algum lugar no meio, de alguns quilohertz a dezenas de quilohertz. Portanto, na minha opinião, ao escrever o código para controlar o registrador de deslocamento 74HC595, não há necessidade de se preocupar com atrasos na configuração dos sinais de controle.

Outra coisa é que para um expansor serial de 8 bits, você deve dividir a frequência máxima de comutação de saída disponível no Arduino - definir DS, definir SHCP como 1, redefinir SHCP (para 0) - 8 vezes e definir/redefinir STCP. Total, resumidamente, 3 * 8 + 2 = 26 operações digitalWrite. No total, é cerca de 25 vezes mais lento do que o próprio Arduino pode fazer.

Ao escalar para 16, 24 ou 32 saídas, a desaceleração será de aproximadamente 3*16 + 2 = 50, 3*24 + 2 = 74 e 3*32 + 2 = 98 vezes, respectivamente.

Obviamente, esse expansor de registro de deslocamento 74HC595 não é adequado para controlar algo realmente rápido, mas em algumas aplicações é bastante adequado para configurar sinais estáticos que raramente mudam. Então, por exemplo, usei esse expansor para definir o modo microstep de 3 bits para definir o modo microstep para o driver do motor de passo DRV8825 em um testador para motores de passo. A propósito, isso ainda não foi particularmente útil para mim - os steppers das impressoras matriciais funcionam terrivelmente no modo microstepping, pelo menos sob o controle do driver DRV8825 - por exemplo, no modo microstepping 1/2 metade do passo é de alguma forma lento e inseguro, apenas a segunda metade é otimista e poderosa. Portanto, ao utilizar um microstep, ao menor esforço no eixo do motor de passo, ele começou a pular os primeiros meios passos. De alguma forma, depois disso, não explorei os modos de micropasso restantes nos SDs de impressora existentes.

Dimensionamento

O expansor de saída Arduino baseado no 74HC595 pode ser simplesmente convertido da versão de 8 bits em um circuito de qualquer capacidade. Para isso, a saída serial do registro baixo Q7S deve ser conectada à entrada DS do registro superior, e as linhas SHCP e STCP devem ser conectadas em paralelo. Bem, e, dependendo do projeto de circuito adotado e solução de software, você precisa escolher como conectar as linhas ~MR e ~OE.

Expansão de entrada

Estender linhas de entrada para Arduino é, em princípio, semelhante a estender saída, levando em consideração o fato de que você não precisa definir o valor DS na saída, mas lê-lo na entrada e usar um chip do tipo 74HC597. No entanto, ainda não testei isso na prática.

Multiplexação

Você pode aumentar o número de linhas de saída controladas pelo Arduino de duas maneiras: 1) aumentar a capacidade de bits de uma saída serial, que, ao aumentar a capacidade de bits em duas, três ou quatro vezes, reduz correspondentemente a velocidade do expansor em dois , três ou quatro vezes; 2) conexão paralela de vários expansores, utilizando uma saída adicional para cada expansor, o que pode manter o desempenho em um nível aceitável, mas requer o uso de pelo menos uma saída Arduino para cada expansor.

Se você não controlar diretamente os sinais de registro 74HC595 - ~MR, ~OE com Arduino, então apenas três saídas do Arduino serão suficientes para controlar os sinais de registro de deslocamento DS, SHCP e STCP para transformá-los em 8 ou 16 ou mais sinais de saída usando o chip 74HC595.

Para multiplexar vários expansores baseados no 74HC595, você pode seguir dois caminhos: 1) para cada expansor de sinal, selecione um sinal de trava separado - ou seja, todos os registros no barramento mudam os dados recebidos em paralelo e, consequentemente, mudam os valores nas saídas do registrador de deslocamento interno, mas apenas um transmite o valor do registrador de deslocamento interno para as saídas do microcircuito; 2) os sinais de deslocamento são transmitidos apenas para um dos expansores, e a transferência dos valores dos sinais para a saída ocorre simultaneamente para todos os módulos de expansão.

Estou mais inclinado a usar a opção quando os registradores de deslocamento internos podem conter o que você quiser (opção 1), e alguns dos valores anteriores são fixados na saída, e aqui está o porquê: ao transferir valores do deslocamento interno registro para a saída, podem ocorrer transições não controladas de 0 para 1 e vice-versa, algum tipo de salto de sinal, mesmo que o valor inicial no registro interno e na saída seja o mesmo. E, na minha opinião, a operação de transferência do estado do registrador de deslocamento interno para as saídas do 74HC595 deve ser utilizada o mínimo possível.

Suporte de software

O suporte de software para esta e extensões semelhantes consiste em não acessar dispositivos diretamente através de pinos específicos usando o digitalRead/digitalWrite do controlador Arduino utilizado, mas através dos pinos de um dispositivo de E/S abstrato, que, por sua vez, pode ser inicializado como vinculado a um tipo específico de Arduino e para outro dispositivo abstrato semelhante.

Uma das principais vantagens da plataforma Arduino é a sua popularidade. A popular plataforma é ativamente apoiada pelos fabricantes dispositivos eletrônicos, produzindo versões especiais de diversas placas que ampliam a funcionalidade básica do controlador. Essas placas, logicamente chamadas de placas de expansão (outro nome: escudo arduino, escudo), são usadas para executar uma ampla variedade de tarefas e podem simplificar significativamente a vida de um operador arduino. Neste artigo, aprenderemos o que é uma placa de expansão Arduino e como ela pode ser usada para trabalhar com uma variedade de Dispositivos Arduino: motores (blindagens do driver do motor), telas LCD (blindagens LCD), cartões SD (registro de dados), sensores (blindagem do sensor) e muitos outros.

Vamos primeiro entender os termos. Uma placa de expansão Arduino é um dispositivo completo projetado para executar determinadas funções e é conectado ao controlador principal por meio de conectores padrão. Outro nome popular para placa de expansão é em inglês Escudo Arduino ou apenas escudo. A placa de expansão contém todos os recursos necessários componentes eletrônicos, e a interação com o microcontrolador e demais elementos da placa principal ocorre por meio de pinos padrão do Arduino. Na maioria das vezes, a energia para o escudo também é fornecida pela placa Arduino principal, embora em muitos casos seja possível alimentá-lo de outras fontes. Qualquer blindagem possui vários pinos livres que você pode usar a seu critério, conectando quaisquer outros componentes a eles.

A palavra inglesa Shield é traduzida como escudo, tela, tela. No nosso contexto, deve ser entendido como algo que cobre a placa controladora, criando uma camada adicional do dispositivo, uma tela atrás da qual vários elementos ficam ocultos.

Por que precisamos de escudos Arduino?

Tudo é muito simples: 1) para que economizemos tempo e 2) alguém possa ganhar dinheiro com isso. Por que perder tempo projetando, colocando, soldando e depurando algo que você pode pegar já montado e começar a usar imediatamente? Placas de expansão bem projetadas e montadas em equipamentos de alta qualidade costumam ser mais confiáveis ​​e ocupam menos espaço no dispositivo final. Isso não significa que você precise abandonar completamente automontagem e você não precisa entender o princípio de funcionamento de certos elementos. Afinal, um verdadeiro engenheiro sempre tenta entender como funciona o que ele usa. Mas seremos capazes de fabricar dispositivos mais complexos se não reinventarmos a roda todas as vezes, mas focarmos nossa atenção naquilo que poucas pessoas resolveram antes.

Naturalmente, você tem que pagar pelas oportunidades. Quase sempre, o custo da blindagem final será superior ao preço dos componentes individuais; você sempre pode baratear uma opção semelhante; Mas aqui cabe a você decidir o quão crítico é o tempo ou o dinheiro gasto para você. Levando em consideração toda a assistência possível da indústria chinesa, o custo das placas está diminuindo constantemente, por isso na maioria das vezes a escolha é feita pelo uso dispositivos prontos.

Os exemplos mais populares de blindagens são placas de expansão para trabalhar com sensores, motores, telas LCD, cartões SD, blindagens de rede e GPS, blindagens com relés integrados para conexão à carga.

Conectando escudos Arduino

Para conectar a blindagem, basta “colocá-la” com cuidado na placa principal. Normalmente, os contatos da blindagem tipo pente (macho) são facilmente inseridos nos conectores da placa Arduino. Em alguns casos, é necessário ajustar cuidadosamente os pinos se a própria placa não estiver devidamente soldada. O principal aqui é agir com cautela e não usar força excessiva.

Como regra geral, um escudo destina-se a ser completamente versão específica controlador, embora, por exemplo, muitos escudos para Arduino Uno funcionem muito bem com placas Arduino Mega. A pinagem do mega é feita de forma que os primeiros 14 pinos digitais e os pinos do lado oposto da placa coincidam com a pinagem do UNO, para que um escudo do Arduino possa ser facilmente inserido nele.

Programação Arduino Shield

Programar um circuito com uma placa de expansão não é diferente da programação normal do Arduino, porque do ponto de vista do controlador, simplesmente conectamos nossos dispositivos aos seus pinos regulares. No esboço você precisa indicar os pinos que estão conectados na blindagem aos contatos correspondentes na placa. Via de regra, o fabricante indica a correspondência dos pinos na própria blindagem ou em instruções de conexão separadas. Se você baixar os esboços recomendados pelo próprio fabricante da placa, nem precisará fazer isso.

A leitura ou gravação de sinais de escudo também é feita da maneira usual: usando as funções e outros comandos familiares a qualquer usuário do Arduino. Em alguns casos, as colisões são possíveis quando você está acostumado com um determinado esquema de conexão e o fabricante escolheu outro (por exemplo, você puxou o botão para o solo e a blindagem para a fonte de alimentação). Aqui você só precisa ter cuidado.

Via de regra, esta placa de expansão vem em kits Arduino e, portanto, é com ela que os engenheiros Arduino a encontram com mais frequência. O escudo é bastante simples - sua principal tarefa é fornecer opções mais convenientes para conectar-se a Placa Arduino. Isto é feito através conectores adicionais potência e saída de terra para a placa para cada um dos pinos analógicos e digitais. Também na placa você pode encontrar conectores para conectar fonte externa energia (você precisa instalar jumpers para alternar), LED e botão de reinicialização. Opções de blindagem e exemplos de uso podem ser encontrados nas ilustrações.




Existem várias versões da placa de expansão de toque. Todos eles diferem no número e tipo de conectores. As versões mais populares hoje são Sensor Shield v4 e v5.

Este escudo Arduino é muito importante em projetos robóticos, porque... permite que você conecte motores regulares e servo à placa Arduino de uma só vez. A principal tarefa do escudo é fornecer controle de dispositivos que consomem uma corrente alta o suficiente para uma placa Arduino normal. Recursos adicionais A placa tem a função de controlar a potência do motor (usando PWM) e alterar o sentido de rotação. Existem muitos tipos de placas de blindagem de motor. O que há de comum a todos eles é a presença no esquema transistor poderoso, através do qual a carga externa é conectada, elementos dissipadores de calor (geralmente um radiador), circuitos para conexão fonte de alimentação externa, conectores para conectar motores e pinos para conectar ao Arduino.



A organização do trabalho com a rede é uma das tarefas mais importantes nos projetos modernos. Para se conectar a rede local via Ethernet existe uma placa de expansão correspondente.




Placas de expansão para prototipagem

Essas placas são bastante simples - possuem blocos de contato para montagem de elementos, um botão de reinicialização e a capacidade de conectar alimentação externa. O objetivo dessas blindagens é aumentar a compactação do dispositivo, quando todos os componentes necessários estão localizados imediatamente acima da placa principal.





Escudo LCD Arduino e escudo tft

Este tipo de escudo é usado para trabalhar com telas LCD no Arduino. Como você sabe, conectar até mesmo a tela de texto mais simples de 2 linhas está longe de ser uma tarefa trivial: você precisa conectar corretamente 6 contatos da tela ao mesmo tempo, sem contar a fonte de alimentação. Muito mais fácil de inserir módulo pronto na placa Arduino e simplesmente carregue o esboço correspondente. No popular LCD Keypad Shield, de 4 a 8 botões são instalados imediatamente na placa, o que permite organizar imediatamente uma interface externa para o usuário do dispositivo. O TFT Shield também ajuda



Escudo do registrador de dados Arduino

Outra tarefa bastante difícil de implementar de forma independente em seus produtos é salvar os dados recebidos dos sensores com referência de tempo. A blindagem acabada permite não apenas salvar dados e obter a hora do relógio embutido, mas também conectar sensores de uma forma conveniente por meio de soldagem ou em uma placa de circuito.




Breve resumo

Neste artigo, examinamos apenas uma pequena parte da enorme variedade de vários dispositivos que expandem a funcionalidade do Arduino. Os cartões de expansão permitem que você se concentre no mais importante: a lógica do seu programa. Os criadores das blindagens forneceram uma instalação correta e confiável e a fonte de alimentação necessária. Tudo que você precisa fazer é encontrar a taxa exigida, usando o precioso escudo de palavras em inglês, conecte-o ao Arduino e carregue o esboço. Normalmente, qualquer programação de escudo consiste em realizar ações simples para renomear as variáveis ​​internas de um programa pronto. Como resultado, obtemos facilidade de uso e conexão, bem como rapidez na montagem de dispositivos acabados ou protótipos.

A desvantagem do uso de placas de expansão é o custo e possível perda de eficiência devido à universalidade dos escudos, que está em sua natureza. Para sua tarefa restrita ou dispositivo final, todas as funções de blindagem podem não ser necessárias. Neste caso, você deve utilizar o shield apenas na fase de prototipagem e teste, e ao criar a versão final do seu dispositivo, pense em substituí-lo por um design com circuito e tipo de layout próprios. Cabe a você decidir, todas as possibilidades para a escolha certa você tem.