Twitter dikt Box (3 / 8 steg)
Steg 3: Seeed och BlinkM
1. Anslut BlinkM d pin (data stift) till analog 4 av Arduino.
2. Anslut BlinkM c PIN-koden (pin klocka) till analoga 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 gör att användaren kan styra BlinkM med RFID-taggar:
#include < Wire.h > flyktiga lång reader1 = 0; #define blå [ditt id taggen # här] lång prevTime; långa dec; byte r, g, b; byte addr = 0x09; void reader1One(void) { void reader1Zero(void) { void setup() { Bifoga pin change interrupt service rutiner från Wiegand RFID läsare avbrottet i Atmel processor missar ut den första negitave pulsen som insatsvarorna som redan är hög, Aktivera inre dra upp orsakar en
#include "BlinkM_funcs.h"
flyktiga int reader1Count = 0;
#define röd [ditt id taggen # här]
#define gröna [ditt id taggen # här]
int card1;
int card2;
int count = 0;
int färg;
reader1Count ++;
reader1 = reader1 << 1.
reader1 | = 1;
}
reader1Count ++;
reader1 = reader1 << 1.
}
BlinkM_beginWithPower();
Serial.BEGIN(9600);
attachInterrupt (0, reader1Zero, RISING); //DATA0 till stift 2
attachInterrupt (1, reader1One, stiger). Data1 till stift 3
Delay(10);
så detta ger en puls till läsaren inmatningsraden att få avbrotten fungerar korrekt.
Avmarkera sedan ut läsaren variablerna.
Läsarna är öppen kollektor sitter normalt på en en så detta är OK
för (int jag = 2; jag < 4; i ++) {
pinMode (i, matas);
digitalWrite i, hög.
Inaktivera inre dra upp orsakar noll och thus ett avbrott
digitalWrite (i, låg);
pinMode (i, ingång);
digitalWrite i, hög. Aktivera inre dra upp
}
Delay(10);
sätta den läsare ingående variablerna till noll
reader1 = 0;
reader1Count = 0;
}
void loop() {
readCard();
}
void readCard() {
IF(Count<2) {
om (reader1Count > = 26) {
int serialNumber = (reader1 >> 1) & 0x3fff;
int siteCode = (reader1 >> 17) & 0x3ff;
dec = (reader1 & 0xfffffff);
IF(Count==0) {
r = 0;
b = 0;
g = 0;
}
Serial.Print("dec=");
Serial.println(DEC);
Switch(DEC) {
fall röd:
r = 255;
bryta;
pärlemor grön
g = 255;
bryta;
fall blå:
b = 255;
bryta;
standard:
färg = 0;
Serial.Print ("nya tag");
Serial.Print(reader1& 0xFFFFFFF);
}
displayColor();
reader1 = 0;
reader1Count = 0;
} annat if(reader1Count == 0) {
displayColor();
}
om (millis ()-prevTime > 2000) {
greve ++;
prevTime=millis();
}
} annat {
Count = 0;
}
}
void displayColor() {
BlinkM_fadeToRGB(addr,r,g,b);
}