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

Адресация к ножкам Lolin в Ардуино.

ЛИУС-2

New member
Уважаемые друзья. Приобрел Lolin (340) для реализации задумки. Пару недель шарил по сайтам, и чем больше читал - тем глупее становился от обилия не всегда верной информации.
В итоге более-менее подружился с Ардуино, и даже удалось заморгать синеньким! (Из большинства статеек склоняешься к мысли, что только ради этого микроконтроллер и разрабатывали:)
Проблема - не могу адресоваться к ногам ни для AnalogWrite, ни для digitalWrite. Осциллограф вместо сигналов показывает черт-те что. Скетч C++ загружается нормально.
Где найти таблицу соответствия между контактами на плате и № пинов для функций Ардуино? Ибо создается впечатление, что вот такие картинки не совсем корректны. (даже кол-во ШИМов не совпадаетю) Интересует только в разрезе analogWrite, digitalWrite, analogRead (на int azp = A0 ; компиллятор не ругался).
Спасибо за внимание!
 

Вложения

aZholtikov

Active member
Например, если на картинке написано GPIO15 - пишем digitalWrite(15) или digitalWrite(D8).
Фсё. :)
 

ЛИУС-2

New member
Доброе утро!
Например, если на картинке написано GPIO15 - пишем digitalWrite(15) или digitalWrite(D8).
Фсё. :)
1. Только компилятор это фигово понимает.
2. я не написал вначале, но мне нужен массив выводов, чтобы последовательно их обрабатывать по единому алгоритму
byte o_pins [5] = {18, 17, 5, 6, 7} ; // ноги каналов ШИМ - именно по чёрным цифиркам
//byte o_pins [5] = {GPIO0, GPIO2==LED(!), GPIO14, GPIO12, GPIO13} ; вот это Ардуино обложила и про D ей тоже не понравилось.
пишем digitalWrite(15) - GPIO15, а нога на картинке 16-я. Вот поэтому сумленья и терзают...
Черные цифры - номера контактов модуля - на них забиваем.
... я это тоже моментально предположил и прописал - вот только осциллограф не согласен. Именно поэтому обращаюсь за помощью!
Этого например. - ESP-12E WiFi Module
Пардон, на я же в первой строке написал Lolin! А WiFi мне вообще-то и не нужен.
Нужна таблица из первоисточника:
Контакт платы |Название | Контакт на чипе

Тем не менее, благодарю за участие.
PS: вот так компилятор реагирует на D. А тип байт проглатывает спокойно!
...
| byte o_pins [5] = {D3, D4, D5, D6, D7} ; // ноги каналов ШИМ
| ^~
exit status 1
Compilation error: 'D3' was not declared in this scope
... и так про все ноги
 

aZholtikov

Active member
Плата NodeMcu v3 Lolin построена на микроконтроллере ESP8266 с интерфейсом Wi-Fi и конвертере USB-UART на базе микросхемы CH340G...
Смотрим ESP-12E.pdf
Пишем вместо byte o_pins [5] = {GPIO0, GPIO2==LED(!), GPIO14, GPIO12, GPIO13} - byte o_pins [3] = {14, 12, 13}
Пины GPIO00 и GPIO02 не используем!!! Стараемся не использовать... Гугл в помощь.
 

aZholtikov

Active member
P.S. Вместо byte (используется в Ардуино) крайне рекомендую использовать uint8_t (стандарт С++).
 

ЛИУС-2

New member
И... А в начале кода есть #include "arduino.h"?
и тем не менее, из хрестоматийных примеров (с доработкой):
byte noga = 2 ;
void setup() {
// initialize digital pin noga as an output.
pinMode(noga, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(noga, HIGH); // turn the LED on (HIGH is the voltage level)
delay(300); // wait for a second
digitalWrite(noga, LOW); // turn the LED off by making the voltage LOW
delay(300); // wait for a second
}
моргает синим глазом, а сигнал осциллоскопом наблюдаю на контакте D4!
Ура - прогресс! это GPU:)-)2
добавил в тест
byte tst_noga = 0 ; т.е. GPIO-0 = D3, и на ней тоже появился сигнал
Вывод - в массив надо указывать № без префикса GPIO.
Сейчас вернусь к основной программе.
Огромное спасибо, что сотрясли мой усохший мозг на анализ!
А насчёт инклюда - раз компилятор не ругается, нефиг и навязываться!
Всем всего самого!!!
 

ЛИУС-2

New member
Победа!
Правда, я с испугу самопальный ШИМ на любые пин-ауты залудил, но это всего пяток команд...
Надеюсь, тема закрыта, если АЦП не подведет - ибо 3-й месяц жду комплектующих к проекту от Али.
Еще раз - всех благ!!!
 
Сверху Снизу