De arduino's hebben zelf namelijk geen ID
Ziet er goed uit. Aangezien ik met een zelfde soort exercitie bezig ben, alleen maak ik gebruik van de CanBus, heb ik een vraagje, welke Arduino gebruikt u. Ik heb zelf wat issues met de UNO bij het gebruik van objecten. N.l. het feit dat het dynamisch geheugen slechts 2K groot is. Daardoor ontstaan er snel conflicten tussen de globale datagebruik en het lokale datagebruik waarbij lokale data globale data overschrijft, resulterend in vreemd en onverklaarbaar gedrag in de schets.Groet Meino
byte element;for(element = 0; element < elementAmmount; element++) { unsigned int eeAddress = element * detectorSize + detectorAddress; // memoryAddress to detectorAddress is reserved for memories (128 bytes) EEPROM.get(eeAddress, detector); if(detector.IO == IO) { // if IO matches IO of a detector item sendDetectorState(detector.ID, state); } }
Dat kun je doen door 3 inputpins te gebruiken, die die je verbindt met +5 resp. GND: elke Arduino krijgt zo z'n eigen code; zo kun je met 3 pins 8 A.'s een ID geven. Kost je helaas wel 3 pins... Een andere manier is om elke A. op een vast adres in EEPROM een code te schrijven.Zie ook arduino.cc.
Code: [Selecteer]for(element = 0; element < elementAmmount; element++) { unsigned int eeAddress = element * detectorSize + detectorAddress;
for(element = 0; element < elementAmmount; element++) { unsigned int eeAddress = element * detectorSize + detectorAddress;
Ik zit echter ook op 74% van de 2kb die ik heb en ik weet nog niet precies waardoor die geconsumeerd worden, maar het zijn in ieder geval niet de rail objecten.
static int counter;void functie(int par1, int par2){ for (int tel=0; tel<10 tel++) { .. }}