• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Питание ESP8266-01 от батареи

alexlaw

Member
Прошу помочь.
Суть проблемы - не могу дисплей "i2c lcd 16x2" подключить к GPIO-0 и GPIO-2.
В примере \Arduino\libraries\ESP8266-I2C-LCD1602-master\examples\CustomChars\CustomChars.ino такое возможно.
Нужно изменить в библиотеке -sda,scl. Как?
// Modified for ESP8266 with GPIO0-SDA GPIO2-SCL and LCD1206 display
// edit library and change Wire.begin() by Wire.begin(sda,scl) or other GPIO's used for I2C
// and access from lcd.begin(sda,scl)
http://forward.com.au/pfod/ESP8266/GPIOpins/ESP8266_01_pin_magic.html
Тут написано так - Wire.begin(0,2);
Делаю так:
Wire.begin(0,2);
lcd.begin(0,2);
Это не работает.
lcd.begin(1,3);-работает без проблем.
 

kab

New member
@=AK=
Не, ну зачем же так...
Человек делится своим опытом. Форум, типа, для того и существует. Всё по теме.
 

alexlaw

Member
Потратил не мало времени, чтобы прикрутить модуль карты памяти. (пока в тестовом режиме)
Основная проблема - нехватка RAM памяти в Arduino nano.
Бился за каждый байт, чтобы просто запустить тест (oled + cd).


Код:
/*
  SD карта подключается так:
** MOSI - пин 11
** MISO - пин 12
** CLK - пин 13
** CS - пин 6
*/
#include <SPI.h>
//#include <SD.h>;
#include "HCuOLED.h"
#include "SdFat.h"
SdFat SD;
#define SD_CS_PIN 6
/* Digital pin number for the displays chip select pin */
#define CS_DI 8
/* Digital pin number for the displays data/command pin */
#define DC_DI 7
/* Digital pin number for the displays reset pin */
#define RST_DI 9
/* Create an instance of the library (uncomment one of the lines below) */
//HCuOLED HCuOLED(SSD1307, SS_DI, DC_DI, RST_DI); // For SSD1307 displays (HCMODU0050 & HCMODU0052)
HCuOLED HCuOLED(SH1106, CS_DI, DC_DI, RST_DI); // For SH1106 displays (HCMODU0058 & HCMODU0059)
int i=0;
void setup()
{
/* Reset the display */
HCuOLED.Reset();
  /* Display some text using a medium 2 line proportional font */
HCuOLED.Cursor(28,40);
HCuOLED.SetFont(LCDLarge_24pt);
HCuOLED.Print(1);
/* Output the display buffer to the screen */
HCuOLED.Refresh();
  delay(1000);
  if (!SD.begin(SD_CS_PIN)) {     
     HCuOLED.ClearBuffer();
     HCuOLED.Cursor(28,40);
     HCuOLED.Print(-1);//"initialization failed!"   
     HCuOLED.Refresh();
     delay(1000);
     return;
  }
     HCuOLED.ClearBuffer();
     HCuOLED.Cursor(28,40);
     HCuOLED.Print("OK");//"initialization done."
     HCuOLED.Refresh();
     delay(1000);
  SdFile myF;
  //if (myF.open("t.txt",  O_CREAT | O_WRITE | O_EXCL))
  if (myF.open("t.txt", FILE_WRITE))
  {
    myF.println("5");
    // Закрываем файл:
    myF.close();
     HCuOLED.ClearBuffer();
     HCuOLED.Cursor(28,40);
     HCuOLED.Print("Y");//"done."
     HCuOLED.Refresh();
     delay(2000);
  } else { 
     HCuOLED.ClearBuffer();
     HCuOLED.Cursor(28,40);
     HCuOLED.Print("N");//"error"
     HCuOLED.Refresh();
     delay(2000);
  }
}

void loop()
{
  i++;
     HCuOLED.ClearBuffer();
     HCuOLED.Cursor(28,40);
     HCuOLED.Print(i);
     HCuOLED.Refresh(); 
delay(1000);
}

Очень помогла статья - Arduino. Работа с SD, microSD картами | Just for Fun

В связи с этим вопрос:
Как увеличить RAM в Arduino nano и в других MK ?
 

Вложения

Сверху Снизу