Étape 6: Parallaxe et BlinkM
2. Connectez la c BlinkM (broche 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 tags RFID. Ce code gère le BlinkM alors que la RFID n’est pas disponible. Si vous ne tiennent pas compte de cette période, le BlinkM va faire défiler les couleurs plutôt qu’afficher la dernière couleur sélectionnée. Appel fadeToRGB quand la RFID n’est pas disponible résout ce problème :
#include < Wire.h > octet r = 0, g = 0, b = 0 ; int count = 0 ; prog_char rouge [] PROGMEM = "[votre « RFID tag number]" ; Les const char PROGMEM * [] colorTags_table = {} char tags_buffer [12] ; NewSoftSerial RFID = NewSoftSerial(rxPin,txPin) ; void setup() {} Serial.Begin(9600) ; void loop() {} void sendRead() {} void readTag() {}
#include < BlinkM_funcs.h >
#include < NewSoftSerial.h >
#include < avr/pgmspace.h >
#define rxPin 2
#define txPin 3
int blinkm_addr = 0 x 09 ;
longue pt ;
prog_char vert [] PROGMEM = "[votre « RFID tag number]" ;
prog_char bleu [] PROGMEM = "[votre « RFID tag number]" ;
rouge, vert, bleu} ;
BlinkM_begin() ;
BlinkM_setRGB (blinkm_addr, 0, 0,0) ;
RFID.begin(9600); / / RFID reader SOUT broche reliée à la broche RX série à 9600bps
}
BlinkM_setRGB(blinkm_addr,r,g,b) ;
sendRead() ;
readTag() ;
}
RFID.flush() ;
RFID.print("!RW") ;
RFID.print (0x0F, BYTE) ;
}
if(Count<2) {}
byte-code [12] ;
bytesread int = 0 ;
String msg ;
while(bytesRead<12) {/ / lecture de 10 chiffres
cela bloque et devrait idéalement avoir un timeout
Si (RFID.available()) {}
Code [bytesread] = RFID.read() ;
bytesRead ++ ;
} else {}
Cela a résolu le problème
BlinkM_fadeToRGB (blinkm_addr, r, g, b); //call qui disparaît à désiré couleur
}
if(bytesRead == 12) {}
Si (code[0]==0x0A) {}
Serial.Print ("TAG code est:") ;
pour (int i = 1; i < 11; i ++) {}
Serial.Print (code [i], HEX) ;
MSG = msg + code [i] ;
}
Serial.println(MSG) ;
{if(Count==0)}
r = 0 ;
b = 0 ;
g = 0 ;
}
pour (int i = 0; i < 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 ;
rupture ;
cas 1 :
g = 255 ;
Serial.println("Green") ;
rupture ;
cas 2 :
b = 255 ;
Serial.println("Blue") ;
rupture ;
}
}
} //end boucle for
} //end code [0] == 0x0A
} //end bytesread == 12
}
displayColor() ;
Si (millis ()-pt > 1500) {}
Count ++ ;
PT=Millis() ;
}
} //end si comte
else {}
Count = 0 ;
}
}
void displayColor() {}
BlinkM_fadeToRGB (blinkm_addr, r, g, b) ;
}