KKM: MEMBRANSKA TIPKOVNICA 4 X 1
Početnik si s Dasduinom. Ili s elektronikom? Za oko ti je zapeo određeni modul, ali ne znaš kako ga koristiti? Bez brige, tu je KKM! Kako Koristiti Module (KKM) je serija blog tutorijala tvrtke soldered na kojoj ćeš pronaći sve što ti treba kako bi započeo rad sa svojim omiljenim modulom. Tutorijali obuhvaćaju: tehničke karakteristike, princip rada, upute kako povezati modul s Dasduinom te osnovni kod. Sve ostalo prepuštamo tebi na maštu.
UVOD
Imate projekt u kojem trebate unositi određene vrijednosti u vaš program, ali ne znate kako biste to ostvarili, onda nastavite čitati i saznat ćete sve o jednostavnom ulaznom modulu.
Radi se o membranskoj tipkovnici koja se sastoji od 4 tipke i vrlo je jednostavna za korištenje, a u manjim projektima je sasvim dovoljna. Tipkovnica u jednom redu ima 4 tipke i radi na istom principu kao i 4×4 membranska tipkovnica samo je manja i pogodnija za korištenje gdje nam nije potrebno imati 16 tipki.
Karakteristike senzora:
- Veličina gornjeg dijela: 7 x 2cm
- Duljina kabla: 9cm, savitljivi
- Konektor: 5-pinski
KAKO RADI?
Ova tipkovnica koristi 4 tipke kojima je jedan kraj spojen na red, a drugi kraj tipke je spojen na stupac. Kako imamo u svakom stupcu po jednu tipku jednostavno imamo spojenu svaku tipku na jedan izlazni pin. Tipke jednostavno spajaju jedan izvod s drugim, odnosno u našem slučaju spajaju red i stupac u kojem se nalaze što vidimo i na slici.
KAKO POVEZATI?
Tipkovnicu je jednostavno povezati sa Dasduinom jer na tipkovnici imamo ženske headere i na Dasduinu pa možemo koristiti muško-muške kabliće. Tipkovnicu spajamo redom na digitalne pinove Dasduina, a slika iznad nam prikazuje koji je koji pin na tipkovnici kako bi danu shemu spajanja lakše prilagodili svojim projektima.
ARDUINO KOD
Kako bismo tipkovnicu mogli koristiti sa Dasduinom trebamo preuzeti biblioteku Keypad, ako ne znate kako instalirati biblioteku, pročitajte naš tutorijal.
Biblioteka ima primjere za korištenje tipkovnice tako da možemo i njih iskoristiti za upoznavanje s radom tipkovnice i funkcija biblioteke koje nam mogu pomoći.
Za početak ćemo samo ispisivati pritisnutu tipku na Serial monitor.
#include "Keypad.h" //uključivanje biblioteke Keypad const byte RED = 1; //definiramo broj redovaconst byte STUPAC = 4; //definiramo broj stupaca//definiramo simbole koje želimo da nam se ispisuju prilikom pritiska na tipkuchar NasiZnakovi[RED][STUPAC] = { {'1','2','3','4'}};byte redPin[RED] = {6}; //definiramo na koje pinove Croduina smo spojili redovebyte stupacPin[STUPAC] = {4,5,2,3}; //definiramo na koje pinove Croduina smo spojili stupce(1 > pin4, 2 > pin5, 3 > pin2, 4 > pin3)//inicijalizacija klase NewKeypad kojoj predajemo NasiZnakovi, pinove na koji su spojeni redovi i stupci i broj redova i stupacaKeypad Tipkovnica1 = Keypad( makeKeymap(NasiZnakovi), redPin, stupacPin, RED, STUPAC); void setup(){ Serial.begin(9600); //započinjemo serijsku komunikaciju}void loop(){ char pritisnutiZnak = Tipkovnica1.getKey();//u varijablu pritisnutiZnak spremamo znak koji je pritisnut // znak koji smo pritisnuli dobivamo pomoću funkcije getKey() if (pritisnutiZnak){ Serial.println(pritisnutiZnak); //provjeravamo dali je pritisnuta tipka te ako je ispisujemo ju na Serial monitor }}#include "Keypad.h" //uključivanje biblioteke Keypad #define duljina 4 //definiramo duljinu lozinkeint ledz=12; // zelena ledica za otključano spojena na pin 12int ledc=13; // crvena ledica za zaključano spojena na pin 13const byte RED = 1; //definiramo broj redovaconst byte STUPAC = 4; //definiramo broj stupaca//definiramo simbole koje želimo da nam se ispisuju prilikom pritiska na tipkuchar NasiZnakovi[RED][STUPAC] = { {'1','2','3','4'}};int i=0;char lozinka[duljina]; //definiramo string lozinka koji kasnije koristimo za unos lozinke s tipkovnicechar zadana_lozinka[duljina]="4321" ; //postavljamo lozinku koju želimo koristiti u string zadana_lozinkachar pritisnuto=0; //varijabla tipka char u koju ćemo kasnije spremati pritisnutu tipkubyte redPin[RED] = {6}; //definiramo na koje pinove Croduina smo spojili redovebyte stupacPin[STUPAC] = {4,5,2,3}; //definiramo na koje pinove Croduina smo spojili stupce(1 > pin4, 2 > pin5, 3 > pin2, 4 > pin3)//inicijalizacija klase NewKeypad kojoj predajemo NasiZnakovi, pinove na koji su spojeni redovi i stupci i broj redova i stupacaKeypad Tipkovnica1 = Keypad( makeKeymap(NasiZnakovi), redPin, stupacPin, RED, STUPAC); void setup(){ Serial.begin(9600); //započinjemo serijsku komunikaciju pinMode(ledc,OUTPUT); //pin ledc (pin 13) postavljamo kao izlaz pinMode(ledz,OUTPUT); //pin ledz (pin 12) postavljamo kao izlaz digitalWrite(ledc,HIGH); //crvenu ledicu uključujemo jer je zaključano digitalWrite(ledz,LOW); // zelenu ledicu isključujemo}void loop(){ pritisnuto = Tipkovnica1.getKey();//u varijablu pritisnuto spremamo znak koji je pritisnut if(pritisnuto){ //provjeravamo dali je pritisnuta tipka i ako je ispisujemo njen znak na Serial monitor Serial.println(pritisnuto); lozinka[i++]=pritisnuto; //u string lozinka dodajemo znak koji je pritisnut}if(i==duljina){//provjeravamo dali nam je i jednak varijabli duljina( provjeravamo dali smo unijeli 4 znaka koliko nam je duljina lozinke) delay(200); //pauza 0.2 sekunde if(!(strncmp(lozinka,zadana_lozinka,duljina))){ // uspoređujemo string lozinka sa stringom zadana lozinka Serial.println("otkljucano tocna lozinka"); // ako su stringovi jednaki ispisujemo poruku na Serial monitor da je lozinka točna digitalWrite(ledc,LOW); //gasimo crvenu ledicu digitalWrite(ledz,HIGH); //palimo zelenu ledicu delay(2000); // pauza 2 sekunde i=0; // postavljamo i na 0 kako bi ponovno mogli unositi lozinku, a s time i onemogućujemo da se ponovno provjerava unos od prije, nego zahtijevamo novi unos lozinke //zaključavanje digitalWrite(ledz,LOW); //gasimo zelenu ledicu digitalWrite(ledc,HIGH); //palimo crvenu ledicu Serial.println("zakljucano"); //ispisujemo poruku zakljucano na Serial monitor } else{ //ovaj dio se izvršava ako unesemo pogrešnu lozinku digitalWrite(ledz,LOW); digitalWrite(ledc,HIGH); Serial.println("pogresna lozinka"); digitalWrite(ledc,LOW);//ugasimo crvenu ledicu na pola sekunde i ponovno upalimo ( ledica bljesne) kako bi znali da je lozinka pogrešna delay(500); Serial.println("Pokusaj ponovno"); digitalWrite(ledc,HIGH);// paljenje crvene ledice i=0; //stavljamo i na nulu kako bi mogli ponovno unijeti lozinku }}}



