Como emitir um sinal elétrico de 5v pela porta serial?
Bom, a pergunta é: Eu consigo emitir este sinal elétrico através da porta serial, ou eu preciso de uma placa específica para isto? Achei uma no site:
[url]http://www.wolmaq.com.br/produtos_detalhes.asp?codproduto=62[/url]
Então pessoal, qualquer ajuda será bem vinda?
Quais componentes utilizar?
Existe como eu fazer a conversão desta conexão (2 pares de fio (vermelho/preto)) para o tipo serial???
Farnetani
Melhor post
Eduardocarneiro
11/02/2008
Desculpem a intromissão no tópico mas estou na mesma situação.
Estou projetando uma PCI para abrir uma catraca através da porta paralela. A catraca foi encomendada pela empresa onde trabalho, ainda não chegou e a única informação que tenho é que o relê dela é disparado com 1,5v.
Como não sei a tensão máxima que o relê suporta, estou utilizando um LM317 com um resistor de 220ohms (em paralelo nos pinos de saída e de GND) e outro de 47ohms (em série no pino de GND) para garantir que não vou queimar a catraca :D
- Com 1v de tensão na entrada do circuito, tenho 157,3mV na saída.
- Com 2v de tensão na entrada do circuito, tenho 759,8mV na saída.
- Com 3v de tensão na entrada do circuito, tenho 1,478V na saída.
- Com 4v de tensão na entrada do circuito, tenho 1,572V na saída.
- Com 5v de tensão na entrada do circuito, tenho 1,573V na saída.
E a tensão de saída se mantém, aproximadamente, em 1,6V até os 40V de tensão de entrada, que é o que o LM317 suporta, ou seja, o circuito não vai retornar mais que 1,6V e a catraca vai continuar funcionando.
Finalmente, as dúvidas:
- Em alguns fóruns, vi que o pessoal coloca um capacitor de 0,01uF em paralelo com o pino de entrada do LM317. Qual seria a razão disto/ (teclado desconfigurado, sem a interrogação) Seria para conter alguma oscilação ou não tem nada haver/ Existe a necessidade de ter este capacitor/
- Li aqui no tópico que um diodo evitaria um retorno de tensão por parte do relê. Tentei colocar aqui, mas como ele reduz um pouco a tensão, vou ter que modificar meus resistores para conseguir +-1,5V de saída com a entrada na faixa de 3V à 5V. Pensando agora, coloquei o diodo no início do circuito, antes da entrada do LM317 e talvez, colocando na saída, não tenha que modificar muito meus resistores. O diodo é mesmo necessário para evitar uma tensão contrária, certo/ Então, entendi certo a idéia ou escrevi besteira/
Ah, ainda vou ter que torcer apra que o relê não seja ativado com aqueles 759,8mV, no caso de uma DDP de 2v entre os pinos 2 (´desligado´) e 25 (é uma situação bem improvável, mas como pode acontecer, é bom estar preparado).
Meus conhecimentos em eletrônica são quase insignificantes e ainda não me servem nem para um hobby rsrsrs Então, desculpem se escrevi alguma bobagem ou se as dúvidas são bestas d+.
Queria não ter ´matado´ as aulas de física :roll:
Mais Respostas
Kroki
02/02/2008
Se vc for usar windows 2000/XP será nescessário usar uma DLL.
A tensão da serial vai ser de +- 12 volts aonde vc vai ter que usar um diodo zener de 5 volts,lembrando que a corrente é baixa.
Posso passar a rotina mas preciso saber se vc tem alguma experiencia em eletronica.
Onjahyr
02/02/2008
Pois é, eu já brinquei com eletrônica a uns tempos atrás com o Delphi 3, e usava placas com acesso a porta serial e paralela, já vi também pela USB mas nunca fiz. Eles são a camada intermediária entre seu programa e o equipamento. Para maiores detalhes entre no google e pesquise sobre delphi, eletrônica, robótica, eletrotécnica, e coisas do gênero.
Se vc conectar os fios diretamente na porta seu computador vai parar em marte! :lol:
E mais, se você não entende NADA de eletrônica desista! ou contrate alguém ou alguma empresa para desenvolver uma placa específica para seu equipamento (se for um equipamento antigo, bom, pois pode pegar um projeto genérico/padrão).
Eu sempre gostei de trabalhar com programação em conjunto com eletrônica pois você se anima em ver um equipamento eletrônico (até mesmo simples - como Leds piscando) com sua intervenção pelo seu programa, um motor funcionando e parando com um clique de um botão, um ventilador, uma lâmpada acendendo, ligar qq aparelho eletrônico, tudo pela porta serial usando o Delphi (qq versão de 3 acima). Se quiser algum material entre em contato comigo, mas é como eu disse, se não entender de eletrônica vc não faz NADA, tem que saber lêr diagrama digital para construção do circuito impresso, tem que ter materiais (muitos deles são caros), etc...
Para começar você poderia comprar nas bancas revistas de eletrônica, existe as básicas e as avançadas.
Sucesso!
Farnetani
02/02/2008
Qualquer luz será bem vinda! Já estudei assembler...faz um tempinho...mas pode me mandar o q vc tiver ai...
Se tiver algo em Delphi (usando componente ou nao) tb seria ótimo.
Se puder me explicar melhor o lance do diodo zener eu agradeço!
Valew
Farnetani
02/02/2008
Se tiver algo que ajude poste aí ok!
Valew!
Agora em relação a desistir...desista vc de me convencer disto ok! rs!
Como vc manja de eletronica...já poderia me ajudar com o esquema de como montar o cabo para a conversao do serial ok!
Onjahyr
02/02/2008
Não posso colocar aqui porque o material que tenho são em PDF e arquivos (e ainda tenho de procurar nos meus CD´s). Este fórum só suporta texto. É porisso que pedi seu e-mail. Mande uma MP para mim informando seu e-mail e o que quer fazer exatamente, vou tentar ver se posso ajudar além de enviar o material.
Quanto a fazer a parte de eletrônica eu não posso, não tenho tempo, (infelizmente), pois como eu disse, eu gostava de fazer!
Aqui onde estou residindo agora (DF) não tenho nenhum equipamento de eletrônica, nenhuma ferramenta, etc...
Blz.
Kroki
02/02/2008
implementation
function Out32(wAddr: word; bOut: byte): byte; stdcall; external ´xp.dll´;
{$R *.dfm}
//ativa
procedure TForm1.Button1Click(Sender: TObject);
begin
asm
mov dx,$3fa
mov al,$c7
out dx,al//Out32(dx,al);
mov dx,$3fc
mov al,$0b
out dx,al//Out32(dx,al);
end;
Label1.caption:=´Ligado´;
end;
//desativa
procedure TForm1.Button2Click(Sender: TObject);
begin
asm
mov dx,$3fa
mov al,$c7
out dx,al//Out32(dx,al);
mov dx,$3fc
mov al,$00
out dx,al//Out32(dx,al);
end;
Label1.caption:=´Desligado´;
end;
Está tudo aí em cima,melhor vc testar com um Windows 9X.
Se usar windows 9X vc deve retirar a linha ´function Out32(wAddr: word; bOut: byte): byte; stdcall; external ´xp.dll´;´
Se for usar windows baseado no XP/2000 vc deve manter a linha citada acima e usar os comandos depois de ´//´ (Out32(dx,al)´ etc... e vai precisar da DLL.
Passa email que te mando a DLL,mas como disse é mais fácil testar nos 9X.
No conector DB9 (serial) o pino 5 é terra e o 7 vai ser sua tensão(12V aproximadamente).
Terá que colocar um diodo zener de 5V entre o pino 5 e 7 (no pino 7 vai o lado do diodo que tem um ´risco´ e o outro lado do diodo vai no pino 5.
Farnetani
02/02/2008
Onjahyr
02/02/2008
Creio que isso aí resolve o caso, porém (não tenho certeza), queria perguntar para o [b:5c57bb5810]kroki[/b:5c57bb5810] se vai funcionar mesmo. A corrente de saída da porta Paralela não é alta sendo suficiente para, no máximo, acender LEDS (3v.). Para circuitos que necessitem de maior potência, deve-se utilizar buffers ou amplificadores de correntes transistorizados.
Como faz um tempo que não uso eletrônica, não tenho certeza disso, mas, depois dos testes o [b:5c57bb5810]farnetani[/b:5c57bb5810] posta os resultados aqui.
Kroki
02/02/2008
Se a catraca apenas precisa de nível lógico alto (5V) para acionar,isso vai funcionar.
Kroki
02/02/2008
...
Var
porta:word;
implementation
function Out32(wAddr: word; bOut: byte): byte; stdcall; external ´xp.dll´;
{$R *.dfm}
//Saida alta(5V)
procedure TForm1.Button1Click(Sender: TObject);
begin
Out32(porta,$FF);//porta=$278 LPT2(paralela 2)ou $378 LPT1(paralela 1)
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Out32(porta,0);//não esquecendo o valor da porta (tem que ser o mesmo)
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Out32(porta,0);//Quando se liga o pc a paralela fica instavel,melhor zerar
end;
...
Os pinos usados são o 18 a 25 para ´terra´ e do 2 ao 9 para saida.
As procedures acima ativam ou desativam todos os 8 Bits da porta(por isso pode-se escolher ou os pinos do 2 ao 9 ou algum deles).
Sobre a porta serial o dido zener serve para estabilizar a tensão em 5 Volts(usar zener 5V1).
Usar resistores de 470 Ohms no pino ´+´.
Farnetani
02/02/2008
Apenas fiz o cabo paralelo ligando na porta 2 e porta 25 e o esquema funciona. O grande detalhe é que testei no multimetro. Agora vou testar direto na catraca. O que eu gostaria de saber é o seguinte, caso seja realmente necessário 5v...tem alguma forma de eu ampliar isto de 3.3v para 5v???
Ou o diodo zener 5v1 que vc me passou é exatamente para isto? Qual é a funçao do resistor de 470 que vc me passou?
Estes 2 serao necessarios?
Putz...nem preciso dizer obrigado né...valew mesmo!
Farnetani
02/02/2008
Kroki
02/02/2008
Como te falei o diodo é para apenas a porta serial(para se obter 5v),na paralela não precisa o diodo.
O resitor é para limitar a corrente do pino.
Voce pode testar com um resistor de 100 Ohms.
Kroki
02/02/2008
O lado do diodo que não tem um ´risco´vai no pino 2 e o lado do ´risco´ vai para a catraca,desse modo vc tambem limita a corrente do pino e evita que uma tensão de retorno da catraca volte pelo pino.
Farnetani
02/02/2008
O problema foi que a porta paralela me deu apenas 3.33v. Engraçado que pelos comentários a mesma teria que dar 5v.
Mas se seu conseguir pelo serial através da reduçao pelo diodo zener blz!
Apesar de eu achar pelo esquema da paralelo mais fácil, o foda vai ser a voltagem faltante para completar os 5v.
Entao vc acha que seu ligar o cabo paralelo na catraca sem o diodo é capaz de ter retorno e queimar a porta do micro?
Massuda
02/02/2008
A tensão de 3,3V é aceitável; o 8255 usado originalmente no PC gerava uma saída com tensão mínima de 3V.
Um cuidado a tomar é que a porta serial é muito mais robusta que a porta paralela. Por exemplo, a porta serial pode ser curto-circuitada sem prejuízo para o hardware, o que não ocorre com a porta paralela.
Farnetani
02/02/2008
Olha só...testei aqui com o cabo serial. Liguei o multimetro e o mesmo mediu só de conectar o cabo -10,92v (o problema é que deu negativo), aí qdo eu aciono a porta com1, ele me resulta 11.82v (só que positivo)...Nao entendi o que isto quer dizer, entao surgiu a dúvida, pq está dando negativo, isto é normal? e qdo ele me resulta 11.82v, isto significa que é apenas 11.82v ou 11.82+a parte negativa(10,92) = 22v ?
Uma outra coisa, pelo que vc disse eu posso ligar a serial sem medo dela queimar, já a porta paralela eu tenho que tomar cuidado...seria isto?
Qual seria a probabilidade de eu ligar a porta paralela de 3.3v e a mesma queimar com algum retorno? é que nao tenho nenhum resistor/fusível, então queria ligar logo pra testar isto...
Kroki
02/02/2008
Como disse vc não disse como vai usar,tipo,a distancia etc...
Usa a serial com o diodo.
Voce não tem os esquemas da catraca ou informações?
Posta elas.
Kroki
02/02/2008
Pino7=+ e pino 5=- .
A tensão de 3.3v pode ser por causa do resistor,então usa o 1N4148.
Kroki
02/02/2008
Ja faz uns 3 anos que uso a alimentação (5V com zener)na serial para alimentar um HardLock que projetei para controlar programas de caça níquel,terminais de supermercado etc... sem problemas,e o circuito alimenta um microcontrolador(PIC),um Led e um CI.
Massuda
02/02/2008
Farnetani
02/02/2008
Massuda
02/02/2008
Farnetani
02/02/2008
Tudo funcionando. Para a minha alegria ao mexer na catraca DIMEP que nao tem nenhum manual por incrivel que pareça foi que a mesma aciona o relê até com uma pilha de 1,5V. Então show de bola, o esquema já está no ar.
Fiz da seguinte forma:
1) Cabo paralelo ligando no pino 25 (terra) e pino 2 (positivo).
2) Liguei um fusível entre a o cabo 2 e o fio da catraca por segurança, caso retorne alguma tensão...não sei se isto ajuda...apesar que me recomendaram colocar um resistor...
3) Utilizei a dll xp.dll e os comandos que o Vitor me passou.
Show de bola...tudo funcionando!
Valew pessoal!
Farnetani
02/02/2008
Kroki
02/02/2008
Kroki
02/02/2008
Caso não exista voce DEVE ligar um dido(1n4148)o mais próximo possível dos terminais que alimentam o relê,onde o lado do diodo que contem o ´risco´ no terminal + do relê e o lado que não contem o ´risco ´ no - do relê,sem isso(caso não tenha o diodo no circuito da catraca),vai haver picos de retorno que podem queimar a saida da paralela pu reiniciar o PC.
Kroki
02/02/2008
Farnetani
02/02/2008
Quanto ao seu nome, vc me mandou um email...ou esqueceu??? Nele estava seu nome! Desculpe se não gostaria que fosse mencionado.
Grde Abraço!
Kroki
02/02/2008
Kroki
02/02/2008
Lambrando que o ´mais´ esta entre o pino 2 a 9.
Eduardocarneiro
02/02/2008
Obrigado pela resposta.
Sobre o diodo, você havia postado ´O lado do diodo que não tem um ´risco´vai no pino 2 e o lado do ´risco´ vai para a catraca,desse modo vc tambem limita a corrente do pino e evita que uma tensão de retorno da catraca volte pelo pino.´, o que me levou a crer que o mesmo deveria ser ligado em série no positivo (pino 2) com a catraca, mas de acordo com a figura que você postou, o diodo deve estar em paralelo ao relê. Com os testes que fiz, achei que ele deveria estar em série... E agora?
Outra questão, este resistor deve baixar a tensão para um pouco mais de 2,5V. Não corro o risco de queimar o relê da catraca ou reduzir sua vida útil? Usar o LM317 para manter a tensão em 1,5V não vale a pena?
Kroki
02/02/2008
O diodo em paralelo é OBRIGATÓRIO em circuitos de comutação de reles.
Observe,quando voce utiliza um diodo de sinal em série em uma tensão contínua,
o diodo gera uma queda de tensão de +- 0,60v.
Alem disso,como ele só conduz em um sentido,não existe o problema de alguma tensão ´retornar´.
A tensão gerada pela porta paralela não tem corrente suficiente para queimar um rele.
Kroki
02/02/2008
Edilcimar
02/02/2008
Kroki
02/02/2008
Desse modo terminamos o valor em 0,6.
Lunasoft
02/02/2008
Grande Kroki,
tenho a mesma necessidade do amigo aí em cima.... vc poderia me enviar a XP.DLL com urgencia ? meu e-mail lusoft@terra.com.br
Kroki
02/02/2008
Lunasoft
02/02/2008
Realmente, amigo não recebi. vc pode enviar para solutech@solutech.com.br, tambem.
Kroki
02/02/2008
Quero lembrar que eu nunca usei essa catraca e que esta tudo aí em cima,e que quem não tem experiencia em eletronica deve pedir auxílio a um técnico que esteja pessoalmente presente,não tem como exclarecer detalhes técnicos via Web.
Qualquer técnico poderá exclarecer dúvidas pela imagem a seguir que demosntra a ligação pela porta SERIAL.
[URL=http://img149.imagevenue.com/img.php?loc=loc1072&image=12905_serial_122_1072lo.jpg][img:6c5136e43a]http://img149.imagevenue.com/loc1072/th_12905_serial_122_1072lo.jpg[/img:6c5136e43a][/URL]
Dluche
02/02/2008
Dluche
02/02/2008
para dluche@gmail.com
Leonardo Gazio
02/02/2008
Uma alternativa mais segura seria você montar um pequeno circuito com um Resistor e um Transistor NPN(pode ser BC547). Não tenho nenhum esquema aqui mais é muito fácil o passo-a-passo.
1- Jogue um resistor de 470ohm no terminal P(positivo) do transistor.
2- Ligue a outra ponta do resistor no pino 5+ da porta.
3- Um dos terminais N(negativo) você joga no terra da porta.
4- O outro terminal N você joga no negativo do relé.
5- No positivo do relé você joga 12+ de qualquer fonte externa.
Vou explicar o que que o circuito acima vai fazer;
Os terminais N do transistor funcionam como um Interruptor,
você vai jogar os 5 volts da porta no terminal P que vai acionar o transistor e ligar o terra da porta no relé que por sua vez já está recebendo 12 volts de uma fonte externa de qualquer amperagem.
Dessa forma você não vai colocar em risco sua porta.
Leonardo Gazio
02/02/2008
Pamela Sekkel
02/02/2008
Tudo funcionando. Para a minha alegria ao mexer na catraca DIMEP que nao tem nenhum manual por incrivel que pareça foi que a mesma aciona o relê até com uma pilha de 1,5V. Então show de bola, o esquema já está no ar.
Fiz da seguinte forma:
1) Cabo paralelo ligando no pino 25 (terra) e pino 2 (positivo).
2) Liguei um fusível entre a o cabo 2 e o fio da catraca por segurança, caso retorne alguma tensão...não sei se isto ajuda...apesar que me recomendaram colocar um resistor...
3) Utilizei a dll xp.dll e os comandos que o Vitor me passou.
Show de bola...tudo funcionando!
Valew pessoal!
Boa tarde, vi seu tópico e estou com um problema exatamente igual.
Será que você poderia me enviar essa dll citada acima?
Nelson Santos
02/02/2008
http://www.3dsistemas.com.br