Stap 6: Parallax en BlinkM
2. Sluit de BlinkM c (klok pin) analoge 5 van de Arduino.
3. Sluit de BlinkM aan 5V en GND.
4. download de BlinkM_funcs.h bestand -http://todbot.com/blinkm/example_code/BlinkMTester/BlinkM_funcs.h
5. Maak een nieuwe schets.
6. Maak een nieuwe tab en geef deze de naam BlinkM_funcs.h
7. Plak in de code van de BlinkM_funcs.h in het nieuwe tabblad
8. Plak de volgende code in de belangrijkste schets, compileren en uploaden. De code kan de gebruiker bepalen de BlinkM met de RFID-tags. Deze code regelt de BlinkM terwijl de RFID niet beschikbaar is. Als je geen voor deze periode account, de BlinkM zal doorlopen van de kleuren in plaats van laatste kleur geselecteerd wordt weergegeven. FadeToRGB roepen wanneer RFID niet beschikbaar is, wordt dit probleem opgelost:
#include < Wire.h > byte r = 0, g = 0, b = 0; int count = 0; prog_char rode [PROGMEM] = "[uw RFID tag-nummer]"; PROGMEM const char * [colorTags_table] = {} char tags_buffer [12]; NewSoftSerial RFID = NewSoftSerial(rxPin,txPin); VOID Setup {} Serial.begin(9600); void loop {} ongeldig sendRead() {} ongeldig readTag() {}
#include < BlinkM_funcs.h >
#include < NewSoftSerial.h >
#include < avr/pgmspace.h >
#define rxPin 2
#define txPin 3
int blinkm_addr = 0x09;
lange pt;
prog_char groen [PROGMEM] = "[uw RFID tag-nummer]";
prog_char blue [PROGMEM] = "[uw RFID tag-nummer]";
rood, groen, blauw};
BlinkM_begin();
BlinkM_setRGB (blinkm_addr, 0, 0,0);
RFID.begin(9600); / / RFID lezer Zuid pin aangesloten op seriële RX pin 9600 bps
}
BlinkM_setRGB(blinkm_addr,r,g,b);
sendRead();
readTag();
}
RFID.flush();
RFID.print("!RW");
RFID.print (0x0F, BYTE);
}
if(count<2) {}
byte-code [12];
int bytesread = 0;
Koord msg;
while(bytesread<12) {/ / lees 10 cijferige code
Dit blokkeert en moet idealiter een timeout
Als (RFID.available()) {}
code [bytesread] = RFID.read();
bytesread ++;
} else {}
Dit vaste naar de werkstuk
BlinkM_fadeToRGB (blinkm_addr, r, g, b) //call die tot vervaagt gewenste kleur
}
if(bytesread == 12) {}
Als (code[0]==0x0A) {}
Serial.Print ("TAG code is:");
for (int i = 1; ik < 11; i ++) {}
Serial.Print (code [i], HEX);
msg = msg + code [i];
}
Serial.println(msg);
if(Count==0) {}
r = 0;
b = 0;
g = 0;
}
for (int i = 0; ik < 3; i ++) {}
strcpy_P (tags_buffer, (char *) pgm_read_word (&(colorTags_table[i])));
if(msg==tags_buffer) {}
switch(i) {}
Case 0:
Serial.println("Red");
r = 255;
breken;
Case 1:
g = 255;
Serial.println("Green");
breken;
Case 2:
b = 255;
Serial.println("Blue");
breken;
}
}
} //end for-lus
} //end code [0] == 0x0A
} //end bytesread == 12
}
displayColor();
Als (millis ()-pt > 1500) {}
Graaf ++;
PT=Millis();
}
} //end als graaf
else {}
Graaf = 0;
}
}
ongeldig displayColor() {}
BlinkM_fadeToRGB (blinkm_addr, r, g, b);
}