Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Ime i prezime se unose serijski (ime razmak prezime), treba:
- a) ispisati username u gornju liniju LCDa a username je ime i
- prvo slovo prezimena, b) ispisati password u donju liniju a
- password su ime prezime unazad, c) pritiskom tastera UP da se
- password menja u zvezdice, d) pritiskom taster SELECT da se obrise
- sve sa ekrana (clear) i da se posalje zahtev za unos novog imena i
- prezimena. Otprilike ovako nekako
- */
- #include <LiquidCrystal.h>
- LiquidCrystal lcd(8,9,4,5,6,7);
- String imeprez;
- String ime;
- String prezime;
- String username;
- bool dozvola = false; // dozvola, debouncer, da ne reaguje na drzanje, nego samo stisak.
- String prvi;
- String drugi;
- String Poruke[3] = {"", "", ""};
- bool dozvolaUpisa = true;
- String pass;
- int prezindex = 0;
- byte ocitajTaster(){
- int tmp = analogRead(0);
- if(tmp > 720 && tmp < 770){ // SELECT
- return 1;
- }
- if(tmp > 450 && tmp < 500 ){ // LEFT
- return 2;
- }
- if(tmp > 130 && tmp < 180){ // UP
- return 3;
- }
- if(tmp > 300 && tmp < 350){ // DOWN
- return 4;
- }
- if(tmp < 50){ // RIGHT
- return 5;
- }
- return 0; // nije pritisnut nijedan taster.
- }
- void setup(){
- Serial.begin(9600);
- lcd.begin(16, 2);
- lcd.setCursor(16,2);
- }
- void pauza(){
- while(!Serial.available()){ }
- }
- void unos(String &tmp){
- pauza();
- while(Serial.available()){
- tmp = Serial.readString();
- }
- }
- void poruka(String msg){
- Serial.println(msg);
- }
- void usernamef(){
- for(int i = 0; i < imeprez.length(); i++){
- if(imeprez[i] == ' ') {
- prezindex = i + 1;
- break;
- } else {
- ime += imeprez[i];
- }
- }
- username = ime + imeprez[prezindex];
- }
- void passf(){
- String tmp;
- //String imetmp;
- //String preztmp;
- for(int i = ime.length() - 1; i >= 0 ; i--){
- tmp += ime[i];
- }
- // oduzimamo dva zato sto imamo enter "\n" na kraju, jedno oduzimanje zbog njega
- // i jedno zbog opsega stringa, da ne izadjemo iz opsega...
- for(int i = imeprez.length() - 2; i >= imeprez.length() - ime.length() - 1; i--) {
- tmp += imeprez[i];
- }
- pass = tmp;
- // poruka("Duzinaaaa:" + String(pass.length()));
- }
- String zvezdice(int len) {
- String tmp;
- for(int i = 0; i < len; i++) {
- tmp += "*";
- }
- return tmp;
- }
- void loop(){
- if(dozvolaUpisa){
- poruka("\nUnesite ime i prezime:");
- unos(imeprez);
- poruka("Uneli ste: " + imeprez);
- usernamef();
- poruka("Ime: " + ime);
- poruka("Username: " + username);
- passf();
- poruka("Pass je: " + pass);
- dozvolaUpisa = false;
- } else {
- int key = ocitajTaster();
- delay(100);
- Poruke[0] = username;
- Poruke[1] = pass;
- Poruke[2] = zvezdice(pass.length());
- prvi = Poruke[0];
- drugi = Poruke[1]; // ispisuje password po difoltu...
- if(key == 0) {
- dozvola = true;
- }
- if(dozvola){
- switch(key){
- case 3: // up
- prvi = Poruke[0];
- drugi = Poruke[2];
- dozvola = false;
- break;
- case 1:
- lcd.clear();
- imeprez = "";
- ime = "";
- prezime = "";
- username = "";
- pass = "";
- prvi = "";
- drugi = "";
- // ako ne bude...
- dozvolaUpisa = true;
- dozvola = false;
- break;
- }
- }
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print(prvi);
- lcd.setCursor(0,1);
- lcd.print(drugi);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement