salve a tutti. sto sperimentando l'ethernet shield su un arduino uno per controllare dei led tramite touch osc.
il codice che uso è questo
#include <SPI.h>
#include <Ethernet.h>
#include <ArdOSC.h>
byte myMac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x83, 0x24 };
byte myIp[] = { 192, 168, 1, 11};
byte gateway[]={ 192,168,1,1};
byte subnet[]={ 255,255,255,0};
int serverPort = 8000;
int destPort=9000;
int ledPin = 6;
int flag=0;
OSCServer server;
OSCClient client;
void setup(){
Serial.begin(9600);
Ethernet.begin(myMac ,myIp, gateway, subnet);
server.begin(serverPort);
//set callback function & oscaddress
server.addCallback("/ard/aaa",&func1);
pinMode(ledPin, OUTPUT);
}
void loop(){
//Serial.println("uga sugaa ");
if(server.aviableCheck()>0){
Serial.println("alive! ");
}
}
void func1(OSCMessage *_mes){
int value = _mes->getArgInt32(0);
if(value!=1) return;
//create new osc message
OSCMessage newMes;
//set destination ip address & port no
newMes.setAddress(_mes->getIpAddress(),destPort);
newMes.beginMessage("/ard/aaa");
if(flag==1){
flag=0;
digitalWrite(ledPin, LOW);
}
else{
flag=1;
digitalWrite(ledPin, HIGH);
}
newMes.addArgInt32(flag);
//send osc message
client.send(&newMes);
}
il mac address è quello scritto sotto l'ethernet shield.
l'arduino è connessa con un cavo ethernet a un piccolo access point HAME configurato in questo modo: Ip: 192.168.1.1 sub: 255.255.255.0
se mi connetto in wifi dal pc o da cellulare e provo a pingare uno di questi ottengo risposta.
se provo a pingare l'ethernet shield ottengo timeout oppure Host is down.
non riesco a capire perchè non funziona; eppure le luci link e 100 m sono accese fisse ...