{"id":3381,"date":"2018-04-19T20:19:46","date_gmt":"2018-04-19T17:19:46","guid":{"rendered":"https:\/\/devrearsivi.com\/index.php\/?p=3381"},"modified":"2018-04-19T20:19:46","modified_gmt":"2018-04-19T17:19:46","slug":"5110-lcd-ile-menu-yapimi","status":"publish","type":"post","link":"https:\/\/devrearsivi.com\/5110-lcd-ile-menu-yapimi\/","title":{"rendered":"5110 LCD ile Menu Yap\u0131m\u0131"},"content":{"rendered":"

Merhaba arkada\u015flar. Projelerimizde kullanaca\u011f\u0131m\u0131z geli\u015ftirmeye a\u00e7\u0131k ve \u00e7ok i\u015fe yarayaca\u011f\u0131n\u0131 d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcm menu olu\u015fturmadan bahsetmek istiyorum.<\/p>\n

Projemizi olabildi\u011fi kadar basit tutarsak bize gerekli olan artt\u0131rma \u2013 azaltma ve onaylama olarak 3 butona ihtiyac\u0131m\u0131z olacak ve tabiki bir adet Nokia 5110 LCD mod\u00fcl\u00fcne.<\/p>\n

Projemizde LCD nin kontrast\u0131n\u0131 ve alt \u0131\u015f\u0131\u011f\u0131n\u0131 kontrol etmeyi anlataca\u011f\u0131m. Ba\u011flant\u0131lar\u0131 yapt\u0131ktan sonra as\u0131l mesele herbir butona bas\u0131ld\u0131\u011f\u0131nda LCD ekranda g\u00f6r\u00fcnmesini ve arduinomuzun yapmas\u0131n\u0131 istedi\u011fimiz i\u015flerin programlama ile yap\u0131lmas\u0131.<\/p>\n

\"\"<\/p>\n

Burada kontrasta gelinirse \u00a0sa\u011f ve sol tu\u015flar\u0131na bas\u0131larak de\u011fer artt\u0131r\u0131l\u0131p azalt\u0131labilir.<\/p>\n

\"\"<\/p>\n

Sa\u011f ve sol butonlar\u0131yla LCD \u0131\u015f\u0131\u011f\u0131 a\u00e7\u0131l\u0131p kapat\u0131labilir.<\/p>\n

\"\"<\/p>\n

Reset men\u00fcs\u00fcne gelindi\u011finde programlama ile daha \u00f6nce tan\u0131mlanan de\u011ferlere s\u0131f\u0131rlar<\/p>\n

Ba\u011flant\u0131 \u015eemas\u0131<\/p>\n

\"\"<\/p>\n

\n

#include <Adafruit_GFX.h><\/p>\n

#include <Adafruit_PCD8544.h><\/p>\n

\n

boolean backlight = true;<\/p>\n

int contrast=50;<\/p>\n

\n

int menuitem = 1;<\/p>\n

int page = 1;<\/p>\n

\n

volatile boolean up = false;<\/p>\n

volatile boolean down = false;<\/p>\n

volatile boolean middle = false;<\/p>\n

\n

int downButtonState = 0;<\/p>\n

int upButtonState = 0;<\/p>\n

int selectButtonState = 0;<\/p>\n

int lastDownButtonState = 0;<\/p>\n

int lastSelectButtonState = 0;<\/p>\n

int lastUpButtonState = 0;<\/p>\n

\n

Adafruit_PCD8544 display = Adafruit_PCD8544( 5, 4, 3);<\/p>\n

\n

void setup() {<\/p>\n

\n

\u00a0\u00a0pinMode(2, INPUT_PULLUP);<\/p>\n

\u00a0\u00a0pinMode(1, INPUT_PULLUP);<\/p>\n

\u00a0\u00a0pinMode(0, INPUT_PULLUP);<\/p>\n

\u00a0\u00a0pinMode(7,OUTPUT);<\/p>\n

\n

\u00a0\u00a0digitalWrite(7,LOW); \/\/Turn Backlight ON<\/p>\n

\n

\u00a0\u00a0Serial.begin(9600);<\/p>\n

\n

\u00a0\u00a0display.begin();<\/p>\n

\u00a0\u00a0display.setContrast(contrast); \/\/Set contrast to 50<\/p>\n

\u00a0\u00a0display.clearDisplay();<\/p>\n

\u00a0\u00a0display.display();<\/p>\n

}<\/p>\n

\n

void loop() {<\/p>\n

\n

\u00a0\u00a0drawMenu();<\/p>\n

\n

\u00a0\u00a0downButtonState = digitalRead(2);<\/p>\n

\u00a0\u00a0selectButtonState = digitalRead(1);<\/p>\n

\u00a0\u00a0upButtonState =\u00a0\u00a0 digitalRead(0);<\/p>\n

\n

\u00a0\u00a0checkIfDownButtonIsPressed();<\/p>\n

\u00a0\u00a0checkIfUpButtonIsPressed();<\/p>\n

\u00a0\u00a0checkIfSelectButtonIsPressed();<\/p>\n

\n

\u00a0\u00a0if (up && page == 1 ) {<\/p>\n

\u00a0\u00a0\u00a0\u00a0up = false;<\/p>\n

\u00a0\u00a0\u00a0\u00a0menuitem–;<\/p>\n

\u00a0\u00a0\u00a0\u00a0if (menuitem==0)<\/p>\n

\u00a0\u00a0\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0menuitem=3;<\/p>\n

\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0}else if (up && page == 2 ) {<\/p>\n

\u00a0\u00a0\u00a0\u00a0up = false;<\/p>\n

\u00a0\u00a0\u00a0\u00a0contrast–;<\/p>\n

\u00a0\u00a0\u00a0\u00a0setContrast();<\/p>\n

\u00a0\u00a0}<\/p>\n

\n

\n

\u00a0\u00a0if (down && page == 1) {<\/p>\n

\u00a0\u00a0\u00a0\u00a0down = false;<\/p>\n

\u00a0\u00a0\u00a0\u00a0menuitem++;<\/p>\n

\u00a0\u00a0\u00a0\u00a0if (menuitem==4)<\/p>\n

\u00a0\u00a0\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0menuitem=1;<\/p>\n

\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0}else if (down && page == 2 ) {<\/p>\n

\u00a0\u00a0\u00a0\u00a0down = false;<\/p>\n

\u00a0\u00a0\u00a0\u00a0contrast++;<\/p>\n

\u00a0\u00a0\u00a0\u00a0setContrast();<\/p>\n

\u00a0\u00a0}<\/p>\n

\n

\n

\u00a0\u00a0if (middle) {<\/p>\n

\u00a0\u00a0\u00a0\u00a0middle = false;<\/p>\n

\n

\u00a0\u00a0\u00a0\u00a0if (page == 1 && menuitem==2)<\/p>\n

\u00a0\u00a0\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (backlight)<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0backlight = false;<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0turnBacklightOff();<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0else<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0backlight = true;<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0turnBacklightOn();<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\n

\u00a0\u00a0\u00a0\u00a0if(page == 1 && menuitem ==3)<\/p>\n

\u00a0\u00a0\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0resetDefaults();<\/p>\n

\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\n

\n

else if (page == 1 && menuitem==1) {<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0page=2;<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0}<\/p>\n

else if (page == 2) {<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0page=1;<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0}<\/p>\n

\n

\u00a0\u00a0}<\/p>\n

\n

\u00a0\u00a0void checkIfDownButtonIsPressed()<\/p>\n

\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0if (downButtonState != lastDownButtonState)<\/p>\n

\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0if (downButtonState == 0)<\/p>\n

\u00a0\u00a0\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0down=true;<\/p>\n

\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0\u00a0delay(50);<\/p>\n

\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0lastDownButtonState = downButtonState;<\/p>\n

\u00a0\u00a0}<\/p>\n

\n

void checkIfUpButtonIsPressed()<\/p>\n

{<\/p>\n

\u00a0\u00a0if (upButtonState != lastUpButtonState)<\/p>\n

\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0if (upButtonState == 0) {<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0up=true;<\/p>\n

\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0\u00a0delay(50);<\/p>\n

\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0lastUpButtonState = upButtonState;<\/p>\n

}<\/p>\n

\n

void checkIfSelectButtonIsPressed()<\/p>\n

{<\/p>\n

\u00a0\u00a0\u00a0if (selectButtonState != lastSelectButtonState)<\/p>\n

\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0if (selectButtonState == 0) {<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0middle=true;<\/p>\n

\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0\u00a0delay(50);<\/p>\n

\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0lastSelectButtonState = selectButtonState;<\/p>\n

}<\/p>\n

\n

\n

\u00a0\u00a0void drawMenu()<\/p>\n

\u00a0\u00a0{<\/p>\n

\n

\u00a0\u00a0if (page==1)<\/p>\n

\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.setTextSize(1);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.clearDisplay();<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.setTextColor(BLACK, WHITE);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.setCursor(15, 0);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.print(“MAIN MENU”);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.drawFastHLine(0,10,83,BLACK);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.setCursor(0, 15);<\/p>\n

\n

\u00a0\u00a0\u00a0\u00a0if (menuitem==1)<\/p>\n

\u00a0\u00a0\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0display.setTextColor(WHITE, BLACK);<\/p>\n

\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0\u00a0else<\/p>\n

\u00a0\u00a0\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0display.setTextColor(BLACK, WHITE);<\/p>\n

\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.print(“>Contrast”);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.setCursor(0, 25);<\/p>\n

\n

\u00a0\u00a0\u00a0\u00a0if (menuitem==2)<\/p>\n

\u00a0\u00a0\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0display.setTextColor(WHITE, BLACK);<\/p>\n

\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0\u00a0else<\/p>\n

\u00a0\u00a0\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0display.setTextColor(BLACK, WHITE);<\/p>\n

\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.print(“>Light: “);<\/p>\n

\n

\u00a0\u00a0\u00a0\u00a0if (backlight)<\/p>\n

\u00a0\u00a0\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0display.print(“ON”);<\/p>\n

\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0\u00a0else<\/p>\n

\u00a0\u00a0\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0display.print(“OFF”);<\/p>\n

\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.display();<\/p>\n

\n

\u00a0\u00a0\u00a0\u00a0if (menuitem==3)<\/p>\n

\u00a0\u00a0\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0display.setTextColor(WHITE, BLACK);<\/p>\n

\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0\u00a0else<\/p>\n

\u00a0\u00a0\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0display.setTextColor(BLACK, WHITE);<\/p>\n

\u00a0\u00a0\u00a0\u00a0}<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.setCursor(0, 35);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.print(“>Reset”);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.display();<\/p>\n

\u00a0\u00a0}<\/p>\n

\n

\n

\u00a0\u00a0else if (page==2)<\/p>\n

\u00a0\u00a0{<\/p>\n

\n

\u00a0\u00a0\u00a0\u00a0display.setTextSize(1);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.clearDisplay();<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.setTextColor(BLACK, WHITE);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.setCursor(15, 0);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.print(“CONTRAST”);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.drawFastHLine(0,10,83,BLACK);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.setCursor(5, 15);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.print(“Value”);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.setTextSize(2);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.setCursor(5, 25);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.print(contrast);<\/p>\n

\n

\u00a0\u00a0\u00a0\u00a0display.setTextSize(2);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.display();<\/p>\n

\u00a0\u00a0}<\/p>\n

\n

\u00a0\u00a0}<\/p>\n

\n

\u00a0\u00a0void resetDefaults()<\/p>\n

\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0contrast = 50;<\/p>\n

\u00a0\u00a0\u00a0\u00a0setContrast();<\/p>\n

\u00a0\u00a0\u00a0\u00a0backlight = true;<\/p>\n

\u00a0\u00a0\u00a0\u00a0turnBacklightOn();<\/p>\n

\u00a0\u00a0}<\/p>\n

\n

\u00a0\u00a0void setContrast()<\/p>\n

\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.setContrast(contrast);<\/p>\n

\u00a0\u00a0\u00a0\u00a0display.display();<\/p>\n

\u00a0\u00a0}<\/p>\n

\n

\u00a0\u00a0void turnBacklightOn()<\/p>\n

\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0digitalWrite(7,LOW);<\/p>\n

\u00a0\u00a0}<\/p>\n

\n

\u00a0\u00a0\u00a0\u00a0void turnBacklightOff()<\/p>\n

\u00a0\u00a0{<\/p>\n

\u00a0\u00a0\u00a0\u00a0digitalWrite(7,HIGH);<\/p>\n

\u00a0\u00a0}<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"

Merhaba arkada\u015flar. Projelerimizde kullanaca\u011f\u0131m\u0131z geli\u015ftirmeye a\u00e7\u0131k ve \u00e7ok i\u015fe yarayaca\u011f\u0131n\u0131 d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcm menu olu\u015fturmadan bahsetmek istiyorum….<\/p>\n","protected":false},"author":1,"featured_media":3383,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1062,18],"tags":[1199,1175,1200,1114,1201],"aioseo_notices":[],"featured_image_urls":{"full":["https:\/\/devrearsivi.com\/wp-content\/uploads\/2018\/04\/5110menu3.jpg",1057,620,false],"thumbnail":["https:\/\/devrearsivi.com\/wp-content\/uploads\/2018\/04\/5110menu3-150x150.jpg",150,150,true],"medium":["https:\/\/devrearsivi.com\/wp-content\/uploads\/2018\/04\/5110menu3-300x176.jpg",300,176,true],"medium_large":["https:\/\/devrearsivi.com\/wp-content\/uploads\/2018\/04\/5110menu3-768x450.jpg",640,375,true],"large":["https:\/\/devrearsivi.com\/wp-content\/uploads\/2018\/04\/5110menu3-1024x601.jpg",640,376,true],"1536x1536":["https:\/\/devrearsivi.com\/wp-content\/uploads\/2018\/04\/5110menu3.jpg",1057,620,false],"2048x2048":["https:\/\/devrearsivi.com\/wp-content\/uploads\/2018\/04\/5110menu3.jpg",1057,620,false],"covernews-slider-full":["https:\/\/devrearsivi.com\/wp-content\/uploads\/2018\/04\/5110menu3.jpg",1057,620,false],"covernews-slider-center":["https:\/\/devrearsivi.com\/wp-content\/uploads\/2018\/04\/5110menu3.jpg",800,469,false],"covernews-featured":["https:\/\/devrearsivi.com\/wp-content\/uploads\/2018\/04\/5110menu3.jpg",1024,601,false],"covernews-medium":["https:\/\/devrearsivi.com\/wp-content\/uploads\/2018\/04\/5110menu3.jpg",540,317,false],"covernews-medium-square":["https:\/\/devrearsivi.com\/wp-content\/uploads\/2018\/04\/5110menu3.jpg",400,235,false]},"author_info":{"display_name":"Ferhat \u00c7elik","author_link":"https:\/\/devrearsivi.com\/author\/94ferhat\/"},"category_info":"Arduino Devreler<\/a> Basit Elektronik Devreler<\/a>","tag_info":"Basit Elektronik Devreler","comment_count":"0","_links":{"self":[{"href":"https:\/\/devrearsivi.com\/wp-json\/wp\/v2\/posts\/3381"}],"collection":[{"href":"https:\/\/devrearsivi.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devrearsivi.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devrearsivi.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devrearsivi.com\/wp-json\/wp\/v2\/comments?post=3381"}],"version-history":[{"count":2,"href":"https:\/\/devrearsivi.com\/wp-json\/wp\/v2\/posts\/3381\/revisions"}],"predecessor-version":[{"id":3387,"href":"https:\/\/devrearsivi.com\/wp-json\/wp\/v2\/posts\/3381\/revisions\/3387"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devrearsivi.com\/wp-json\/wp\/v2\/media\/3383"}],"wp:attachment":[{"href":"https:\/\/devrearsivi.com\/wp-json\/wp\/v2\/media?parent=3381"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devrearsivi.com\/wp-json\/wp\/v2\/categories?post=3381"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devrearsivi.com\/wp-json\/wp\/v2\/tags?post=3381"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}