sábado, 12 de novembro de 2016

Botões com múltiplas funções e trava - Arduino + 123D Circuits

Botões com múltiplas funções e trava

Nesse artigo vai ser apresentado uma aplicação onde explora um pouco mais a aplicação de entradas e saídas digitais do Arduino. Também vai ser apresentado uma nova ferramenta que ajuda muito o usuário durante a elaboração de um circuito, o 123D circuits da empresa Autodesk.



fonte: http://www.123dapp.com/circuits

Circuits.io

Pensando no desenvolvedores de projetos voltados especificamente para as áreas de automação e eletrônica, o 123D circuits é um software em nuvem, que permite que o usuário construa circuitos e simulem ensaios on-line na plataforma open source do Arduino.
Outro recurso que o software dispõe é a opção do usuário imprimir o circuito criado para uma impressora 3D a partir do app que a ferramenta já trás. E as vantagens não param por aí, o serviço é acessível a todos, o uso é gratuito, onde o usuário que ainda não tem uma conta no site da Autodesk, deve cadastrar-se e usufruir, tendo acesso a diversos componentes, chips além do Arduino.

Acessando o site da Autodesk, 123D circuits o usuário encontra uma plataforma de desenho semelhante ao ambiente do Fritzing, que é o mais utilizado para representar as ligações em um circuito eletrônico.


fonte: próprio autor

Criando uma aplicação com 123D Circuits

Vou fazer como demonstração um circuito simples com um código onde usarei dois botões que vão ser atribuídos mais de uma função à eles, teremos um botão para acionar ligação em diversos leds em sequência e outro botão para desligá-los também sequencialmente. Depois de simulado vou comparar a fidelidade da simulação com a situação prática do circuito.
Com todos os componentes selecionados a montagem do circuito deve ficar como o esquema demonstrado na figura abaixo.


fonte: próprio autor

Para essa montagem é necessário ter em mãos:
1 Arduino ou compatível;
1 protoboard
2 capacitores 1uF eletrolítico
2 chaves tipo push button
2 resistores 1kohm
6 resistores 220 ohm 
6 Leds de cores variadas
fios jumpers

Código fonte

Copie e cole o código fonte usado como exemplo que se encontra abaixo para verificar o funcionamento, consiste em uma sequência de leds sendo acionado um por vez em uma ordem "crescente" e depois sendo possível o desligamento obedecendo uma ordem "decrescente".



fonte: próprio autor

//** Elaborado por Tony Emerson Marim em 11/11/2016.
/** mecatronizei@gmail.com **/
/** Botão com multiplas funções */


void setup()
{
 pinMode(13, OUTPUT);
 pinMode(7, OUTPUT);
 pinMode(14, OUTPUT);
 pinMode(15, OUTPUT);
 pinMode(16, OUTPUT);
 pinMode(17, OUTPUT);
 digitalWrite(13, LOW);
 digitalWrite(7, LOW);
 digitalWrite(14,LOW);
 digitalWrite(15, LOW);
 digitalWrite(16, LOW);
 digitalWrite(17,LOW);
 
 pinMode(2, INPUT);
 pinMode(3, INPUT);
 
  
}

char cont = 0;
boolean flagb1 = 0, flagb2 = 0; 

void loop()
{
  boolean botao1 = digitalRead(2);
  boolean botao2 = digitalRead(3);
 
 if( (botao1 == 1) && (flagb1 == 0))
 {
   flagb1 = 1; 
 }
 
 if( (botao1 == 0) && (flagb1 == 1))
 {
   flagb1 = 0; 
   cont++;
 }
 
 if( (botao2 == 0) && (flagb2 == 0))
 {
  flagb2 = 1; 
 }
 
  if( (botao2 == 1) && (flagb2 == 1))
 {
  flagb2 = 0;
  cont--; 
 }
 
 if(cont > 6) cont = 6;
 if(cont < 0) cont = 0;
    
 leds(cont);
  
 delay(10);   
}

void leds(byte ledsCont)
{
 switch(ledsCont)
{
 case 0:
   digitalWrite(13, LOW);
   digitalWrite(7, LOW);
   digitalWrite(14,LOW);
   digitalWrite(15, LOW);
   digitalWrite(16, LOW);
   digitalWrite(17,LOW);
 break;
 case 1:
   digitalWrite(13, HIGH);
   digitalWrite(7, LOW);
   digitalWrite(14,LOW);
   digitalWrite(15, LOW);
   digitalWrite(16, LOW);
   digitalWrite(17,LOW);
 break;
 case 2:
   digitalWrite(13, HIGH);
   digitalWrite(7, HIGH);
   digitalWrite(14,LOW);
   digitalWrite(15, LOW);
   digitalWrite(16, LOW);
   digitalWrite(17,LOW);
 break;
 case 3:
   digitalWrite(13, HIGH);
   digitalWrite(7, HIGH);
   digitalWrite(14,HIGH);
   digitalWrite(15, LOW);
   digitalWrite(16, LOW);
   digitalWrite(17,LOW);
 break;
 case 4:
   digitalWrite(13, HIGH);
   digitalWrite(7, HIGH);
   digitalWrite(14,HIGH);
   digitalWrite(15, HIGH);
   digitalWrite(16, LOW);
   digitalWrite(17,LOW);
 break;
 case 5:
   digitalWrite(13, HIGH);
   digitalWrite(7, HIGH);
   digitalWrite(14,HIGH);
   digitalWrite(15, HIGH);
   digitalWrite(16, HIGH);
   digitalWrite(17,LOW);
 break;
 case 6:
   digitalWrite(13, HIGH);
   digitalWrite(7, HIGH);
   digitalWrite(14,HIGH);
   digitalWrite(15, HIGH);
   digitalWrite(16, HIGH);
   digitalWrite(17,HIGH);
 break;
}
 
}

Diferente da maioria dos softwares de simulação com a plataforma Arduino, o 123D circuits trabalha com o código escrito pelo usuário, utilizando as bibliotecas, sendo possível escrevê-los além da conhecida IDE do Arduino, então não há a necessidade do usuários localizar a pasta onde foi gerado o arquivo . HEX e importá-lo.


fonte: próprio autor

No vídeo que segue é possível ver o funcionamento simulado e o projeto montado, demonstrando a fidelidade do software.



Curtiu? Increva-se na nossa FanPage e Compartilhe!
Inscreva-se no nosso canal!

Baixe o projeto completo nesse Link!

Bons estudos!




Nenhum comentário:

Postar um comentário