LinkNode D1 Serial перестает работать при использовании pinMode
Следующий код работает. Каждую секунду я получаю в консоли вывод «Hello», а затем analogValue
фоторезистора.
int greenLedPin = D1;
int yellowLedPin = D2;
int redLedPin = D3;
int lightSensorPin = A0;
int analogValue = 0;
void setup() {
Serial.begin(9600);
// pinMode(greenLedPin, OUTPUT);
// pinMode(yellowLedPin, OUTPUT);
// pinMode(redLedPin, OUTPUT);
}
void loop() {
analogValue = analogRead(lightSensorPin);
Serial.println("Hello.");
Serial.println(analogValue);
delay(1000);
// digitalWrite(greenLedPin, HIGH);
// digitalWrite(yellowLedPin, HIGH);
// digitalWrite(redLedPin, HIGH);
}
Теперь, как только я раскомментирую команды pinMode
, в консоли ничего не появляется.
int greenLedPin = D1;
int yellowLedPin = D2;
int redLedPin = D3;
int lightSensorPin = A0;
int analogValue = 0;
void setup() {
Serial.begin(9600);
pinMode(greenLedPin, OUTPUT);
pinMode(yellowLedPin, OUTPUT);
pinMode(redLedPin, OUTPUT);
}
void loop() {
analogValue = analogRead(lightSensorPin);
Serial.println("Hello.");
Serial.println(analogValue);
delay(1000);
// digitalWrite(greenLedPin, HIGH);
// digitalWrite(yellowLedPin, HIGH);
// digitalWrite(redLedPin, HIGH);
}
Есть идеи, что может происходить?
@fuzzybabybunny, 👍0
Обсуждение1 ответ
Переместите int greenLedPin = D1; и int redLedPin = D3; на другой контакт, поскольку D1 и D3 — это Tx и Rx.
http://esp8266.github.io/Arduino/versions/2.0.0 /doc/reference.html
Может ли подключение к контактам D1 и D3 таких вещей, как светодиоды, привести к такой странности? Моей проблемой в итоге стало то, что чип полностью игнорировал любые изменения в моем скетче. Редактирование скетча или даже загрузка совершенно другого скетча приводили к тому, что чип каждый раз просто запускал один и тот же старый код., @fuzzybabybunny
К вашему сведению, вот изображение LinkNode D1: https://m.media-amazon.com/images/S/aplus-seller-content-images-us-east-1/ATVPDKIKX0DER/A2TOL213PF2CAG/B01DD641G6/pdmYH3IESLKD._UX970_TTW__. png D1 помечен как «TX-> D1», а D2 — как «D2», а D3 — как «D15/SCL/D3», поэтому D3 не является RX0., @fuzzybabybunny
https://s3.amazonaws.com/linksprite/Linknode+D1/LinkNode-D1-sch.pdf Показывает, что контакты 15, 16 (D1, D3) подключены к микросхеме USB/Serial. И ДА, старый код прерывает загрузку нового кода. Решение состоит в том, чтобы нажать кнопку сброса до того, как Arduino IDE покажет «Загрузить код», это переведет ESP-12 в режим программирования., @MatsK
На самом деле я нажал кнопку сброса сразу после компиляции, но до того, как IDE отобразила код загрузки. Тот же результат., @fuzzybabybunny
К сожалению, правильная процедура: Подключите LinkNode D1 к вашему ПК. Нажмите и удерживайте кнопку сброса, а затем подключите D8 (вспышка) к земле (GND). Отпустите кнопку сброса, а затем отключите D8 от земли. И вот он в режиме программирования., @MatsK
- Как читать и записывать EEPROM в ESP8266
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Как заставить 5-вольтовое реле работать с NodeMCU
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
- ESP8266 не подключается к Wi-Fi
- AT-команда не отвечает на последовательный монитор
- Разница между этими двумя платами NodeMCU?
Это происходит, когда только один из контактов Dn раскомментирован? (Я думаю, что определение Dn может быть связано с неправильным контактом GPIO) - я проверю ваш код, когда вернусь домой, чтобы увидеть, получу ли я тот же результат., @Code Gorilla