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

Нужна помощь почему если ЕСП, то D5 а в ардуино просто 5

AlxKh

New member
не нахожу объяснения почему в скетчах для ЕСП мы пишем
  1. #define SDA_PIN D5
  2. #define SDC_PIN D3 у меня компилятор ругается "'D3' was not declared in this scope" В исходнике у меня было SH1106 display(0x3c, D4, D5); исправил на SH1106 display(0x3c, 4, 5); - все работает.
 
Последнее редактирование:

tretyakov_sa

Moderator
Команда форума
не нахожу объяснения почему в скетчах для ЕСП мы пишем
  1. #define SDA_PIN D5
  2. #define SDC_PIN D3 у меня компилятор ругается "'D3' was not declared in this scope" В исходнике у меня было SH1106 display(0x3c, D4, D5); исправил на SH1106 display(0x3c, 4, 5); - все работает.
Вот соответствие:
 

Сергей_Ф

Moderator
Команда форума
@AlxKh для esp в ядре определены некоторые макроопределения, в том числе и для обозначения пинов esp. В любом случае, при компиляции будет использоваться числовое значение.
Например, вместо D5 будет подставлено 14. Вы можете использовать как числа, так и макро и даже сами определить макро как хотите в заголовочном файле. Пример,
#define MY_LED 14
 
Последнее редактирование:

nikolz

Well-known member
еще следует учесть что GPIO0 нельзя использовать для этого интерфейса
поэтому компилятор не будет ругаться на D4 но будет ругаться на D3.
 

AlxKh

New member
@AlxKh для esp в ядре определены некоторые макроопределения, в том числе и для обозначения пинов esp. В любом случае, при компиляции будет использоваться числовое значение.
Например, вместо D5 будет подставлено 14. Вы можете использовать как числа, такти макро и даже сами определить макро как хотите в заголовочном файле. Пример,
#define MY-LED 14
Спасибо! Теперь понятнее!
 
Сверху Снизу