Buon giorno a tutti , mi chiamo Fabio è sono alle prime armi con la programmazione di Arduino , faccio l'elettricista e ho poca esperienza nella programmazione col linguaggio c++ , ho acquistato diversi testi per poter imparare il linguaggio di Arduino, attualmente utilizzo due ARDUINO UNO con la ETHERNET shild , dopo diversi esercizi utilizzando la comunicazione seriale ho voluto provare la comunicazione ethernet tramite client e server, il mio esercizio consiste nel mandare un bit tramite la funzione BIT SET e BIT READ dal client verso il server , volevo chiedervi se è possibile fare in entrambi le schede la trasmissione e la ricezione dei bit , purtroppo sono riuscito a inoltrare dal client un bit associato allo stato di un pulsante che nel server accendere un led , volevo fare anche viceversa.
in attesa di un vostro aiuto vi ringrazio in anticipo
inoltro il programma che funziona .
CLIENT
#include <SPI.h>
#include <Ethernet.h>
#include <String.h>
byte mac[] = {0xA8,0x61,0x0A,0xAE,0xA9,0xD7};
byte ip[] = { 192,168,1,105 };
byte gateway[] = { 192,168,1,1 };
byte subnet[] = { 255,255,255,0 };
byte server[] = {192,168,1,100};
EthernetClient client;
void setup() {
Ethernet.begin(mac,ip,gateway,subnet);
Serial.begin(9600);
if(client.connect(server,1234)){
Serial.println("connesso");
pinMode(2,INPUT);
}
}
int buf =0;
void loop(){
if (client.connected()) {
buf = digitalRead(2);
Serial.println(buf,0);
client.write (buf);
}
}
SERVER
#include <SPI.h>
#include <Ethernet.h>
#include <String.h>
byte mac[] = {0xA8,0x61,0x0A,0xAE,0xAA,0x38};
byte ip[] = { 192,168,1,100 };
byte gateway[] = { 192,168,1,1 };
byte subnet[] = { 255,255,255,0 };
EthernetServer server (1234);
void setup() {
Ethernet.begin(mac,ip,gateway,subnet);
server.begin();
pinMode(5,OUTPUT);
}
void loop() {
EthernetClient client =server.available();
if (client){
if (client.connected()&&client.available()){
int c = client.read();
digitalWrite(5,bitRead(c,0));
}
}
}