Работа с несколькими датчиками HC-SR04

у меня нет предупреждений и\или ошибок в IDE,
строки 8 и 9 это установка растсояния после которого идет сработка датчиков.
Или я вас неправильно понял,

тогда что значит?

void setup() {
pinMode(ena1, OUTPUT);
pinMode(ena2, OUTPUT);
...

  digitalWrite(ena1, HIGH);
  }else{
  digitalWrite(ena1,LOW);

PS видимо не ты скетч писал?

а они включены в этом самом IDE?
Файл->Параметры

1 лайк

Были выключены, спасибо за подсказку. Да увидел ошибку.
сейчас исправлю

Я как основу обращения к датчикам взял код что нашел на форуме и добавил вебсервер и подсчет, спасибо что указали на несоответствие, сейчас попробую исправить

так лучше?

#include <NewPing.h>                                 
#include <SPI.h>
#include <Ethernet.h>

#define SONAR_NUM 2                                  // количество сенсоров.
#define MAX_DISTANCE 500                             // максимальное расстояние пинга
#define Trig 30                                      // расстояние триггера на сработку                                 
const int ID = 1;                                    // номер платы
int activatedSensors = 0;                            // установка переменной
long sensors[SONAR_NUM];                             //массив хранения датчиков
unsigned int distance;
byte mac[] = { 0xFA, 0xFA, 0x01, 0x00, 0x01, 0x71 }; // Мак-адрес Ethernet
IPAddress ip(192, 168, 1, 101);                      // IP-адрес Arduino
byte gateway[] = { 192, 168, 1, 1 };                 // IP-адрес шлюза
byte subnet[] = { 255, 255, 255, 0 };                // Маска подсети

EthernetServer server(80);

NewPing sonar[SONAR_NUM] = {                         
  NewPing(4, 5, MAX_DISTANCE),                       // Пины датчиков 
  NewPing(6, 7, MAX_DISTANCE), 

};

void setup() {                                       //Запуск ethernet модуля
Ethernet.begin(mac, ip, gateway, subnet);           
server.begin();                                     
}

void loop() {
activatedSensors = 0;
 for (uint8_t i = 0; i < SONAR_NUM; i++) {          // Цикл опроса датчиков
    delay(50);                                      // ожидание между опросами (не менее 29мс)
    sensors[i] = sonar[i].ping_cm(); 
if (sensors[i]> Trig) //сравнение результата с триггерным значением
{ 
    activatedSensors++; // добавляем 1 к числу
  } 
}
  EthernetClient client = server.available();        // запуск веб сервера для вывода результата
  if (client) {
    bool currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (c == '\n' && currentLineIsBlank) {
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");
          client.println("Refresh: 1");
          client.println("Access-Control-Allow-Origin: *");
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          client.println("<head>");
          client.println("<title>");
          client.println("ID: " + String(ID));
          client.println("</title>");
          client.println("</head>");
          client.println("<body>");
          client.println("ID: " + String(ID));
          client.println("Busy Parks: " + String(activatedSensors) + " of " + String(SONAR_NUM));    // Вывод активированных датчиков на страницу
          client.println("</body>");
          client.println("</html>");
          break;
        }
        if (c == '\n') {
          currentLineIsBlank = true;
        } else if (c != '\r') {
          currentLineIsBlank = false;
        }
      }
    }
    delay(1);
    client.stop();
  }
   delay(1000);                                        // Пауза между обновлениями в миллисекундах и все по новой
  
 }

я не в теме, с сетевыми картами W5100 не общался, какие она пины занимает - не знаю