• Система автоматизации с открытым исходным кодом на базе 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 ?
 

Вложения

Сверху Снизу