Могут ли ESP8266 и HC-SR04 дружить?
У меня есть код, который я использовал с Uno и HC-SR04. Чтобы удешевить мой проект, я пытаюсь перенести все на ESP8266-01.
Последнее зависание, с которым я столкнулся, заключалось в том, что ESP8266 не поддерживает функциюpulsIn.
duration = pulseIn(echoPin, HIGH);
Есть идеи, как можно изменить функциюpulsIn с помощью прерываний или чего-то еще?
Наконец, я много искал возможности использования HC-SR04 с ESP8266, и хотя есть пара примеров, я не видел, чтобы кто-нибудь делал это с кодом Arduino...
@Paul Masek, 👍0
Обсуждение2 ответа
Лучший ответ:
pulseIn()
на самом деле очень простая функция. Пока существует счетчик микросекунд той или иной формы, вы можете легко установить свой собственный.
Кроме того, я не знаю, какую реализацию плагина ESP8266 вы используете, но тот, который я использую, имеет pulseIn доступен.
Я использую ту же версию плагина ESP8266, что и вы, спасибо, что сообщили мне, чтоpulsIn() уже поддерживается! Я не видел упоминания об этом в справочной документации - http://arduino.esp8266.com/versions/1.6.5-947-g39819f0/doc/reference.html. Мне также сказали, что мой код скомпилируется, даже если не все функции поддерживаются., @Paul Masek
У меня были проблемы с PulseIn(), пока в setup() не был добавлен правильный код инициализации.
Следующее:
pinMode(ТРИГГЕР, ВЫХОД);
digitalWrite(TRIGGER, LOW);
задержка(2);
pinMode(ECHO, INPUT);
TRIGGER и ECHO изначально были определены в верхней части кода с другими переменными следующим образом:
#define TRIGGER 13 // Вывод данных D7
#define ECHO 12 // Вывод данных D6
Моя плата HC-SR04 была подключена к D7 и D6, но часто используются D1 и D2.
Проект представлял собой систему отчетности «Tide». Работа продолжается.
Также обнаружено, что плата HC-SR04 работала нестабильно при использовании напряжения 3,3 В постоянного тока в качестве VCC. Работает лучше, если VCC платы HC-SR04 соответствует Vin на плате ESP8266.
- Сервер Nodemcu с несколькими датчиками
- Существует ли точная процедура подключения между esp32 и ультразвуковым датчиком(HC-SR04)?
- Как читать и записывать EEPROM в ESP8266
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
- ошибка: espcomm_upload_mem failed при загрузке скетча
- Как определить размер Flash?
- Несколько клиентских серверов через Wi-Fi
- Передача функции-члена класса в качестве аргумента
Это может быть полезно, я столкнулся с библиотекой newping.h, которая не используетpulsIn (https://bitbucket.org/teckel12/arduino-new-ping/wiki/Home). Код не компилируется, когда я подключаю всю эту библиотеку. Я просто хочу иметь возможность использовать эту часть для обхода импульса, но еще не понял этого., @Paul Masek
«Могут ли ESP8266 и HC-SR04 быть друзьями?» Пробовали ли вы еду, вино, свечи и романтическую музыку?, @Majenko