Arduino Uno R3 1602 LCD säkra lås med joystick kontroll (2 / 3 steg)
Steg 2: Skriva koden
Du kan hämta Arduino IDE från arduino.cc
Den är baserad på C/Java.
Här är koden jag använde:
/ * 1602 LCD 4-siffriga lösenordet kontrolleras av joystick
*/
definiera variabeln att lagra siffror markerade & positionen för markören
int cursorPos;
int gräva [4];
inkludera LCD bibliotek
#include < LiquidCrystal.h >
initiera LCD-pins
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
huvudsakliga setup-funktionen körs en gång
void setup() {
installera LCD-skärm
LCD.BEGIN (16, 2);
LCD.Print ("Ange lösenord:");
lcd.setCursor(6,1);
LCD.Print("0000");
LCD.cursor();
lcd.noBlink();
lcd.setCursor(6,1);
ställa in värden för variabler
cursorPos = 0;
för (int jag = 0; jag < = 3; i ++) {
gräva [i] = 0;
}
blinka LED ombord
digitalWrite 13, låg.
Delay(500);
digitalWrite 13, hög.
}
loop kod körs kontinuerligt medan Arduino har makt
void loop() {
om (digitalRead(13) == hög) {
medan (digitalRead(13) == hög) {//anything i denna loop kommer att köra tills joysticken trycks i
int sensorX = analogRead(A0); få avläsningar för x, y-axel rörelse
int sensoriska = analogRead(A1);
flyta angleX = sensorX * (180,0 / 1023.0); konvertera värdet till vinkel
float angleY = sensoriska * (180,0 / 1023.0);
om (angleX > 100) {
moveRight();
Delay(500);
} else om (angleX < 70) {
moveLeft();
Delay(500);
} annat {
om (angleY > 105) {
decrease(cursorPos);
Delay(250);
} else om (angleY < 75) {
increase(cursorPos);
Delay(250);
}
}
}
}
Detta går när knappen är pressar
checkCode();
Delay(2000);
Setup();
}
void moveRight() {
om (cursorPos == 3) {
lcd.setCursor (6, 1);
cursorPos = 0;
} annat {
int en = cursorPos + 7.
lcd.setCursor (a, 1).
cursorPos = cursorPos + 1.
}
}
void moveLeft() {
om (cursorPos == 0) {
lcd.setCursor (9, 1);
cursorPos = 3;
} annat {
int b = cursorPos + 5.
lcd.setCursor (b, 1);
cursorPos = cursorPos - 1;
}
}
void ökning (int cursorPos) {
om (gräva [cursorPos] == 9) {
gräva [cursorPos] = 0;
} annat {
gräva [cursorPos] = gräva [cursorPos] + 1.
}
int c = cursorPos + 6.
lcd.setCursor c, 1.
LCD.Print(dig[cursorPos]);
lcd.setCursor c, 1.
}
void minska (int cursorPos) {
om (gräva [cursorPos] == 0) {
gräva [cursorPos] = 9.
} annat {
gräva [cursorPos] = gräva [cursorPos] - 1.
}
int c = cursorPos + 6.
lcd.setCursor c, 1.
LCD.Print(dig[cursorPos]);
lcd.setCursor c, 1.
}
ändra denna del för ditt eget lösenord
Jag har plockat 1234...
void checkCode() {
om (gräva [0] == 1 & & gräva [1] == 2 & & gräva [2] == 3 & & gräva [3] == 4) {//Change '1', '2', '3', ' 4' på denna linje!
lcd.setCursor(4,1);
LCD.Print("correct!");
} annat {
lcd.setCursor(5,1);
LCD.Print("Wrong!");
}
}