Alguém aqui já utilizou o protocolo OSC?

Estou utilizando Arduino + Ethernet Shield + Protocolo OSC para acionar uma Lampada ou mais.
Estou com uma duvida sobre a biblioteca ArdOSC.
Eu consegui fazer o exemplo disponibilizado neste site:
Lá tem a biblioteca e exmplos para seguir, mas ainda não descobri como controlar a intesidade de uma lampada com esta biblioteca.
Não sei como fazer o slider controlar a saída PWM do arduino, se alguem descobrir ficarei grato! Todos exemplos que achei utilizava Processing + Arduino + OSC, mas quero utilizar apenas com o meu Ethernet Shield e sei que é possivel fazer, mas ainda não sei como!
Aqui tem um video de acionamento de quatro lampadas via Processing + Arduino e OSC justo o que eu não queria ![]()
estou utilizando como base este code aqui.
#include <SPI.h>
#include <Ethernet.h>
#include <ArdOSC.h> //inclui blibioteca ArdOSC
byte myMac[]={0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //define MAC para shield Ethernet
byte myIp[] = { 192, 168, 1, 177 }; //define IP da central automação
int serverPort = 8000; //define a porta de recepção do comando OSC
int destPort= 9000; //define a porta de envio do comando OSC
int ledPin = 9; //define a porta do arduino associada ao led
int flag=0;
OSCServer server; //inicializa o servidor OSC (serviço que trata a recepção de mensagem OSC)
OSCClient client; //inicializa o cliente OSC (serviço que trata o envio de mensagem OSC)
void setup(){
Ethernet.begin(myMac ,myIp); //inicializa a interface ethernet
server.begin(serverPort); //inicializa o servidor OSC definindo a porta de RX
//set callback function & oscaddress
server.addCallback("/ard/ledPin",&func1); //define que a rotina "func1" será executada para o comando OSC "/ard/ledPin"
pinMode(ledPin, OUTPUT); //define a porta digital 9 (ledPin) do Arduino como saida
}
void loop(){
if(server.aviableCheck()>0){ //verifica se existe alguma mensagem OSC disponível para leitura
// Serial.println("alive! ");
}
}
void func1(OSCMessage *_mes){ //rotina que trata comando OSC "/ard/led2" recebido do ANDROID
int value=(int)_mes->getArgFloat(0); //armazena em "value" o argumento do comando OSC "/ard/led2"
digitalWrite(ledPin,value); //muda estado da porta digital 9 (ledPin2) conforme argumento OSC recebido
//create new osc message
OSCMessage txMes; //cria uma nova menssagem OSC
//set destination ip address & port no
txMes.setAddress(_mes->getIpAddress(),destPort); //define o endereço e porta do destino da mensagem OSC
txMes.beginMessage("/ard/ledPin"); //define comando OSC
txMes.addArgFloat(flag); //define no estado do led 2 que será enviado no argumento OSC para ANDROID
if(flag==1){
flag=0;
digitalWrite(ledPin, LOW);
}
else{
flag=1;
digitalWrite(ledPin, HIGH);
}
txMes.addArgInt32(flag);
//send osc message
client.send(&txMes); //envia mensagem OSC para atualizar novo estado do led 1 no ANDROID
}