Stap 3: Seeed en BlinkM
1. Sluit de BlinkM d-pin (pin van de gegevens) aan op de analoge 4 van de Arduino.
2. Sluit de BlinkM c-pin (pin van de klok) 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:
#include < Wire.h > vluchtige lange reader1 = 0;
#include "BlinkM_funcs.h"
vluchtige int reader1Count = 0;
#define blauw [uw id tag # hier]
#define rood [uw id tag # hier]
#define groene [uw id tag # hier]
lange prevTime;
int card1;
int card2;
int count = 0;
lange dec;
int kleur;
byte r, g, b;
byte addr = 0x09;
ongeldig reader1One(void) {}
reader1Count ++;
reader1 = reader1 << 1;
reader1 | = 1;
}
ongeldig reader1Zero(void) {}
reader1Count ++;
reader1 = reader1 << 1;
}
VOID Setup {}
BlinkM_beginWithPower();
Serial.begin(9600);
Pin wijzigen interrupt service routines van de Wiegand RFID-lezers hechten
attachInterrupt (0, reader1Zero, RISING); //DATA0 naar pin 2
attachInterrupt (1, reader1One, stijgt); Data1 aan op pin 3
delay(10);
de interrupt in de Atmel processor slaat dan de eerste puls van de negitave zoals de ingangen al hoog zijn,
dus dit een impuls aan de lezer input lijn geeft om de interrupts goed werkt.
Schakel vervolgens uit de lezer variabelen.
De lezers zijn open collector normaal zitten aan een, dus dit OK is
for (int i = 2; ik < 4; i ++) {}
pinMode (ik, OUTPUT);
inschakelen van interne pull up veroorzaakt een
digitalWrite (i, hoge);
uitschakelen interne pull up waardoor nul en dus een interrupt
digitalWrite (i, laag);
pinMode (i, ingang);
digitalWrite (i, hoge); interne pull up inschakelen
}
delay(10);
de lezer invoervariabelen op nul zetten
reader1 = 0;
reader1Count = 0;
}
void loop {}
readCard();
}
ongeldig readCard() {}
if(count<2) {}
Als (reader1Count > = 26) {}
int serialNumber = (reader1 >> 1) & 0x3fff;
int code = (reader1 >> 17) & 0x3ff;
DEC = (reader1 & 0xfffffff);
if(Count==0) {}
r = 0;
b = 0;
g = 0;
}
Serial.Print("DEC=");
Serial.println(DEC);
switch(DEC) {}
Case rood:
r = 255;
breken;
Case groen:
g = 255;
breken;
Case blauw:
b = 255;
breken;
standaard:
kleur = 0;
Serial.Print ("nieuwe tag");
Serial.Print(reader1& 0xFFFFFFF);
}
displayColor();
reader1 = 0;
reader1Count = 0;
} else if(reader1Count == 0) {}
displayColor();
}
Als (millis ()-prevTime > 2000) {}
Graaf ++;
prevTime=millis();
}
} else {}
Graaf = 0;
}
}
ongeldig displayColor() {}
BlinkM_fadeToRGB(addr,r,g,b);
}