Ir ao conteúdo
  • Cadastre-se

Ligar e desligar um botão externo pelo PC


rafagets

Posts recomendados

Olá!

 

Sou programador e não entendo quase nada de eletrônica. Mas tenho que resolver o seguinte problema.

 

Tenho um botão físico externo, onde pode ser on ou off. Ele é conectado ao módulo através de 2 fios.

 

Preciso de alguma maneira enviar o comando via software (Java) do PC para o botão.

 

Existe alguma placa que faça isso? É possível de alguma outra maneira?

 

Muito obrigado a quem me ajudar!

  • Confuso 1
Link para o comentário
Compartilhar em outros sites

Não entendi muito bem...

você quer ligar ou desligar o pc?

você quer ligar ou desligar um sistema externo?

você quer mexer um botão externo através do computador que tem objetivo qualquer como por exemplo ligar e desligar alguma coisa ou sistema externo? 

1 hora atrás, rafagets disse:

Ele é conectado ao módulo através de 2 fios

Que módulo? módulo do pc(placa de liga e desliga do pc) ou você comprou um módulo, se for qual o nome ou link da compra?

 

Dependendo da sua reposta tem várias formas de fazer isso...

 

Link para o comentário
Compartilhar em outros sites

Meio confuso, mas se quer controlar algo através do PC, se ele tiver a porta paralela fica bem simples, basta um driver para acionar o tal botão e um programa que acione esta porta (já tem pronto até). 

Se não tem precisa de um circuito adicional para ligar a porta USB. 

Pode ser um pic, um arduino ou algo pronto fabricado pelos chineses (esses caras fazem de tudo pra vender). 

Sobre o que é esse módulo que tem aí? 

O que o seu PC deve ligar? 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Me fez lembrar de ter saudade das velhas "portas" do pc que eram facim de controlar. P.ex. era só ir na janela do dos (ou quando era só dos) e digitar debug e o378,ff pra ligar 8 pinos da paralela e o378,00 pra desligar. (out no endereço 378 com valor 00). Pouco tempo depois a interface gráfica tirou a graça o que me obrigou a fazer uma graça tipo a abaixo (em delphi... me deu vontade registrar isso pra posteridade)

 

unit campainha;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls,INIFiles, Spin, Gauges;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Timer1: TTimer;
    Label2: TLabel;
    Button1: TButton;
    tempo: TSpinEdit;
    fim: TStaticText;
    text1: TStaticText;
    StaticText2: TStaticText;
    StaticText3: TStaticText;
    StaticText4: TStaticText;
    Gauge1: TGauge;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure formclose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }

  end;

var
  Form1: TForm1;
  Inpout32: THandle;
  seg,segfim,tmp,tmp1: byte;
  path: string;

implementation

procedure outportb(EndPorta: integer; Valor:BYTE); stdcall; external 'inpout32.DLL' name 'Out32';
function inportb(EndPorta: integer):byte; stdcall; external 'inpout32.DLL' name 'Inp32';

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
tmp:=tmp+1;
if tmp>=segfim then begin
                gauge1.Visible :=true;
                outportb($378,$0);//desliga
                text1.Caption :='Fechando em';
                label1.Caption :='Campainha desligada';
                fim.Caption :=inttostr(tmp1);
                if tmp1<1 then close;
                gauge1.Progress:=tmp1;
                tmp1:=tmp1-1;
                form1.Color :=clBtnFace;
                outportb($2fc,$10);
                outportb($2fc,$0);
                outportb($2fc,$0);
                outportb($2fb,$0);

                outportb($3fc,$10);
                outportb($3fc,$0);
                outportb($3fc,$0);
                outportb($3fb,$0);
                end
else begin
        fim.Caption:=inttostr(segfim-tmp);
        gauge1.Visible :=false;
        end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  DateTime : TDateTime;
  str : string;
  INI : TINIFile;
 Path:string;

begin

  Inpout32 := LoadLibrary('inpout32.dll');
  if Inpout32=0 then MessageDlg('Sem Dll.', mtInformation,[mbOk], 0);
  Path:=ExtractFilePath(application.ExeName);
  {Recebendo os valores do arquivo INI}
  INI := TINIFile.Create(path+'dispara.ini');
  tempo.Value := INI.ReadInteger('CONFIG','tempo',3);
  INI.Free;
  LongTimeFormat:='hh:mm';
  DateTime := Time;  // pega a hora corrente
  str := TimeToStr(DateTime); // converte para string
  label2.Caption := str;  // display the time on the form's caption
  outportb($378,$ff); //liga
  segfim:=tempo.Value;
  fim.Caption:=inttostr(segfim);
  tmp1:=10;
//liga todas as saídas disponíveis na serial
  outportb($2fc,$10);
  outportb($2fc,$0);
  outportb($2fc,$3);
  outportb($2fb,$40);

  outportb($3fc,$10);
  outportb($3fc,$0);
  outportb($3fc,$3);
  outportb($3fb,$40);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
outportb($378,$0);//desliga
outportb($2fc,$10);
outportb($2fc,$0);
outportb($2fc,$0);
outportb($2fb,$0);

outportb($3fc,$10);
outportb($3fc,$0);
outportb($3fc,$0);
outportb($3fb,$0);
close;
end;

procedure TForm1.formclose(Sender: TObject; var Action: TCloseAction);
var
  INI : TINIFile;
begin
//  Grava o tempo de acionamento no arquivo ini
  Path:=ExtractFilePath(application.ExeName);
  INI := TINIFile.Create(path+'dispara.ini');
  INI.WriteInteger('CONFIG','tempo',tempo.Value); //grava o último valor
  INI.Free;
  outportb($2fc,$10);
  outportb($2fc,$0);
  outportb($2fc,$0);
  outportb($2fb,$0);

  outportb($3fc,$10);
  outportb($3fc,$0);
  outportb($3fc,$0);
  outportb($3fb,$0);

  Action := caFree;
end;

end.

 

Era pra automatizar uma campainha de uma escola. Colocado no agendador de tarefa de um windows 95. Também tenho em vb, borland c todos usando a inpout32.dll

Acionava direto a bobina de um relé pelos pinos do db9 da serial. Perceba o controle e conhecimento quasi-total dos bits e ports (algo quasi-desnecessário atualmente). Tinha-se que conhecer bem o âmago da cpu pois se setar bit de registor errado, poderia-se travar o sistema.

 

Uma alternativa "com fio" é emitir um som pela placa de som e este seria um sinal pra acionar um transistor e este, um relé. Ou você pode tentar wirelessmente tipo blue tooth, wifi e afins. Nisso pouco o nada posso lhe somar. Aguarde (ou pesquise) alguma solução. E compartilhe conosco, claro.

abç

Link para o comentário
Compartilhar em outros sites

"Quer mexer um botão externo através do computador que tem objetivo qualquer como por exemplo ligar e desligar alguma coisa ou sistema externo"

 

Exatamente isso. No caso a botoeira é ligada em um módulo que controla uma cancela. Hoje tem que se apertar o botão manualmente. Quero automatizar através de um aplicativo para Android ou Java.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, rafagets disse:

"Quer mexer um botão externo através do computador que tem objetivo qualquer como por exemplo ligar e desligar alguma coisa ou sistema externo"

 

Exatamente isso. No caso a botoeira é ligada em um módulo que controla uma cancela. Hoje tem que se apertar o botão manualmente. Quero automatizar através de um aplicativo para Android ou Java.

 

Hum... se você quer muito fazer isso no pc dá para fazer como experiência, mas em termos práticos e financeiros seria muito mais barato montar o sistema de controle como esse através de bluetooth ou wifi(internet das coisas-para ligar nos aplicativos de forma remota, controle remoto) como um microcontrolador como pic ou atmega(ou outro), pois* o pc pode desligar devido a alguma queda de energia, muito propício a falha, se você permanecer ele ligado além do alto consumo... é como matar uma formiga com uma arma destruidora de planetas X) Com um microcontrolador você pode colocar uma bateria no mesmo, fazer um código para fazer o modulo de comunicação dormir e o mesmo pode ficar sem energia por dias...

 

Se você quiser você pode ir atrás no google de algum módulo relé para controlar isso "módulo relé usb".

 

No vídeo de baixo você pode ver como ele usa um usb para fazer ligar um relé de 5V, tem até um desenho do circuito, mas note que ele coloca o plug no computador e tira para fazer ligar e desligar o relés, nada prático... você poderia resolver isso colocando um botão de dois estados (sempre ligado ou sempre desligado) na linha de 5V do UBS e assim você poderia controlar localmente o circuito. Mas ai seria uma uma questão de elétrica do que qualquer coisa...

 

Como esse fato novo que você falou que precisa de comunicação com um aplicativo é uma nova rota que tem que ser tomada, se seu pc/notebook tiver bluetooth ou rede wifi você pode usar um módulo wifi ou bluetooth ligado a um microcontrolador como falei lá em cima.

 

Seria possível só usar o pc  se for via cabo , mas para usar aplicativos de forma remota wireless precisa de processamento nas duas pontas de comunicação.

 

Dá para controlar por outras entradas

https://ae01.alicdn.com/kf/HTB1CLijIVXXXXcSaFXXq6xXFXXXE/2-Canais-M&oacute;dulo-de-Rel&eacute;-da-porta-Serial-DC-12-V-PC-Computador-USB-DB9-font.jpg

 

 

Se teu pc tem porta paralela (principalemente pcs aintigos) você pode procurar no google por "Ligando Leds na porta paralela" e em vez* de você ligar um led... você iria ligar um relé no lugar com ajuda de um transistor se não for possível ligar só com a saída da porta paralela e desligar também o que permite o controle de periféricos ^^.

 

Também parece que dá para fazer por "vga parallel led circuit" (procura no google), mas não entendi muito bem como os gringos fazer... teria que estudar mais ^^

 

Enfim... acredito que tem mais opções, mas precisa ir mais afundo no conhecimento do PC ^^

 

 

adicionado 6 minutos depois
9 minutos atrás, Bommu Perneta disse:

Seria possível só usar o pc  se for via cabo , mas para usar aplicativos de forma remota wireless precisa de processamento nas duas pontas de comunicação.

me auto acrescentando: a não ser que você use um porta paralela ligada a um modulo de envio de rádio frequência... para ficar de forma wireless X) também.

Link para o comentário
Compartilhar em outros sites

E, claro, o ***** tópico fixo falando sobre o ESP que temos aqui na comunidade que tem exemplo de como ligar um led com o mesmo, portanto com até o uso de uma fonte externa controlada por um TIP/Transistor de potencia dá para resolver o caso também... X)  Mas vai precisar de um TTL ou algum programador para fazer o serviço X)

 

EU nunca leio os tópicos grande das comunidades que participo

meme-23160-nao-li-nada-.jpg

X)

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Isadora Ferraz disse:

ESP8266... Nunca vi, nunca usei, nunca experimentei, só ouço falar... É um dos meus sonhos de consumo...

Eu ia citar sobre ele agora já que o autor do tópico falou sobre Android e Wifi.

 

Mas agora me lembrei de outra "coincidência cronológica", não tão cronológica assim porque foi a semana passada.

Apesar de ser a mesma coisa que o tal ESP8266 (é citado o tal aparelho que o @rafagets precisa:

Bem que eu falei acima que os chineses inventam de tudo.

Desta forma não precisa de um PC e nem de programar nada, já vem tudo pronto. Só bater na tela do seu Celular e sua Cancela vai abrir!

 

Link para o comentário
Compartilhar em outros sites

O sonoff* tem que ver a tensão de entrada e saída dele... pois ele se alimenta direto da rede elétrica e a saída dele é a mesma porrada da rede ^^ no caso ele quer só um botão para um circuito...

 

Mas se for atrás de coisa chinesa dá passar o dia no Aliexpress vendo bugigangas que eles inventam e tem muita coisa boa por lá que faz tudo que você quiser já feito, se não dá para mandar até fabricarem placas para você ^^

adicionado 3 minutos depois

Só um exemplo

Link1

Link para o comentário
Compartilhar em outros sites

3 horas atrás, Bommu Perneta disse:

O sonoff* tem que ver a tensão de entrada e saída dele... pois ele se alimenta direto da rede elétrica e a saída dele é a mesma porrada da rede ^^ no caso ele quer só um botão para um circuito...

Sim, tem deste jeito. onde o contato do relé é ligado a entrada da fonte e aí temos saída de 110 ou 220V. Vai depender da rede elétrica.

Mas se procurar pode ser que encontre exatamente o que o @rafagets precisa: Um módulo onde o relé tem o contato livre para trabalhar da mesma forma que um botão.

Se não encontrar deste tipo poderia ligar um relé de 110 ou 220V ao módulo da primeira opção.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...