• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Lcd1602 keypad shield

zhila

New member
Ребята подскажите. Дилетантский вопрос,просто только начал все осваивать. Имею esp8266 12f на прошивке nodemcu, так же есть lcd1602 keypad shield для UNO, можно ли его напрямую подключить к esp,в прошивке функция есть,но не понимаю какие контакты((( Спасибо заранее.
 

Unitcast

New member
Ребята подскажите. Дилетантский вопрос,просто только начал все осваивать. Имею esp8266 12f на прошивке nodemcu, так же есть lcd1602 keypad shield для UNO, можно ли его напрямую подключить к esp,в прошивке функция есть,но не понимаю какие контакты((( Спасибо заранее.
Таже проблема и конфигурация оборудования
 

Unitcast

New member
короче говоря я сделал, без переходника i2c ничего не выйдет, припаял)) правда больше в uno не влазит
Похоже у меня все впереди ) У меня похожий на твой дисплей, но чуть другой. Он хорошо садится на Arduino, но я погорячился и купил его для ESP 8266 теперь хз как туда этот переходник паять о нем я узнал только сегодня (( У тебя есть фото пайки и работает ли этот метод ?
 

tretyakov_sa

Moderator
Команда форума
Похоже у меня все впереди ) У меня похожий на твой дисплей, но чуть другой. Он хорошо садится на Arduino, но я погорячился и купил его для ESP 8266 теперь хз как туда этот переходник паять о нем я узнал только сегодня (( У тебя есть фото пайки и работает ли этот метод ?
Не нужен переходник. Все работает и так.

Код:
// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 13, 4, 0, 2, 14);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.setCursor(0,0);
  lcd.print("LCD Key Shield");
  lcd.setCursor(0,1);
  lcd.print("Press Key:");
}
void loop() {
  int x;
  x = analogRead (A0);
  lcd.setCursor(10,1);
   lcd.print ("    ");
   lcd.setCursor(10,1);
   lcd.print (x);
   delay(500);
  
}
Ставите на плату Wemos D1 как шилд, если у вас другой модуль соединяйте проводами.
 

Unitcast

New member
Не нужен переходник. Все работает и так.

Код:
// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 13, 4, 0, 2, 14);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.setCursor(0,0);
  lcd.print("LCD Key Shield");
  lcd.setCursor(0,1);
  lcd.print("Press Key:");
}
void loop() {
  int x;
  x = analogRead (A0);
  lcd.setCursor(10,1);
   lcd.print ("    ");
   lcd.setCursor(10,1);
   lcd.print (x);
   delay(500);
 
}
Ставите на плату Wemos D1 как шилд, если у вас другой модуль соединяйте проводами.
А если у меня такой шилд http://www.robitshop.com/nodemcu-motor-shield-board-l293d-for-esp-12e-esp8266-9803-40-B.jpg Такой вот дисплей http://g02.a.alicdn.com/kf/HTB1tjxR...-Arduino-b-font-1602-Keypad-Shield-Module.jpg И сам контроллер http://andidinata.com/wp-content/uploads/2016/12/esp8266nodemcu.jpg
 

tretyakov_sa

Moderator
Команда форума
Соединить соответствующие ноги ESP8266 с соответствующими ногами Shilda.
В вашем случае:
esp8266nodemcu D2 -D4 нога шилда
esp8266nodemcu D3 -D5 нога шилда
esp8266nodemcu D4 -D6 нога шилда
esp8266nodemcu D5 -D7 нога шилда
esp8266nodemcu D6 -D8 нога шилда
esp8266nodemcu D7 -D9 нога шилда
esp8266nodemcu 5V - 5V нога шилда
esp8266nodemcu GND - GND нога шилда
esp8266nodemcu A0 - A0 нога шилда
 

Unitcast

New member
Соединить соответствующие ноги ESP8266 с соответствующими ногами Shilda.
В вашем случае:
esp8266nodemcu D2 -D4 нога шилда
esp8266nodemcu D3 -D5 нога шилда
esp8266nodemcu D4 -D6 нога шилда
esp8266nodemcu D5 -D7 нога шилда
esp8266nodemcu D6 -D8 нога шилда
esp8266nodemcu D7 -D9 нога шилда
esp8266nodemcu 5V - 5V нога шилда
esp8266nodemcu GND - GND нога шилда
esp8266nodemcu A0 - A0 нога шилда
Рассматривал данный вариант, но какая библиотека в таком случае подойдет?
 

pOmelchenko

New member
Добрый день! Присоединяюсь к новичкам данного форума, сообщества, да и вообще в данном направлении.

У меня вопрос по той же проблеме.
На руках плата Wemos D1 (которая как UNO) + LCD Keypad Shield. Сам разобрался с распиновкой подключения шилда к плате. И даже успешно начал выводить текст на экран. Но не могу победить клавиатуру.

Вот мой код:
Код:
// Version v1.02 Works with the Wemos D1 board R2 http://bit.ly/WEMOS_D1

#include <LiquidCrystal.h>

#define D0 3
#define D1 1
#define D2 16
#define D3 5
#define D4 4
#define D5 14
#define D6 12
#define D7 13
#define D8 0
#define D9 2
#define D10 15
#define D11 13
#define D12 12
#define D13 14
#define D14 4
#define D15 5

LiquidCrystal lcd(D8,D9,D4,D5,D6,D7);

void setup() {
  Serial.begin(115200);
  lcd.begin(16, 2);
  lcd.setCursor(0,0);
  lcd.print("Push the buttons");
  Serial.println("Push the buttons");
}

int currentval = 0;

void loop() {
  int currentval = analogRead(0);
  lcd.setCursor(0,1);
  lcd.print("                ");
  lcd.setCursor(0,1);
  lcd.print(currentval);
  Serial.println(currentval);
  delay(100);

  /**
   * 716  - left
   * 461  - down
   * 202  - up
   * 4    - right
   * 1024 - none
   */
}
Там же в коде у меня получился список значений при клике на кнопки. Победить не могу кнопку select. Что не так? На UNO тестовый скетч отрабатывает на ура и все кнопки работают как положено

UPD
Догадался сам. Аналоговый вход максимум 3.2 вольта. а на него в обоих случаях с кнопки селект приходит 3.5-5.

Буду думать как снизить напряжение. А то ж она так долго и не проживет.
 
Последнее редактирование:

pOmelchenko

New member
Да!

Перепаял сопротивление r2 с 2к на 3к стало намного лучше. Работает и на Arduino UNO и на Wemos D1
 

Unitcast

New member
Код тот что я давал ранее.
Спустя несколько месяцев решил продолжить свои опыты. Контроллер сгорел пришлось ждать нового. В общем у меня еще один вопрос:
Где взять ногу 5v на контроллере и ноги D8 и D9. На моем шильде таких ног не обозначено (
 

Сергей_Ф

Moderator
Команда форума
Где взять ногу 5v на контроллере и ноги D8 и D9. На моем шильде таких ног не обозначено (
5В можно взять с блока питания на 5 вольт. А ноги искать на том модуле, где они есть. Если на Вашем они не выведены, то нужно подпаиваться к ножкам чипа, вряд ли Вы это сможете.

Что бы более точно ответить на Ваш вопрос, хорошо бы знать что за модуль Вы получили. Название, ссылку или хотя бы фото ;).
 

Unitcast

New member
5В можно взять с блока питания на 5 вольт. А ноги искать на том модуле, где они есть. Если на Вашем они не выведены, то нужно подпаиваться к ножкам чипа, вряд ли Вы это сможете.

Что бы более точно ответить на Ваш вопрос, хорошо бы знать что за модуль Вы получили. Название, ссылку или хотя бы фото ;).
Питание беру с порта ПК по юсб. модуль node mcu v3, дисплей LCD Keypad shield
 

Unitcast

New member
Добрый день! Присоединяюсь к новичкам данного форума, сообщества, да и вообще в данном направлении.

У меня вопрос по той же проблеме.
На руках плата Wemos D1 (которая как UNO) + LCD Keypad Shield. Сам разобрался с распиновкой подключения шилда к плате. И даже успешно начал выводить текст на экран. Но не могу победить клавиатуру.

Вот мой код:
Код:
// Version v1.02 Works with the Wemos D1 board R2 http://bit.ly/WEMOS_D1

#include <LiquidCrystal.h>

#define D0 3
#define D1 1
#define D2 16
#define D3 5
#define D4 4
#define D5 14
#define D6 12
#define D7 13
#define D8 0
#define D9 2
#define D10 15
#define D11 13
#define D12 12
#define D13 14
#define D14 4
#define D15 5

LiquidCrystal lcd(D8,D9,D4,D5,D6,D7);

void setup() {
  Serial.begin(115200);
  lcd.begin(16, 2);
  lcd.setCursor(0,0);
  lcd.print("Push the buttons");
  Serial.println("Push the buttons");
}

int currentval = 0;

void loop() {
  int currentval = analogRead(0);
  lcd.setCursor(0,1);
  lcd.print("                ");
  lcd.setCursor(0,1);
  lcd.print(currentval);
  Serial.println(currentval);
  delay(100);

  /**
   * 716  - left
   * 461  - down
   * 202  - up
   * 4    - right
   * 1024 - none
   */
}
Там же в коде у меня получился список значений при клике на кнопки. Победить не могу кнопку select. Что не так? На UNO тестовый скетч отрабатывает на ура и все кнопки работают как положено

UPD
Догадался сам. Аналоговый вход максимум 3.2 вольта. а на него в обоих случаях с кнопки селект приходит 3.5-5.

Буду думать как снизить напряжение. А то ж она так долго и не проживет.
Yt
Да!

Перепаял сопротивление r2 с 2к на 3к стало намного лучше. Работает и на Arduino UNO и на Wemos D1
Не в курсе сколько аналоговых входов у Wemos D1? Хочу его заказать, но не понимаю какая у него распиновка. Помимо дисплея c кнопками, которые занимают первый аналоговый вход, хочу подключать датчики, а судя по маркировкам вход там 1 (A0)
 

tretyakov_sa

Moderator
Команда форума
Yt

Не в курсе сколько аналоговых входов у Wemos D1? Хочу его заказать, но не понимаю какая у него распиновка. Помимо дисплея c кнопками, которые занимают первый аналоговый вход, хочу подключать датчики, а судя по маркировкам вход там 1 (A0)
Так и есть один вход от 0 до 3.3в.
 

Unitcast

New member
Так и есть один вход от 0 до 3.3в.
Оказалось не моя тема мало аналоговых входов. Купил китайский ардуино уно и насадил на него дисплей, но не тут то было. Я тот тип людей которому везет "через раз", а новичку только на везение и интуицию остается надеяться. В итоге плата работает, а дисплей, из за которого вся заваршука подсвечен, но не выводит данные. Крутил подстроечный резистор. Иногда реагирует сменой яркости подсветки на определенных скетчах при нажатии клавиш. Может у кого есть какие идеи?
 
Сверху Снизу