Проблема с некоторыми датчиками, но не с сервоприводами

sensors hardware ultrasonics

Я часто использую 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? Я имею в виду, может быть, какой-то конкретный компонент платы выходит из строя?

, 👍-1

Обсуждение

на вопросы нельзя ответить, потому что в вашем описании не хватает деталей, @jsotola

Какие дополнительные детали вам нужны? Я могу добавить больше или протестировать больше плат. Просто скажи мне., @CGG

включать информацию о плате, датчиках, схеме подключения и минимальной программе, которая показывает неисправность, @jsotola

Я добавил ссылку на техническое описание платы, датчика и двигателя. Я лучше объяснил ошибки и добавил пример кода., @CGG


1 ответ


0

Похоже, в вашем образце кода вы не завершили импульс 10 мкс.

  digitalWrite(pinTrig, LOW);
  delayMicroseconds(5);
  
  digitalWrite(pinTrig, HIGH);
  delayMicroseconds(10);
  digitalWrite(pinTrig, LOW); // вы пропустили это

См. пример.

,

Большое спасибо за ваш ответ. Пробовал во всех платах добавлять эту строчку, но результат тот же. Платы, которые выходили из строя, продолжают выходить из строя., @CGG