Twitter dikt Box (6 / 8 steg)
Steg 6: Parallax och BlinkM
2. Anslut BlinkM c (klocka stift) för analog 5 av Arduino.
3. Anslut BlinkM till 5V och GND.
4. data överför den BlinkM_funcs.h fil -http://todbot.com/blinkm/example_code/BlinkMTester/BlinkM_funcs.h
5. skapa en ny skiss.
6. skapa en ny flik och namn den BlinkM_funcs.h
7. klistra in koden i den nya fliken BlinkM_funcs.h
8. klistra in följande kod i huvudsakliga skiss, kompilera och ladda upp. Koden används att styra BlinkM med RFID-taggar. Denna kod styr BlinkM medan RFID inte är tillgänglig. Gå igenom färger om du inte svarar för denna period, BlinkM kommer att snarare än visar den senaste färg valts. Ringa fadeToRGB när RFID inte finns åtgärdas detta problem:
#include < Wire.h >
#include < BlinkM_funcs.h >
#include < NewSoftSerial.h >
#include < avr/pgmspace.h >
#define rxPin 2
#define txPin 3
byte r = 0, g = 0 b = 0;
int blinkm_addr = 0x09;
int count = 0;
långa pt;
prog_char röd [PROGMEM] = "[din RFID-taggen nummer]";
prog_char grön [PROGMEM] = "[din RFID-taggen nummer]";
prog_char blå [PROGMEM] = "[din RFID-taggen nummer]";
PROGMEM const char * colorTags_table [] = {
röd, grön, blå};
char tags_buffer [12].
NewSoftSerial RFID = NewSoftSerial(rxPin,txPin);
void setup() {
Serial.BEGIN(9600);
BlinkM_begin();
BlinkM_setRGB (blinkm_addr, 0, 0,0);
RFID.begin(9600); / / RFID-läsare SOUT pin ansluten till seriell RX stift på 9600bps
}
void loop() {
BlinkM_setRGB(blinkm_addr,r,g,b);
sendRead();
readTag();
}
void sendRead() {
RFID.flush();
RFID.print("!RW");
RFID.print (0x0F, BYTE);
}
void readTag() {
IF(Count<2) {
byten koden [12].
int bytesread = 0;
Sträng msg;
While(bytesread<12) {/ / Läs 10-siffriga koden
Detta blockerar och bör helst ha en timeout
om (RFID.available()) {
koden [bytesread] = RFID.read();
bytesread ++;
} annat {
Detta löste problemet
BlinkM_fadeToRGB (blinkm_addr, r, g, b), //call som bleknar till önskad färg
}
IF(bytesread == 12) {
om (code[0]==0x0A) {
Serial.Print ("TAG koden är:");
för (int jag = 1; jag < 11; i ++) {
Serial.Print (kod [i], HEX).
MSG = msg + kod [i];
}
Serial.println(MSG);
IF(Count==0) {
r = 0;
b = 0;
g = 0;
}
för (int jag = 0; jag < 3; i ++) {
strcpy_P (tags_buffer, (char *) pgm_read_word (&(colorTags_table[i])));
IF(MSG==tags_buffer) {
Switch(i) {
fall 0:
Serial.println("Red");
r = 255;
bryta;
fall 1:
g = 255;
Serial.println("Green");
bryta;
fall 2:
b = 255;
Serial.println("Blue");
bryta;
}
}
} //end for-loop
} //end koden [0] == 0x0A
} //end bytesread == 12
}
displayColor();
om (millis ()-pt > 1500) {
greve ++;
PT=Millis();
}
} //end om greve
annat {
Count = 0;
}
}
void displayColor() {
BlinkM_fadeToRGB (blinkm_addr, r, g, b);
}