Статьи

Работа с комплектом Arduino LCD Shield

Недавно я взял комплект Arduino для ЖК-экрана от Adafruit. Я хотел поиграть с некоторыми жидкокристаллическими экранами, и так как это был автономный комплект за 20 долларов, я решил попробовать его. Вот мои мысли по этому поводу.

Для этой статьи я использую Arduino Mega 2560, полученный от Newark Element 14 .

Arduino LCD Shield Kit

В комплект входят следующие предметы:

Проекты Arduino - ЖК-экран Shield Kit

В комплекте у нас есть:

  • 5 резисторов
  • Потенциометр
  • Печатная плата
  • Булавки Заголовка
  • Нажмите на кнопки
  • чип расширения порта i2c

Это определенно комплект «под ключ», который поставляется со всем необходимым. В полной инструкции по сборке показать вам , как построить его, шаг за шагом.

Выбей свой паяльник!

Проекты Arduino - ЖК-экран Shield Kit

Для этого комплекта вам нужно будет сделать значительное количество пайки. Некоторые люди не являются поклонниками этой идеи, но я люблю ее. Это отлично подходит для начинающих, так что они могут научиться технике пайки и стать лучше. Несмотря на то, что это полный комплект, который можно легко припаять и собрать, я думаю, что это обманет начинающих из-за опыта сборки. Не говоря уже о том, что это освобождает вас от необходимости использовать только те детали, которые вам нужны, или даже использовать их для чего-то другого.

Теперь ты хакер, обними его!

Сборка щита

Для первого шага вам понадобится припаять резисторы из комплекта в следующей конфигурации:

Проекты Arduino - ЖК-экран Shield Kit

Самый простой способ сделать это — протянуть резисторы через отверстия и вот так пересечь провода. Затем, как только они пройдут, припаяйте каждый кусок и обрежьте концы.

Проекты Arduino - ЖК-экран Shield KitДалее добавьте кнопки. Вы должны быть осторожны с этими булавками, поскольку они очень близко друг к другу.

Проекты Arduino - ЖК-экран Shield Kit

Теперь установите микросхему с совмещением метки, как показано на схеме:

Проекты Arduino - ЖК-экран Shield Kit

Затем разбейте штифты заголовка и вставьте их, как показано:

Проекты Arduino - ЖК-экран Shield Kit

Теперь вы можете разместить доску на Arduino, чтобы штифты совпали.

Проекты Arduino - ЖК-экран Shield Kit

Теперь вы можете впаять контакты. Это дает вам интерфейс к вашему Arduino, но в основном это просто для того, чтобы корпус был стабильным. На этом этапе вы можете добавить надстрочные элементы к контактам заголовка для стекирования других устройств, если хотите.

Наконец, вы затем припаять на ЖК-экране:

Проекты Arduino - ЖК-экран Shield Kit

И вы сделали!

Проекты Arduino - ЖК-экран Shield Kit

Далее мы расскажем, как разместить текст на экране.

Отображение текста

Самый простой способ взаимодействия с этим щитом — использовать RGB LCD Shield Library от Adafruit . Загрузите это и установите это в эскиз. ( Как установить дополнительные библиотеки Arduino )

Чтобы вывести сообщение, показанное выше, создайте файл со следующим кодом:

#include <Wire.h>
#include <Adafruit_MCP23017.h>
#include <Adafruit_RGBLCDShield.h>

Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();

void setup() {
  // Debugging output
  Serial.begin(9600);
  // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  // print in first row
  lcd.print("Be sure to drink");
  // set cursor to second row (row 1)
  lcd.setCursor(0, 1);
  // print in second row
  lcd.print("your Ovaltine");
  // set backlight to white 
  lcd.setBacklight(0x7);
}

void loop() {
  // do nothing for now
}

( Получить этот код на Github )

Довольно легко, верно? Я надеюсь, что комментарии объясняют, что происходит. Но у нас есть еще несколько кнопок, с которыми мы хотим работать. Мы поместим в цикл следующее:

uint8_t buttons = lcd.readButtons();

  if (buttons) {

    lcd.clear();
    lcd.setCursor(0,0);

    if (buttons & BUTTON_UP) {
      lcd.print("pressed UP");
    }
    if (buttons & BUTTON_DOWN) {
      lcd.print("pressed DOWN");
    }
    if (buttons & BUTTON_LEFT) {
     lcd.print("pressed LEFT");
    }
    if (buttons & BUTTON_RIGHT) {
      lcd.print("pressed RIGHT");
    }
    if (buttons & BUTTON_SELECT) {
      lcd.print("pressed SELECT");
    }
  }

( Получить этот код на Github )

Этот код должен быть действительно простым. Вы можете проверить, нажата ли кнопка в цикле, и создать код на ее основе. Итак, давайте сделаем что-нибудь с этим.

Включить и выключить светодиод с помощью индикатора

Here’s something to try, hook up an LED to a digital pin. I am using the Arduino Mega, and just put it in the board like this:

Проекты Arduino - ЖК-экран Shield Kit

Now, create a file with the following code:

#include <Wire.h>
#include <Adafruit_MCP23017.h>
#include <Adafruit_RGBLCDShield.h>

Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.print("LED MODE:");
  lcd.setCursor(0,1);
  // off by default
  lcd.print("OFF");
  lcd.setBacklight(0x7);
  pinMode(53, OUTPUT);
}

void loop() {

  uint8_t buttons = lcd.readButtons();

  lcd.setCursor(0,0);
  lcd.print("LED MODE:");

  if (buttons) {

    lcd.clear();

    if (buttons & BUTTON_UP) {
      // turn led on
      digitalWrite(53, HIGH);
      // display it
      lcd.setCursor(0,1);
      lcd.print("ON");
    }

    if (buttons & BUTTON_DOWN) {
      // turn led off
      digitalWrite(53, LOW);
      // display it
      lcd.setCursor(0,1);
      lcd.print("OFF");
    }
  }
}

(Get this code on Github)

This is pretty straightforward stuff, not that we set “pinMode” to 53,OUTPUT. This is how we set up the pin to light up the LED with the digitalWrite function. By setting pin 53 to HIGH it powers it, and setting it to LOW stops it. The LCD screen then prints the status.

Проекты Arduino - ЖК-экран Shield KitПроекты Arduino - ЖК-экран Shield Kit

The possibilities are endless here!

Summary

Overall I think this product is a fantastic value. I’ve just barely scratched the surface of what can be done here, and it’s only $19.95. It could be a very valuable display for your projects. It’s easy to assemble and works great. So pick up an Arduino (I really like the Mega 2650) and an LCD shield and start tinkering! Contact me with any cool projects you create!