Étape 3: Seeed et BlinkM
1. Brancher la fiche de d de BlinkM (la broche de données) pour les 4 analogiques de l’Arduino.
2. Brancher la fiche de ch. de BlinkM (le pin de l’horloge) à 5 analogiques de l’Arduino.
3. connecter le BlinkM à 5V et GND.
4. Téléchargez le BlinkM_funcs.h fichier -http://todbot.com/blinkm/example_code/BlinkMTester/BlinkM_funcs.h
5. créer une nouvelle esquisse.
6. créer un nouvel onglet et nommez-le BlinkM_funcs.h
7. coller le code BlinkM_funcs.h dans le nouvel onglet
8. collez le code suivant dans le sketch principal, la compilation et l’upload. Le code permet à l’utilisateur de contrôler la BlinkM avec les étiquettes RFID :
#include < Wire.h > volatils reader1 long = 0 ;
#include « BlinkM_funcs.h »
volatile int reader1Count = 0 ;
#define bleu [votre id tag # ici]
#define rouge [votre id tag # ici]
#define vert [votre id tag # ici]
long prevTime ;
carte1 int ;
card2 int ;
int count = 0 ;
long déc ;
couleur intérieurs ;
octet r, g, b ;
addr octet = 0 x 09 ;
void reader1One(void) {}
reader1Count ++ ;
Reader1 = reader1 << 1 ;
Reader1 | = 1 ;
}
void reader1Zero(void) {}
reader1Count ++ ;
Reader1 = reader1 << 1 ;
}
void setup() {}
BlinkM_beginWithPower() ;
Serial.Begin(9600) ;
Attache broche changement interrupt service routine des lecteurs Wiegand RFID
attachInterrupt (0, reader1Zero, RISING); //DATA0 de la broche 2
attachInterrupt 1, reader1One, RISING ; Data1 à la broche 3
Delay(10) ;
l’interruption dans le processeur Atmel manque à la première impulsion de negitave que les entrées sont déjà élevées,
donc, cela donne une impulsion à la ligne d’entrée du lecteur pour obtenir les interruptions fonctionne correctement.
Ensuite, vider les variables de lecteur.
Les lecteurs sont à collecteur ouvert assis normalement à un donc c’est OK
pour (int i = 2; i < 4; i ++) {}
pinMode (i, sortie) ;
activez l’arrachage par causer un
digitalWrite (i, HIGH) ;
désactiver l’arrachage par causer de zéro et donc une interruption
digitalWrite (i, faible) ;
pinMode (i, entrée) ;
digitalWrite (i, HIGH) ; activez l’arrachage des
}
Delay(10) ;
mettre les variables d’entrée lecteur à zéro
Reader1 = 0 ;
reader1Count = 0 ;
}
void loop() {}
readCard() ;
}
void readCard() {}
if(Count<2) {}
Si (reader1Count > = 26) {}
serialNumber int = (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)}
boitier rouge :
r = 255 ;
rupture ;
boitier vert :
g = 255 ;
rupture ;
boîtier bleu :
b = 255 ;
rupture ;
par défaut :
couleur = 0 ;
Serial.Print (« nouveau tag ») ;
Serial.Print(Reader1& 0xFFFFFFF) ;
}
displayColor() ;
Reader1 = 0 ;
reader1Count = 0 ;
} else if(reader1Count == 0) {}
displayColor() ;
}
Si (millis ()-prevTime > 2000) {}
Count ++ ;
prevTime=millis() ;
}
} else {}
Count = 0 ;
}
}
void displayColor() {}
BlinkM_fadeToRGB(addr,r,g,b) ;
}