update hiển thị led 13 tren Lattepanda
This commit is contained in:
parent
5deb74ce6d
commit
5931745257
|
@ -1,4 +1,4 @@
|
||||||
+---------+
|
/* +---------+
|
||||||
+----------------------------------->READ TAGS+^------------------------------------------+
|
+----------------------------------->READ TAGS+^------------------------------------------+
|
||||||
| +--------------------+ |
|
| +--------------------+ |
|
||||||
| | | |
|
| | | |
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
|
|
||||||
// #include <Servo.h>
|
// #include <Servo.h>
|
||||||
|
|
||||||
#define COMMON_ANODE
|
//#define COMMON_ANODE
|
||||||
|
|
||||||
#ifdef COMMON_ANODE
|
#ifdef COMMON_ANODE
|
||||||
#define LED_ON LOW
|
#define LED_ON LOW
|
||||||
|
@ -55,6 +55,8 @@
|
||||||
#define LED_OFF LOW
|
#define LED_OFF LOW
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define ledView 13
|
||||||
|
|
||||||
#define redLed 3 // Set Led Pins
|
#define redLed 3 // Set Led Pins
|
||||||
#define greenLed 6
|
#define greenLed 6
|
||||||
#define blueLed 5
|
#define blueLed 5
|
||||||
|
@ -77,9 +79,12 @@ byte masterCard[4]; // Stores master card's ID read from EEPROM
|
||||||
#define RST_PIN 9
|
#define RST_PIN 9
|
||||||
MFRC522 mfrc522(SS_PIN, RST_PIN);
|
MFRC522 mfrc522(SS_PIN, RST_PIN);
|
||||||
|
|
||||||
|
bool Debug = false;
|
||||||
|
|
||||||
///////////////////////////////////////// Setup ///////////////////////////////////
|
///////////////////////////////////////// Setup ///////////////////////////////////
|
||||||
void setup() {
|
void setup() {
|
||||||
//Arduino Pin Configuration
|
//Arduino Pin Configuration
|
||||||
|
pinMode(ledView,OUTPUT);
|
||||||
pinMode(redLed, OUTPUT);
|
pinMode(redLed, OUTPUT);
|
||||||
pinMode(greenLed, OUTPUT);
|
pinMode(greenLed, OUTPUT);
|
||||||
pinMode(blueLed, OUTPUT);
|
pinMode(blueLed, OUTPUT);
|
||||||
|
@ -90,24 +95,28 @@ void setup() {
|
||||||
digitalWrite(redLed, LED_OFF); // Make sure led is off
|
digitalWrite(redLed, LED_OFF); // Make sure led is off
|
||||||
digitalWrite(greenLed, LED_OFF); // Make sure led is off
|
digitalWrite(greenLed, LED_OFF); // Make sure led is off
|
||||||
digitalWrite(blueLed, LED_OFF); // Make sure led is off
|
digitalWrite(blueLed, LED_OFF); // Make sure led is off
|
||||||
|
digitalWrite(ledView,LOW);
|
||||||
|
|
||||||
//Protocol Configuration
|
//Protocol Configuration
|
||||||
Serial.begin(9600); // Initialize serial communications with PC
|
Serial.begin(9600); // Initialize serial communications with PC
|
||||||
SPI.begin(); // MFRC522 Hardware uses SPI protocol
|
SPI.begin(); // MFRC522 Hardware uses SPI protocol
|
||||||
mfrc522.PCD_Init(); // Initialize MFRC522 Hardware
|
mfrc522.PCD_Init(); // Initialize MFRC522 Hardware
|
||||||
|
if(Debug ==true){
|
||||||
|
//If you set Antenna Gain to Max it will increase reading distance
|
||||||
|
mfrc522.PCD_SetAntennaGain(mfrc522.RxGain_max);
|
||||||
|
Serial.println(F("Access Control Example v0.1")); // For debugging purposes
|
||||||
|
}
|
||||||
|
|
||||||
//If you set Antenna Gain to Max it will increase reading distance
|
|
||||||
//mfrc522.PCD_SetAntennaGain(mfrc522.RxGain_max);
|
|
||||||
|
|
||||||
// Serial.println(F("Access Control Example v0.1")); // For debugging purposes
|
|
||||||
ShowReaderDetails(); // Show details of PCD - MFRC522 Card Reader details
|
ShowReaderDetails(); // Show details of PCD - MFRC522 Card Reader details
|
||||||
|
|
||||||
//Wipe Code - If the Button (wipeB) Pressed while setup run (powered on) it wipes EEPROM
|
//Wipe Code - If the Button (wipeB) Pressed while setup run (powered on) it wipes EEPROM
|
||||||
if (digitalRead(wipeB) == LOW) { // when button pressed pin should get low, button connected to ground
|
if (digitalRead(wipeB) == LOW) { // when button pressed pin should get low, button connected to ground
|
||||||
digitalWrite(redLed, LED_ON); // Red Led stays on to inform user we are going to wipe
|
digitalWrite(redLed, LED_ON); // Red Led stays on to inform user we are going to wipe
|
||||||
// Serial.println(F("Wipe Button Pressed"));
|
if (Debug ==1){
|
||||||
// Serial.println(F("You have 10 seconds to Cancel"));
|
Serial.println(F("Wipe Button Pressed"));
|
||||||
// Serial.println(F("This will be remove all records and cannot be undone"));
|
Serial.println(F("You have 10 seconds to Cancel"));
|
||||||
|
Serial.println(F("This will be remove all records and cannot be undone"));
|
||||||
|
}
|
||||||
bool buttonState = monitorWipeButton(10000); // Give user enough time to cancel operation
|
bool buttonState = monitorWipeButton(10000); // Give user enough time to cancel operation
|
||||||
if (buttonState == true && digitalRead(wipeB) == LOW) { // If button still be pressed, wipe EEPROM
|
if (buttonState == true && digitalRead(wipeB) == LOW) { // If button still be pressed, wipe EEPROM
|
||||||
// Serial.println(F("Starting Wiping EEPROM"));
|
// Serial.println(F("Starting Wiping EEPROM"));
|
||||||
|
@ -140,8 +149,11 @@ void setup() {
|
||||||
// You can keep other EEPROM records just write other than 143 to EEPROM address 1
|
// You can keep other EEPROM records just write other than 143 to EEPROM address 1
|
||||||
// EEPROM address 1 should hold magical number which is '143'
|
// EEPROM address 1 should hold magical number which is '143'
|
||||||
if (EEPROM.read(1) != 143) {
|
if (EEPROM.read(1) != 143) {
|
||||||
// Serial.println(F("No Master Card Defined"));
|
if (Debug ==1){
|
||||||
// Serial.println(F("Scan A PICC to Define as Master Card"));
|
Serial.println(F("No Master Card Defined"));
|
||||||
|
Serial.println(F("Scan A PICC to Define as Master Card"));
|
||||||
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
successRead = getID(); // sets successRead to 1 when we get read from reader otherwise 0
|
successRead = getID(); // sets successRead to 1 when we get read from reader otherwise 0
|
||||||
digitalWrite(blueLed, LED_ON); // Visualize Master Card need to be defined
|
digitalWrite(blueLed, LED_ON); // Visualize Master Card need to be defined
|
||||||
|
@ -154,18 +166,30 @@ void setup() {
|
||||||
EEPROM.write( 2 + j, readCard[j] ); // Write scanned PICC's UID to EEPROM, start from address 3
|
EEPROM.write( 2 + j, readCard[j] ); // Write scanned PICC's UID to EEPROM, start from address 3
|
||||||
}
|
}
|
||||||
EEPROM.write(1, 143); // Write to EEPROM we defined Master Card.
|
EEPROM.write(1, 143); // Write to EEPROM we defined Master Card.
|
||||||
// Serial.println(F("Master Card Defined"));
|
if (Debug ==1){
|
||||||
|
Serial.println(F("Master Card Defined"));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// Serial.println(F("-------------------"));
|
if (Debug ==1){
|
||||||
// Serial.println(F("Master Card's UID"));
|
Serial.println(F("-------------------"));
|
||||||
|
Serial.println(F("Master Card's UID"));
|
||||||
|
}
|
||||||
|
|
||||||
for ( uint8_t i = 0; i < 4; i++ ) { // Read Master Card's UID from EEPROM
|
for ( uint8_t i = 0; i < 4; i++ ) { // Read Master Card's UID from EEPROM
|
||||||
masterCard[i] = EEPROM.read(2 + i); // Write it to masterCard
|
masterCard[i] = EEPROM.read(2 + i); // Write it to masterCard
|
||||||
// Serial.print(masterCard[i], HEX);
|
if (Debug ==1){
|
||||||
|
Serial.print(masterCard[i], HEX);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// Serial.println("");
|
if (Debug ==1){
|
||||||
// Serial.println(F("-------------------"));
|
Serial.println("");
|
||||||
// Serial.println(F("Everything is ready"));
|
Serial.println(F("-------------------"));
|
||||||
// Serial.println(F("Waiting PICCs to be scanned"));
|
Serial.println(F("Everything is ready"));
|
||||||
|
Serial.println(F("Waiting PICCs to be scanned"));
|
||||||
|
}
|
||||||
|
|
||||||
cycleLeds(); // Everything ready lets give user some feedback by cycling leds
|
cycleLeds(); // Everything ready lets give user some feedback by cycling leds
|
||||||
// }
|
// }
|
||||||
// wdt_enable(WDTO_500MS);
|
// wdt_enable(WDTO_500MS);
|
||||||
|
@ -185,13 +209,18 @@ void loop () {
|
||||||
digitalWrite(greenLed, LED_OFF); // Make sure led is off
|
digitalWrite(greenLed, LED_OFF); // Make sure led is off
|
||||||
digitalWrite(blueLed, LED_OFF); // Make sure led is off
|
digitalWrite(blueLed, LED_OFF); // Make sure led is off
|
||||||
// Give some feedback
|
// Give some feedback
|
||||||
// Serial.println(F("Wipe Button Pressed"));
|
if (Debug ==1){
|
||||||
// Serial.println(F("Master Card will be Erased! in 10 seconds"));
|
Serial.println(F("Wipe Button Pressed"));
|
||||||
|
Serial.println(F("Master Card will be Erased! in 10 seconds"));
|
||||||
|
}
|
||||||
|
|
||||||
bool buttonState = monitorWipeButton(10000); // Give user enough time to cancel operation
|
bool buttonState = monitorWipeButton(10000); // Give user enough time to cancel operation
|
||||||
if (buttonState == true && digitalRead(wipeB) == LOW) { // If button still be pressed, wipe EEPROM
|
if (buttonState == true && digitalRead(wipeB) == LOW) { // If button still be pressed, wipe EEPROM
|
||||||
EEPROM.write(1, 0); // Reset Magic Number.
|
EEPROM.write(1, 0); // Reset Magic Number.
|
||||||
// Serial.println(F("Master Card Erased from device"));
|
if (Debug ==1){
|
||||||
// Serial.println(F("Please reset to re-program Master Card"));
|
Serial.println(F("Master Card Erased from device"));
|
||||||
|
Serial.println(F("Please reset to re-program Master Card"));
|
||||||
|
}
|
||||||
while (1);
|
while (1);
|
||||||
}
|
}
|
||||||
// Serial.println(F("Master Card Erase Cancelled"));
|
// Serial.println(F("Master Card Erase Cancelled"));
|
||||||
|
@ -266,8 +295,10 @@ void granted ( uint16_t setDelay) {
|
||||||
digitalWrite(redLed, LED_OFF); // Turn off red LED
|
digitalWrite(redLed, LED_OFF); // Turn off red LED
|
||||||
digitalWrite(greenLed, LED_ON); // Turn on green LED
|
digitalWrite(greenLed, LED_ON); // Turn on green LED
|
||||||
digitalWrite(relay, LOW); // Unlock door!
|
digitalWrite(relay, LOW); // Unlock door!
|
||||||
|
digitalWrite(ledView,LOW);
|
||||||
delay(setDelay); // Hold door lock open for given seconds
|
delay(setDelay); // Hold door lock open for given seconds
|
||||||
digitalWrite(relay, HIGH); // Relock door
|
digitalWrite(relay, HIGH); // Relock door
|
||||||
|
digitalWrite(ledView,HIGH);
|
||||||
delay(200); // Hold green LED on for a second
|
delay(200); // Hold green LED on for a second
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -350,6 +381,7 @@ void normalModeOn () {
|
||||||
digitalWrite(redLed, LED_OFF); // Make sure Red LED is off
|
digitalWrite(redLed, LED_OFF); // Make sure Red LED is off
|
||||||
digitalWrite(greenLed, LED_OFF); // Make sure Green LED is off
|
digitalWrite(greenLed, LED_OFF); // Make sure Green LED is off
|
||||||
digitalWrite(relay, HIGH); // Make sure Door is Locked
|
digitalWrite(relay, HIGH); // Make sure Door is Locked
|
||||||
|
digitalWrite(ledView,HIGH);
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////// Read an ID from EEPROM //////////////////////////////
|
//////////////////////////////////////// Read an ID from EEPROM //////////////////////////////
|
||||||
|
@ -570,6 +602,7 @@ void CheckButton()
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
digitalWrite(relay, HIGH); // Unlock door!
|
digitalWrite(relay, HIGH); // Unlock door!
|
||||||
|
digitalWrite(ledView,HIGH);
|
||||||
relay_stt = false;
|
relay_stt = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user