hat jemand den Arduino Sketch von Robert L. aus #4 schon erweitert auf mehrere I-button leser? Ich bekomme es leider nicht hin das mehr als die zwei gelesen werden.
LG Tobi
#include <OneWire.h>
#include <SPI.h> // needed for Arduino versions later than 0018
#include <Ethernet.h>
#include <EthernetUdp.h> // UDP library from: bjoern@cs.stanford.edu 12/30/2008
// Network Settings
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xEF, 0xDE };
IPAddress ip(192, 168, 1, 190);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
// Local UDP port to listen on
unsigned int localPort = 5300;
// Recipient IP
IPAddress RecipientIP(192, 168, 1, 22);
// Recipient UDP Port
unsigned int RecipientPort = 5300;
// buffers for receiving and sending data
char packetBuffer[UDP_TX_PACKET_MAX_SIZE];
// An EthernetUDP instance to send and receive packets over UDP
EthernetUDP Udp;
OneWire ibuttonA (2); // I button connected on PIN 2.
OneWire ibuttonB (3); // I button connected on PIN 3.
[B]OneWire ibuttonC (4); // I button connected on PIN 4.[/B]
byte buffer[20]; //array to store the Ibutton ID.
char UDPbuffer[20];
byte found = 0;
void setup()
{
// For debug only
Serial.begin(9600);
// Start Ethernet
Ethernet.begin(mac,ip);
// Start UDP
Udp.begin(localPort);
}
void loop()
{
if (ibuttonA.search (buffer)){//read attached ibutton and asign value to buffer
found = 1;
} elseif(ibuttonB.search (buffer)){//read attached ibutton and asign value to buffer
ibuttonA.reset_search();
found = 2;
[B] } else if (ibuttonC.search (buffer)){//read attached ibutton and asign value to buffer
ibuttonA.reset_search();
ibuttonB.reset_search();
found = 3;[/B]
} else {
ibuttonA.reset_search();
ibuttonB.reset_search();
[B] ibuttonC.reset_search();[/B]
found = 0;
}
if (found == 0) {
delay(200);
return;
}
for (int x = 0; x<8; x++){
Serial.print(buffer[x],HEX); //print the buffer content in LSB. For MSB: for (int x = 8; x>0; x--)
Serial.print(" "); // print a space
}
Serial.println("\n"); // print new line
//crc compute//
// byte crc;
// crc = ibuttonA.crc8(buffer, 7);
// send a reply to the IP address and port that sent us the packet we received
Udp.beginPacket(RecipientIP, RecipientPort);
for (int x = 0; x<8; x++) {
sprintf(UDPbuffer, "%02X", buffer[x]);
Udp.write(UDPbuffer, 2);
if (x<7) {
Udp.write(".");
}
}
if (found == 1) {
Udp.write("ZUSATZTEXT_1");
[B]} else if (found==3) {
Udp.write(“ZUSATZTEXT_2”);[/B]
} else {
Udp.write("ZUSATZTEXT_[B]3[/B]");
}
Udp.endPacket();
}
Wir verarbeiten personenbezogene Daten über Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen, Werbung zu personalisieren und Websiteaktivitäten zu analysieren. Wir können bestimmte Informationen über unsere Nutzer mit unseren Werbe- und Analysepartnern teilen. Weitere Einzelheiten finden Sie in unserer Datenschutzrichtlinie.
Wenn Sie unten auf "Einverstanden" klicken, stimmen Sie unserer Datenschutzrichtlinie und unseren Datenverarbeitungs- und Cookie-Praktiken wie dort beschrieben zu. Sie erkennen außerdem an, dass dieses Forum möglicherweise außerhalb Ihres Landes gehostet wird und Sie der Erhebung, Speicherung und Verarbeitung Ihrer Daten in dem Land, in dem dieses Forum gehostet wird, zustimmen.
Kommentar