После прошивки скетча blink на ESP8266 я удалил все ненужные провода из прошивки - и моя установка для попытки запуска скетча выглядит следующим образом:
Кое-что о прошивке - потребовалось от 10-50 попыток, прежде чем прошивка прошла успешно, в других случаях она просто не загружалась и выдавала сообщение espcomm
failure to connect, или она проходила половину пути загрузки и выходила. Это единственная подсказка для меня, что, возможно, моя плата просто плохая, и она не сможет запустить ни один скетч - я заказал еще один ESP8266, но я все еще задаюсь вопросом, могу ли я делать что-то неправильно, это кажется довольно простым, и я сделал много исследований об этом до этого момента. Это мой первый проект на arduino, не считая стартовых проектов.
Также на схеме не представлены кабели-перемычки, которые я использую для подключения к ESP8266. Они подключаются к макетной плате, а затем я подключаю другой провод к макетной плате в том же ряду, чтобы присоединить его к тому, к чему он должен быть присоединен. Я считаю, что все это не имеет значения - пока на него подается питание (красный светодиод), он должен работать.
Есть идеи, почему светодиод на плате не мигает? Или скетч вообще не работает? Имеет ли значение проблема с загрузкой... может ли она давать ложный положительный результат? Единственная идея, которая у меня есть, где что-то может быть по-другому, это выходной конденсатор для регулятора напряжения, мне сказали, что нужно использовать конденсатор 10mF (но мне также сказали, что это не имеет значения... как и конденсатор фильтра, я просто поставил его в любом случае).
КОД (прямо из Arduino IDE / примеры для ESP8266):
/*
ESP8266 Blink by Simon Peter
Blink the blue LED on the ESP-01 module
This example code is in the public domain
The blue LED on the ESP-01 module is connected to GPIO1
(which is also the TXD pin; so we cannot use Serial.print() at the same time)
Note that this sketch uses LED_BUILTIN to find the pin with the internal LED
*/
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // Initialize the LED_BUILTIN pin as an output
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, LOW); // Turn the LED on (Note that LOW is the voltage level
// but actually the LED is on; this is because
// it is acive low on the ESP-01)
delay(1000); // Wait for a second
digitalWrite(LED_BUILTIN, HIGH); // Turn the LED off by making the voltage HIGH
delay(2000); // Wait for two seconds (to demonstrate the active low LED)
}
Майк указал, что мой регулятор имеет значение (из-за напряжения падения) - я использую этот:
ESP8266 требователен к питанию, у Arduino может не хватить выходного тока для его питания. Также имеет значение, какой стабилизатор напряжения вы используете, так как некоторые имеют более высокое падение напряжения, чем другие.
Вот как проверить работу регулятора напряжения:
Некоторые платы ESP8266 - V01 не мигают встроенным светодиодом (работает только с GPIO2), поэтому подключите его к резистору (~150 Ом), последовательно с внешним светодиодом на землю. Я не знаю почему... просто так получается...