arduino ile lcd modul | Elektronik Devreler - Projeler Ödevler - Tez Ödevleri https://devrearsivi.com Elektronik Devreler - Devre Arşivi - Arduino Devreleri Thu, 19 Apr 2018 17:19:46 +0000 tr hourly 1 https://wordpress.org/?v=6.3.4 https://devrearsivi.com/wp-content/uploads/2013/09/cropped-DA-32x32.png arduino ile lcd modul | Elektronik Devreler - Projeler Ödevler - Tez Ödevleri https://devrearsivi.com 32 32 5110 LCD ile Menu Yapımı https://devrearsivi.com/5110-lcd-ile-menu-yapimi/ https://devrearsivi.com/5110-lcd-ile-menu-yapimi/#respond Thu, 19 Apr 2018 17:19:46 +0000 https://devrearsivi.com/index.php/?p=3381 Merhaba arkadaşlar. Projelerimizde kullanacağımız geliştirmeye açık ve çok işe yarayacağını düşündüğüm menu oluşturmadan bahsetmek istiyorum....

The post 5110 LCD ile Menu Yapımı first appeared on Elektronik Devreler - Projeler Ödevler - Tez Ödevleri.

]]>
Merhaba arkadaşlar. Projelerimizde kullanacağımız geliştirmeye açık ve çok işe yarayacağını düşündüğüm menu oluşturmadan bahsetmek istiyorum.

Projemizi olabildiği kadar basit tutarsak bize gerekli olan arttırma – azaltma ve onaylama olarak 3 butona ihtiyacımız olacak ve tabiki bir adet Nokia 5110 LCD modülüne.

Projemizde LCD nin kontrastını ve alt ışığını kontrol etmeyi anlatacağım. Bağlantıları yaptıktan sonra asıl mesele herbir butona basıldığında LCD ekranda görünmesini ve arduinomuzun yapmasını istediğimiz işlerin programlama ile yapılması.

Burada kontrasta gelinirse  sağ ve sol tuşlarına basılarak değer arttırılıp azaltılabilir.

Sağ ve sol butonlarıyla LCD ışığı açılıp kapatılabilir.

Reset menüsüne gelindiğinde programlama ile daha önce tanımlanan değerlere sıfırlar

Bağlantı Şeması

#include <Adafruit_GFX.h>

#include <Adafruit_PCD8544.h>

boolean backlight = true;

int contrast=50;

int menuitem = 1;

int page = 1;

volatile boolean up = false;

volatile boolean down = false;

volatile boolean middle = false;

int downButtonState = 0;

int upButtonState = 0;

int selectButtonState = 0;

int lastDownButtonState = 0;

int lastSelectButtonState = 0;

int lastUpButtonState = 0;

Adafruit_PCD8544 display = Adafruit_PCD8544( 5, 4, 3);

void setup() {

  pinMode(2, INPUT_PULLUP);

  pinMode(1, INPUT_PULLUP);

  pinMode(0, INPUT_PULLUP);

  pinMode(7,OUTPUT);

  digitalWrite(7,LOW); //Turn Backlight ON

  Serial.begin(9600);

  display.begin();

  display.setContrast(contrast); //Set contrast to 50

  display.clearDisplay();

  display.display();

}

void loop() {

  drawMenu();

  downButtonState = digitalRead(2);

  selectButtonState = digitalRead(1);

  upButtonState =   digitalRead(0);

  checkIfDownButtonIsPressed();

  checkIfUpButtonIsPressed();

  checkIfSelectButtonIsPressed();

  if (up && page == 1 ) {

    up = false;

    menuitem–;

    if (menuitem==0)

    {

      menuitem=3;

    }

  }else if (up && page == 2 ) {

    up = false;

    contrast–;

    setContrast();

  }

  if (down && page == 1) {

    down = false;

    menuitem++;

    if (menuitem==4)

    {

      menuitem=1;

    }

  }else if (down && page == 2 ) {

    down = false;

    contrast++;

    setContrast();

  }

  if (middle) {

    middle = false;

    if (page == 1 && menuitem==2)

    {

      if (backlight)

      {

        backlight = false;

        turnBacklightOff();

        }

      else

      {

        backlight = true;

        turnBacklightOn();

       }

    }

    if(page == 1 && menuitem ==3)

    {

      resetDefaults();

    }

else if (page == 1 && menuitem==1) {

      page=2;

     }

else if (page == 2) {

      page=1;

     }

   }

  }

  void checkIfDownButtonIsPressed()

  {

    if (downButtonState != lastDownButtonState)

  {

    if (downButtonState == 0)

    {

      down=true;

    }

    delay(50);

  }

   lastDownButtonState = downButtonState;

  }

void checkIfUpButtonIsPressed()

{

  if (upButtonState != lastUpButtonState)

  {

    if (upButtonState == 0) {

      up=true;

    }

    delay(50);

  }

   lastUpButtonState = upButtonState;

}

void checkIfSelectButtonIsPressed()

{

   if (selectButtonState != lastSelectButtonState)

  {

    if (selectButtonState == 0) {

      middle=true;

    }

    delay(50);

  }

   lastSelectButtonState = selectButtonState;

}

  void drawMenu()

  {

  if (page==1)

  {

    display.setTextSize(1);

    display.clearDisplay();

    display.setTextColor(BLACK, WHITE);

    display.setCursor(15, 0);

    display.print(“MAIN MENU”);

    display.drawFastHLine(0,10,83,BLACK);

    display.setCursor(0, 15);

    if (menuitem==1)

    {

      display.setTextColor(WHITE, BLACK);

    }

    else

    {

      display.setTextColor(BLACK, WHITE);

    }

    display.print(“>Contrast”);

    display.setCursor(0, 25);

    if (menuitem==2)

    {

      display.setTextColor(WHITE, BLACK);

    }

    else

    {

      display.setTextColor(BLACK, WHITE);

    }

    display.print(“>Light: “);

    if (backlight)

    {

      display.print(“ON”);

    }

    else

    {

      display.print(“OFF”);

    }

    display.display();

    if (menuitem==3)

    {

      display.setTextColor(WHITE, BLACK);

    }

    else

    {

      display.setTextColor(BLACK, WHITE);

    }

    display.setCursor(0, 35);

    display.print(“>Reset”);

    display.display();

  }

  else if (page==2)

  {

    display.setTextSize(1);

    display.clearDisplay();

    display.setTextColor(BLACK, WHITE);

    display.setCursor(15, 0);

    display.print(“CONTRAST”);

    display.drawFastHLine(0,10,83,BLACK);

    display.setCursor(5, 15);

    display.print(“Value”);

    display.setTextSize(2);

    display.setCursor(5, 25);

    display.print(contrast);

    display.setTextSize(2);

    display.display();

  }

  }

  void resetDefaults()

  {

    contrast = 50;

    setContrast();

    backlight = true;

    turnBacklightOn();

  }

  void setContrast()

  {

    display.setContrast(contrast);

    display.display();

  }

  void turnBacklightOn()

  {

    digitalWrite(7,LOW);

  }

    void turnBacklightOff()

  {

    digitalWrite(7,HIGH);

  }

The post 5110 LCD ile Menu Yapımı first appeared on Elektronik Devreler - Projeler Ödevler - Tez Ödevleri.

]]>
https://devrearsivi.com/5110-lcd-ile-menu-yapimi/feed/ 0