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