Shield Arduino Multifunções Nível Intermediário

Projetos com o Shield Arduino Multifunções Nível Intermediário 4

Shield Arduino Multifunções Nível Intermediário é um shield que conecta diretamente com o Arduino Uno ou com o Arduino Mega e já possui diversas entradas e saídas possíveis. Utilizando as bibliotecas próprias para o shield, é possível utilizar essas entradas e saídas facilmente sem a necessidade de saber em qual pino está cada uma dessas entradas e saídas.

Itens no Shield Arduino Multifunções Nível Intermediário

O shield conta com display 7 segmentos de 4 dígitos , potenciômetro, botões, buzzer, saídas para sensores de temperatura LM35 e DS18B20, conector para módulo APC220, wireless, bluetooth e outros. Para auxiliar a programação, existe uma biblioteca própria do shield Arduino multifunções nível intermediário, a <MultiFuncShield.h>. Nessa biblioteca contém diversas funções prontas que facilitam o uso das funcionalidades do shield. Junto com a biblioteca também vêm alguns exemplos de como utilizar as funções.

A montagem do shield é bastante simples, tanto no Arduino Uno quanto no Arduino Mega. O único cuidado que se deve tomar é com o conector USB da placa, ela pode entrar em contato com os pinos do shield causando alguns efeitos indesejados. Para evitar esse contato, basta colocar uma fita (de preferência isolante) em cima do conector USB.

Exemplos

A seguir, vamos apresentar alguns projetos que utilizam funções básicas da biblioteca própria do shield.

Beep

A função MFS.beep(); é uma forma de utilizar o buzzer que existe na biblioteca. A função recebe diversos parâmetros que definem a duração do som e o padrão feito.  O exemplo a seguir foi retirado dos exemplos da própria biblioteca.

//Programa : Demonstracao do buzzer no Shield multifuncoes
//Autor : MakerHero 
// Adaptado do exemplo da biblioteca <MultiFuncShield.h>
#include <TimerOne.h>
#include <Wire.h>
#include <MultiFuncShield.h>

void setup() {
  // Esse trecho de codigo so ira rodar uma vez
  Timer1.initialize();
  MFS.initialize(&Timer1);     // Inicializa a biblioteca do shield multifuncoes
  
  // A funcao "beep()" e feita em segundo plano e o arduino pode realizar outras tarefas enquanto roda
  
  
  // 4 bips curtos, repetindo 3 vezes
  MFS.beep(5,    // O bip dura 50 milisegundos
           5,    // Fica em silencio por mais 50 milisegundos
           4,    // Repetir o padrao definido acima por 4 vezes
           3,    // Repetir 4 vezes (Loop)
           50    // Delay de 500 milisegundos entre loops
           );
}

void loop() {

}

LEDs

Para utilizar os LEDs no Shield Arduino Multifunções Nível Intermediário a própria biblioteca fornece algumas funções como MFS.writeLeds, que acende e apaga os LEDs e MFS.blinkLeds, que faz os LEDs piscarem. O exemplo a seguir foi retirado dos exemplos da própria biblioteca.

//Programa : Demonstracao dos LEDs no Shield multifuncoes
//Autor : MakerHero 
// Adaptado do exemplo da biblioteca <MultiFuncShield.h>

#include <TimerOne.h>
#include <Wire.h>
#include <MultiFuncShield.h>

void setup() {  
  Timer1.initialize();
  MFS.initialize(&Timer1);    // Inicializa a biblioteca do shield multifuncoes
  
  MFS.writeLeds(LED_ALL, ON); // Acende todos os LEDs
  delay(2000);
  
  MFS.blinkLeds(LED_1 | LED_2, ON); // Pisca o LED1 e o LED2
  delay(2000);
  MFS.blinkLeds(LED_1 | LED_2, OFF); // Para de piscar
  
  MFS.blinkLeds(LED_3 | LED_4, ON); // Pisca o LED1 e o LED2
  delay(2000);
  MFS.blinkLeds(LED_3 | LED_4, OFF);// Para de piscar
  delay(2000);
  
  MFS.blinkLeds(LED_ALL, ON);// Pisca todos os LEDs
  delay(2000);
  MFS.blinkLeds(LED_ALL, OFF); // Para de piscar

  delay(2000);
  MFS.writeLeds(LED_ALL, OFF); // Desliga todos os LEDs
  
}

void loop() {
}

Display de 7-segmentos

Para utilizar os LEDs no Shield Arduino Multifunções Nível Intermediário a própria biblioteca fornece algumas funções como MFS.write(), que permite apresentar números e até mesmo algumas letras nos 4 dígitos. Neste programa, retirado da biblioteca, alguns números são apresentados enquanto piscam os dígitos.

//Programa : Demonstracao do display de 7-segmentos no shield multifuncoes
//Autor : MakerHero
// Adaptado do exemplo da biblioteca <MultiFuncShield.h>


#include <TimerOne.h>
#include <Wire.h>
#include <MultiFuncShield.h>

void setup() {
  // put your setup code here, to run once:
  
  Timer1.initialize();
  MFS.initialize(&Timer1);    // initialize multi-function shield library
  
  MFS.write("ola"); // E possivel escrever algumas letras
  delay(2000);
  MFS.write(-123); // Pode-se escrever numeros de ate 4 digitos, ou 3 se tiver o sinal negativo
  delay(2000);
  
  MFS.blinkDisplay(DIGIT_1, ON); // Tambem e possivel piscar os digitos
  delay(500);
  MFS.blinkDisplay(DIGIT_2, ON);
  delay(500);
  MFS.blinkDisplay(DIGIT_1, OFF);
  delay(500);
  MFS.blinkDisplay(DIGIT_3, ON);
  delay(500);
  
  MFS.write(3.1415, 2);  // E escrever numeros com virgula. O 2 define o numero de casas depois da virgula
  delay(200);
  
  MFS.blinkDisplay(DIGIT_2, OFF);
  delay(500);
  MFS.blinkDisplay(DIGIT_4, ON);
  delay(500);
  MFS.blinkDisplay(DIGIT_3, OFF);
  delay(500);
  MFS.blinkDisplay(DIGIT_ALL, ON);
  delay(3000);
  MFS.blinkDisplay(DIGIT_ALL, OFF);


}

int contador=0; // definimos contador
boolean fim = false; // e um booleano para parar

void loop() {

  if (contador < 9999)
  {
    MFS.write((int)contador); // Escreve variavel no display
    contador++;
  }
  else if (!fim)
  {
    fim = true; 
    MFS.write("cabo"); // Acabou a contagem
    MFS.blinkDisplay(DIGIT_ALL, ON);
  }
  delay(5);
}

Contador com botões

Para finalizar, este projeto utiliza o display de 7-segmentos e os botões para fazer um contador. O Botão 3 aumenta em 1 o valor do contador, o Botão 2, em 10 enquanto o Botão 1 diminui em 1 o valor do contador. O display de 7 segmentos apresenta o valor do contador a todo momento. Quando quiser zerar o contador, basta apertar o botão de Reset.

//Programa : Contador utilizando botoes no shieldmultifuncoes
//Autor : MakerHero

#include <TimerOne.h>
#include <Wire.h>
#include <MultiFuncShield.h>

void setup() { Timer1.initialize();
  MFS.initialize(&Timer1);    // inicializa a biblioteca
}
int valor = 0; // Valor do contador

void loop() {
  
  
  byte botao = MFS.getButton(); // Recebe o Byte da função MFS.getButton();
  
  if(botao){ // Se for pressionado algum botao
    
    if(botao == BUTTON_1_PRESSED ){ // Se o botao pressionado for o 1, diminui em 1 o valor
      valor = valor -1;
    }
    else if(botao == BUTTON_2_PRESSED ){ // Se o botao pressionado for o 2, aumenta 10 no valor
      valor = valor + 10;
    }
    else if(botao == BUTTON_3_PRESSED ){ // Se o botao pressionado for o 3, aumenta em 1 o valor
      valor = valor + 1;
    }
  
  }
  MFS.write((int) valor); // Mostra os valores no display de 7 segmentos, independentemente do botao apertado
}

Projeto com Shield Arduino Multifunções Nível Intermediário

Existem diversos exemplos com todo tipo de função na própria biblioteca, se tiver com dúvidas de como se usa alguma funcionalidade.

Gostou de ver projetos utilizando o Shield Arduino Multifunções Nível Intermediário? Ajude-nos a melhorar o blog comentando abaixo sobre este tutorial.

Faça seu comentário

Acesse sua conta e participe

4 Comentários

  1. Qual a placa arduíno recomendada para trabalhar com este shield?

  2. Olá, tenho uma pequena duvida, eu montei um contador regressivo ou progressivo, com um SENSOR DE OBSTÁCULOS REFLEXIVO INFRAVERMELHO, a duvida é, como faço para travar a contagem em um determinado valor, como por exemplo, na contagem regressiva, o contador parar no 0 e na progressiva parar no 30?

    WELLINGTON DOS SANTOS SILVA
  3. André, legal! Parabéns e obrigado. Os Códigos para testes e exemplos funcionaram direitinho. Foi um grande adianto. Vlw!

    1. Olá,

      É muito bom saber que nosso trabalho pode te ajudar!

      Abraço!
      Rosana – Equipe MakerHero