How do iI fill an empty array with the values from a sensor and compare it to another given array iI filled before
I'm designing a safe lock of 4 digits, but the password is in terms of colors, I have 3 colors. we are obliged to use a grayscale sensor (SKU: SEN0147).:
theThe assignment is as follows...:
Write a programa program on ArduinoArduino that will be used as a safe lockwill be used as a safe lock. Consider having 3 colors black white andhaving 3 colors black white and grey. Black =0= 0, Red =1 and White=2= 1 and White = 2.
• When the microcontroller is turned on, the safe is lockedis locked. The Serial Monitor should
display display:
"System is online."
• The combinationcombination lock should be saved in an arrayshould be saved in an array of integers calledintegers called arr_code.
• The user hasuser has 3 trials to opentrials to open the safesafe
• The system will wait forsystem will wait for the user to enter 4 colorsto enter 4 colors. To enter a colorenter a color, the grayscale sensor
should bethe grayscale sensor should be place on top of the desired color. Once ready the push button is pressed.
Once Once released, the colorcolor is saved in another array called arr_user_code.
theThe program iI wrote is the following:
imI'm sorry for having a lot of functions not used and a lot of canceled algorythmsalgorithms by remarks but its my scratch. the issue is that my program is always giving me a wrong passcode even if its correct. canCan you help me find the problem please? thankThank you in advance...
How do i fill an empty array with the values from a sensor and compare it to another given array i filled before
I'm designing a safe lock of 4 digits, but the password is in terms of colors, I have 3 colors. we are obliged to use a grayscale sensor (SKU: SEN0147).:
the assignment is as follows...
Write a program on Arduino that will be used as a safe lock. Consider having 3 colors black white and grey. Black =0, Red =1 and White=2.
• When the microcontroller is turned on, the safe is locked. The Serial Monitor should
display:
"System is online."
• The combination lock should be saved in an array of integers called arr_code.
• The user has 3 trials to open the safe
• The system will wait for the user to enter 4 colors. To enter a color, the grayscale sensor
should be place on top of the desired color. Once ready the push button is pressed.
Once released, the color is saved in another array called arr_user_code.
the program i wrote is the following:
im sorry for having a lot of functions not used and a lot of canceled algorythms by remarks but its my scratch. the issue is that my program is always giving me a wrong passcode even if its correct. can you help me find the problem please? thank you in advance...
How do I fill an empty array with the values from a sensor and compare it to another given array I filled before
I'm designing a safe lock of 4 digits, but the password is in terms of colors, I have 3 colors. we are obliged to use a grayscale sensor (SKU: SEN0147).
The assignment is as follows:
Write a program on Arduino that will be used as a safe lock. Consider having 3 colors black white and grey. Black = 0, Red = 1 and White = 2.
• When the microcontroller is turned on, the safe is locked. The Serial Monitor should display: "System is online."
• The combination lock should be saved in an array of integers called arr_code.
• The user has 3 trials to open the safe
• The system will wait for the user to enter 4 colors. To enter a color, the grayscale sensor should be place on top of the desired color. Once ready the push button is pressed. Once released, the color is saved in another array called arr_user_code.
The program I wrote is the following:
I'm sorry for having a lot of functions not used and a lot of canceled algorithms by remarks but its my scratch. the issue is that my program is always giving me a wrong passcode even if its correct. Can you help me find the problem please? Thank you in advance.
Write a program on Arduino that will be used as a safe lock. Consider having 3 colors black white and grey. Black =0, Red =1 and White=2. •
• When the microcontroller is turned on, the safe is locked. The Serial Monitor should
display:
"System is online."
•
• The combination lock should be saved in an array of integers called arr_code.
•
• The user has 3 trials to open the safe •the safe
• The system will wait for the user to enter 4 colors. To enter a color, the grayscale sensor
should be place on top of the desired color. Once ready the push button is pressed.
Once released, the color is saved in another array called arr_user_code.
•
• Once 4 colors are entered, the system should test automatically if the code entered by
the user is equal to the code saved in arr_code.
•
• If the wrong code is entered, the serial monitor displays: "Wrong Code. Try Again." •
• If the user enters the wrong code 3 times in a row the system is locked and a message is
displayed:
"System "System Locked."
•
• If the correct code is inserted, the Led on pin 13 is turned on. •
• The combinations entered by the user should be displayed on the Serial Monitor. The Arduino program should be clear, separated into functions and documented.
the program i wrote is the following:
char led_pin = 13; char pb_pin = 2; int gs_pin = A0;
int arr_code[4] = {894, 894, 894, 894};//the brightness of the flash light im using is giving 894 value so im using it for testing purpose
int arr_user_code[4];
int counter; int Lock_Interval = 2500;
char trigger = false; bool equal = true; char led_state = false;
int Array_Compare(int *a, int *b) { for (int i = 0; i < 4; i++) { if (a[i] != b[i]) return 0; else return 1; } }
void Button_Wait(int buttonPin) {//function to sense if button is pressed int curr_state; int prev_state;
while (1) { prev_state = curr_state; curr_state = digitalRead(buttonPin); if (curr_state != prev_state) { if (curr_state == false) { delay(10); return; } } } }
int GS_Value(int gsPin) { int gs_value = analogRead(gs_pin); return gs_value; }
void setup() { // put your setup code here, to run once: pinMode(led_pin, OUTPUT); pinMode(pb_pin, INPUT);
Serial.begin(9600);
digitalWrite(led_pin, false); }
void loop() { // put your main code here, to run repeatedly:
Serial.println("System Online"); Serial.println("Please Enter Passcode:");
for (counter = 0; counter < 3; counter++) { for (int i = 0; i < 4; i++) {//uploading user array with gs values Button_Wait(pb_pin); arr_user_code[i] = analogRead(gs_pin); Serial.print(analogRead(gs_pin));//printing values on monitor Serial.print(" "); }
char led_pin = 13;
char pb_pin = 2;
int gs_pin = A0;
//the brightness of the flash light im using is giving 894 value so im using it for testing purpose
int arr_code[4] = { 894, 894, 894, 894 };
int arr_user_code[4];
int counter;
int Lock_Interval = 2500;
char trigger = false;
bool equal = true;
char led_state = false;
int Array_Compare(int *a, int *b) {
for (int i = 0; i < 4; i++) {
if (a[i] != b[i]) return 0;
else return 1;
}
}
void Button_Wait(int buttonPin) {//function to sense if button is pressed
int curr_state;
int prev_state;
while (1) {
prev_state = curr_state;
curr_state = digitalRead(buttonPin);
if (curr_state != prev_state) {
if (curr_state == false) {
delay(10);
return;
}
}
}
}
int GS_Value(int gsPin) {
int gs_value = analogRead(gs_pin);
return gs_value;
}
void setup() {
// put your setup code here, to run once:
pinMode(led_pin, OUTPUT);
pinMode(pb_pin, INPUT);
Serial.begin(9600);
digitalWrite(led_pin, false);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("System Online");
Serial.println("Please Enter Passcode:");
for (counter = 0; counter < 3; counter++) {
for (int i = 0; i < 4; i++) {//uploading user array with gs values
Button_Wait(pb_pin);
arr_user_code[i] = analogRead(gs_pin);
Serial.print(analogRead(gs_pin));//printing values on monitor
Serial.print(" ");
}
Serial.println(" ");
for (int i = 0; i < 4 && equal ;equal; i++) {//testing if passcode is true
if (arr_user_code[i] != arr_code[i]) {
equal = false;
}
else equal = true;
}
if (equal == true) {
Serial.println("System Unlocked");
digitalWrite(led_pin, true);
}
else if (equal == false) {
Serial.println("Wrong Passcode. Try Again");
}
}
/*Array_Compare( arr_user_code, arr_code);
if (Array_Compare) Serial.println("System UNLOCKED");
else Serial.println("Wrong Passcode. Try Again");
*/
if (trigger == false) {//for locking the system
Serial.println("System LOCKED!");
while (1) {
Lock_Interval = Lock_Interval * 2;//CHANGE TO MINUTES LATER ON!!
delay(Lock_Interval);
return;
}
}
delay(100);
}
}
/*Array_Compare( arr_user_code, arr_code); if (Array_Compare) Serial.println("System UNLOCKED"); else Serial.println("Wrong Passcode. Try Again"); */ if (trigger == false) {//for locking the system Serial.println("System LOCKED!"); while (1) { Lock_Interval = Lock_Interval * 2;//CHANGE TO MINUTES LATER ON!! delay(Lock_Interval); return; } } delay(100); }
Write a program on Arduino that will be used as a safe lock.
Consider having 3 colors black white and grey. Black =0, Red =1 and White=2.
• When the microcontroller is turned on, the safe is locked. The Serial Monitor should
display:
"System is online."
• The combination lock should be saved in an array of integers called arr_code.
• The user has 3 trials to open the safe
• The system will wait for the user to enter 4 colors. To enter a color, the grayscale sensor
should be place on top of the desired color. Once ready the push button is pressed.
Once released, the color is saved in another array called arr_user_code.
• Once 4 colors are entered, the system should test automatically if the code entered by
the user is equal to the code saved in arr_code.
• If the wrong code is entered, the serial monitor displays: "Wrong Code. Try Again."
• If the user enters the wrong code 3 times in a row the system is locked and a message is
displayed:
"System Locked."
• If the correct code is inserted, the Led on pin 13 is turned on.
• The combinations entered by the user should be displayed on the Serial Monitor.
The Arduino program should be clear, separated into functions and documented.
the program i wrote is the following:
char led_pin = 13; char pb_pin = 2; int gs_pin = A0;
int arr_code[4] = {894, 894, 894, 894};//the brightness of the flash light im using is giving 894 value so im using it for testing purpose
int arr_user_code[4];
int counter; int Lock_Interval = 2500;
char trigger = false; bool equal = true; char led_state = false;
int Array_Compare(int *a, int *b) { for (int i = 0; i < 4; i++) { if (a[i] != b[i]) return 0; else return 1; } }
void Button_Wait(int buttonPin) {//function to sense if button is pressed int curr_state; int prev_state;
while (1) { prev_state = curr_state; curr_state = digitalRead(buttonPin); if (curr_state != prev_state) { if (curr_state == false) { delay(10); return; } } } }
int GS_Value(int gsPin) { int gs_value = analogRead(gs_pin); return gs_value; }
void setup() { // put your setup code here, to run once: pinMode(led_pin, OUTPUT); pinMode(pb_pin, INPUT);
Serial.begin(9600);
digitalWrite(led_pin, false); }
void loop() { // put your main code here, to run repeatedly:
Serial.println("System Online"); Serial.println("Please Enter Passcode:");
for (counter = 0; counter < 3; counter++) { for (int i = 0; i < 4; i++) {//uploading user array with gs values Button_Wait(pb_pin); arr_user_code[i] = analogRead(gs_pin); Serial.print(analogRead(gs_pin));//printing values on monitor Serial.print(" "); }
Serial.println(" ");
for (int i = 0; i < 4 && equal ; i++) {//testing if passcode is true
if (arr_user_code[i] != arr_code[i]) {
equal = false;
}
else equal = true;
}
if (equal == true) {
Serial.println("System Unlocked");
digitalWrite(led_pin, true);
}
else if (equal == false) {
Serial.println("Wrong Passcode. Try Again");
}
}
/*Array_Compare( arr_user_code, arr_code); if (Array_Compare) Serial.println("System UNLOCKED"); else Serial.println("Wrong Passcode. Try Again"); */ if (trigger == false) {//for locking the system Serial.println("System LOCKED!"); while (1) { Lock_Interval = Lock_Interval * 2;//CHANGE TO MINUTES LATER ON!! delay(Lock_Interval); return; } } delay(100); }
Write a program on Arduino that will be used as a safe lock. Consider having 3 colors black white and grey. Black =0, Red =1 and White=2.
• When the microcontroller is turned on, the safe is locked. The Serial Monitor should
display:
"System is online."
• The combination lock should be saved in an array of integers called arr_code.
• The user has 3 trials to open the safe
• The system will wait for the user to enter 4 colors. To enter a color, the grayscale sensor
should be place on top of the desired color. Once ready the push button is pressed.
Once released, the color is saved in another array called arr_user_code.
• Once 4 colors are entered, the system should test automatically if the code entered by
the user is equal to the code saved in arr_code.
• If the wrong code is entered, the serial monitor displays: "Wrong Code. Try Again."
• If the user enters the wrong code 3 times in a row the system is locked and a message is
displayed: "System Locked."
• If the correct code is inserted, the Led on pin 13 is turned on.
• The combinations entered by the user should be displayed on the Serial Monitor. The Arduino program should be clear, separated into functions and documented.
the program i wrote is the following:
char led_pin = 13;
char pb_pin = 2;
int gs_pin = A0;
//the brightness of the flash light im using is giving 894 value so im using it for testing purpose
int arr_code[4] = { 894, 894, 894, 894 };
int arr_user_code[4];
int counter;
int Lock_Interval = 2500;
char trigger = false;
bool equal = true;
char led_state = false;
int Array_Compare(int *a, int *b) {
for (int i = 0; i < 4; i++) {
if (a[i] != b[i]) return 0;
else return 1;
}
}
void Button_Wait(int buttonPin) {//function to sense if button is pressed
int curr_state;
int prev_state;
while (1) {
prev_state = curr_state;
curr_state = digitalRead(buttonPin);
if (curr_state != prev_state) {
if (curr_state == false) {
delay(10);
return;
}
}
}
}
int GS_Value(int gsPin) {
int gs_value = analogRead(gs_pin);
return gs_value;
}
void setup() {
// put your setup code here, to run once:
pinMode(led_pin, OUTPUT);
pinMode(pb_pin, INPUT);
Serial.begin(9600);
digitalWrite(led_pin, false);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("System Online");
Serial.println("Please Enter Passcode:");
for (counter = 0; counter < 3; counter++) {
for (int i = 0; i < 4; i++) {//uploading user array with gs values
Button_Wait(pb_pin);
arr_user_code[i] = analogRead(gs_pin);
Serial.print(analogRead(gs_pin));//printing values on monitor
Serial.print(" ");
}
Serial.println(" ");
for (int i = 0; i < 4 && equal; i++) {//testing if passcode is true
if (arr_user_code[i] != arr_code[i]) {
equal = false;
}
else equal = true;
}
if (equal == true) {
Serial.println("System Unlocked");
digitalWrite(led_pin, true);
}
else if (equal == false) {
Serial.println("Wrong Passcode. Try Again");
}
}
/*Array_Compare( arr_user_code, arr_code);
if (Array_Compare) Serial.println("System UNLOCKED");
else Serial.println("Wrong Passcode. Try Again");
*/
if (trigger == false) {//for locking the system
Serial.println("System LOCKED!");
while (1) {
Lock_Interval = Lock_Interval * 2;//CHANGE TO MINUTES LATER ON!!
delay(Lock_Interval);
return;
}
}
delay(100);
}
How do i fill an empty array with the values from a sensor and compare it to another given array i filled before
I'm designing a safe lock of 4 digits, but the password is in terms of colors, I have 3 colors. we are obliged to use a grayscale sensor (SKU: SEN0147).:
the assignment is as follows...
Write a program on Arduino that will be used as a safe lock.
Consider having 3 colors black white and grey. Black =0, Red =1 and White=2.
• When the microcontroller is turned on, the safe is locked. The Serial Monitor should
display:
"System is online."
• The combination lock should be saved in an array of integers called arr_code.
• The user has 3 trials to open the safe
• The system will wait for the user to enter 4 colors. To enter a color, the grayscale sensor
should be place on top of the desired color. Once ready the push button is pressed.
Once released, the color is saved in another array called arr_user_code.
• Once 4 colors are entered, the system should test automatically if the code entered by
the user is equal to the code saved in arr_code.
• If the wrong code is entered, the serial monitor displays: "Wrong Code. Try Again."
• If the user enters the wrong code 3 times in a row the system is locked and a message is
displayed:
"System Locked."
• If the correct code is inserted, the Led on pin 13 is turned on.
• The combinations entered by the user should be displayed on the Serial Monitor.
The Arduino program should be clear, separated into functions and documented.
the program i wrote is the following:
char led_pin = 13; char pb_pin = 2; int gs_pin = A0;
int arr_code[4] = {894, 894, 894, 894};//the brightness of the flash light im using is giving 894 value so im using it for testing purpose
int arr_user_code[4];
int counter; int Lock_Interval = 2500;
char trigger = false; bool equal = true; char led_state = false;
int Array_Compare(int *a, int *b) { for (int i = 0; i < 4; i++) { if (a[i] != b[i]) return 0; else return 1; } }
void Button_Wait(int buttonPin) {//function to sense if button is pressed int curr_state; int prev_state;
while (1) { prev_state = curr_state; curr_state = digitalRead(buttonPin); if (curr_state != prev_state) { if (curr_state == false) { delay(10); return; } } } }
int GS_Value(int gsPin) { int gs_value = analogRead(gs_pin); return gs_value; }
void setup() { // put your setup code here, to run once: pinMode(led_pin, OUTPUT); pinMode(pb_pin, INPUT);
Serial.begin(9600);
digitalWrite(led_pin, false); }
void loop() { // put your main code here, to run repeatedly:
Serial.println("System Online"); Serial.println("Please Enter Passcode:");
for (counter = 0; counter < 3; counter++) { for (int i = 0; i < 4; i++) {//uploading user array with gs values Button_Wait(pb_pin); arr_user_code[i] = analogRead(gs_pin); Serial.print(analogRead(gs_pin));//printing values on monitor Serial.print(" "); }
Serial.println(" ");
for (int i = 0; i < 4 && equal ; i++) {//testing if passcode is true
if (arr_user_code[i] != arr_code[i]) {
equal = false;
}
else equal = true;
}
if (equal == true) {
Serial.println("System Unlocked");
digitalWrite(led_pin, true);
}
else if (equal == false) {
Serial.println("Wrong Passcode. Try Again");
}
}
/*Array_Compare( arr_user_code, arr_code); if (Array_Compare) Serial.println("System UNLOCKED"); else Serial.println("Wrong Passcode. Try Again"); */ if (trigger == false) {//for locking the system Serial.println("System LOCKED!"); while (1) { Lock_Interval = Lock_Interval * 2;//CHANGE TO MINUTES LATER ON!! delay(Lock_Interval); return; } } delay(100); }
im sorry for having a lot of functions not used and a lot of canceled algorythms by remarks but its my scratch. the issue is that my program is always giving me a wrong passcode even if its correct. can you help me find the problem please? thank you in advance...