Ir ao conteúdo
  • Cadastre-se

Avelar Neco

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Baseados em post criei um programa para acionar 4 reles via rede ethernet com o App OSC, porém preciso entender dois fatos. 1º. Só consigo usar as portas 0 a 9, as portas 10 a 13 não aceita o comando, o que pode estar ocorrendo? 2º. Sempre que a placa é alimentada todos os 4 relés vão pra 1, como faço para que eles permaneça em 0 e só vão pra 1 quando enviado o comando? Abaixo o programa que estou usando: #include <spi.h> #include <ethernet.h> #include <ardosc.h> byte myMac[]={0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; byte myIp[] = { 192, 168, 1, 48 }; int serverPort = 8000; int destPort= 9000; int relePin = 6; int relePin2 = 7; int relePin3 = 8; int relePin4 = 9; int flag=0; int flag2=0; int flag3=0; int flag4=0; OSCServer server; OSCClient client; void setup(){ Ethernet.begin(myMac ,myIp); server.begin(serverPort); server.addCallback("/ard/relePin",&func1); server.addCallback("/ard/relePin2",&func2); server.addCallback("/ard/relePin3",&func3); server.addCallback("/ard/relePin4",&func4); pinMode(relePin, OUTPUT); pinMode(relePin2, OUTPUT); pinMode(relePin3, OUTPUT); pinMode(relePin4, OUTPUT); } void loop(){ if(server.aviableCheck()>0){ } } void func1(OSCMessage *_mes){ int value=(int)_mes->getArgFloat(0); digitalWrite(relePin,value); OSCMessage txMes; txMes.setAddress(_mes->getIpAddress(),destPort); txMes.beginMessage("/ard/relePin"); txMes.addArgFloat(flag); if(flag==1){ flag=0; digitalWrite(relePin, HIGH); } else{ flag=1; digitalWrite(relePin, LOW); } txMes.addArgInt32(flag); client.send(&txMes); } void func2(OSCMessage *_mes){ int value=(int)_mes->getArgFloat(0); digitalWrite(relePin2,value); OSCMessage txMes; txMes.setAddress(_mes->getIpAddress(),destPort); txMes.beginMessage("/ard/relePin2"); txMes.addArgFloat(flag2); if(flag2==1){ flag2=0; digitalWrite(relePin2, HIGH); } else{ flag2=1; digitalWrite(relePin2, LOW); } } void func3(OSCMessage *_mes){ int value=(int)_mes->getArgFloat(0); digitalWrite(relePin3,value); OSCMessage txMes; txMes.setAddress(_mes->getIpAddress(),destPort); txMes.beginMessage("/ard/relePin3"); txMes.addArgFloat(flag3); if(flag3==1){ flag3=0; digitalWrite(relePin3, HIGH); } else{ flag3=1; digitalWrite(relePin3, LOW); } } void func4(OSCMessage *_mes){ int value=(int)_mes->getArgFloat(0); digitalWrite(relePin4,value); OSCMessage txMes; txMes.setAddress(_mes->getIpAddress(),destPort); txMes.beginMessage("/ard/relePin4"); txMes.addArgFloat(flag4); if(flag4==1){ flag4=0; digitalWrite(relePin4, HIGH); } else{ flag4=1; digitalWrite(relePin4, LOW); } }

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!