Проблема с некоторыми датчиками, но не с сервоприводами
Я часто использую Arduino Uno, но в данном случае у меня есть несколько плат BQ ZUM BT-328. , которые основаны на Arduino BT. Проблема с некоторыми платами BQ ZUM BT-328 заключается в том, что ультразвуковой датчик (HC-SR04) не работает ни на одном выводе. Однако, по-видимому, платы работают, и 2 сервопривода (SM-S4306R) тоже работают нормально. Когда я меняю ультразвуковой датчик на другие контакты и с другими проводами, он еще не работает. Однако я использую этот датчик на другой другой плате BQ ZUM BT-328, и он работает нормально, и если я добавлю ту же настройку (2 SM-S4306R) и тот же код, он продолжит работать нормально. Тогда проблема только в некоторых платах, а не во всех.
Пример ультразвукового исследования:
long distance;
long responseTime;
int pinTrig = 9;
int pinEcho = 8;
void setup(){
Serial.begin(9600);
pinMode(pinTrig, OUTPUT);
pinMode(pinEcho, INPUT);
}
void loop(){
digitalWrite(pinTrig, LOW);
delayMicroseconds(5);
digitalWrite(pinTrig, HIGH);
delayMicroseconds(10);
responseTime = pulseIn(pinEcho, HIGH);
Serial.println("Tiempo "+ String(responseTime)+" microsegundos");
distance = int(0.01716*responseTime);
Serial.println("Distancia "+ String(distance)+"cm");
delay(500);
}
Тогда я полагаю, что у этих плат BQ ZUM BT-328 есть какая-то проблема, и, возможно, они начинают выходить из строя. Говорю так, потому что одна и та же проблема на одних платах работает, а на других не работает. В тех платах, в которых он неисправен, я проверял правильность подключения контактов (GND, VCC, цифровые), менял контакты и провода безрезультатно. Тем не менее, сервоприводы продолжают работать нормально, и я могу загрузить код на плату. Мои вопросы:
Я прав, и они терпят неудачу?
Почему они не работают с этим датчиком, а не с SM-S4306R? Я имею в виду, может быть, какой-то конкретный компонент платы выходит из строя?
@CGG, 👍-1
Обсуждение1 ответ
Похоже, в вашем образце кода вы не завершили импульс 10 мкс.
digitalWrite(pinTrig, LOW);
delayMicroseconds(5);
digitalWrite(pinTrig, HIGH);
delayMicroseconds(10);
digitalWrite(pinTrig, LOW); // вы пропустили это
См. пример.
Большое спасибо за ваш ответ. Пробовал во всех платах добавлять эту строчку, но результат тот же. Платы, которые выходили из строя, продолжают выходить из строя., @CGG
- Водонепроницаемый ультразвуковой датчик sro4m-2
- Ультразвуковой датчик или инфракрасный датчик лучше для измерения расстояния (до/от человеческого тела)?
- Какой датчик лучше всего подходит для обнаружения препятствий с помощью световозвращателя?
- Подключение MPU6050 к Arduino Lilypad
- Зачем использовать несколько фильтров, выводящих тысячи значений, использовать один или два фильтра, которые могут выводить нормальное значение?
- Сопряжение LM35 и MQ2 с Arduino
- Существенно ли естественный ветер на открытом воздухе влияет на показания ультразвукового датчика?
- Как я могу определить количество воды, которое должно быть заполнено в произвольном контейнере?
на вопросы нельзя ответить, потому что в вашем описании не хватает деталей, @jsotola
Какие дополнительные детали вам нужны? Я могу добавить больше или протестировать больше плат. Просто скажи мне., @CGG
включать информацию о плате, датчиках, схеме подключения и минимальной программе, которая показывает неисправность, @jsotola
Я добавил ссылку на техническое описание платы, датчика и двигателя. Я лучше объяснил ошибки и добавил пример кода., @CGG