У меня есть проект, который соединяет ультразвуковые датчики с Arduino Uno, а код Arduino берет показания с датчиков и отправляет их на удаленный сервер через Ethernet-щит,
Теперь проблема, с которой я сталкиваюсь, заключается в том, что мне нужно использовать 6 ультразвуковых датчиков, но когда Arduino принимает показания от более чем 4 датчиков, Arduino не работает должным образом, но если я сделал показание двух датчиков покоя с выводов, один из предыдущих датчиков работает нормально, или даже если я назначу значение по умолчанию для этих двух датчиков, он работает нормально,
Проблема, с которой я сталкиваюсь, связана со следующими выводами:
10, 11, 12, 13
Что щит Ethernet использует их, но как я могу преодолеть эту проблему и запустить все шесть датчиков?
Вы можете найти часть кода ниже:
#include <Ethernet.h>
#include <SPI.h>
#define ECHOPIN1A1 3 // Pin to receive echo pulse
#define TRIGPIN1A1 2 // Pin to send trigger pulse
#define ECHOPIN1A2 5 // Pin to receive echo pulse
#define TRIGPIN1A2 4 // Pin to send trigger pulse
#define ECHOPIN1A3 7 // Pin to receive echo pulse
#define TRIGPIN1A3 6 // Pin to send trigger pulse
#define ECHOPIN1B1 9 // Pin to receive echo pulse
#define TRIGPIN1B1 8 // Pin to send trigger pulse
#define ECHOPIN1B2 5 // Pin to receive echo pulse
#define TRIGPIN1B2 4 // Pin to send trigger pulse
#define ECHOPIN1B3 3 // Pin to receive echo pulse
#define TRIGPIN1B3 2 // Pin to send trigger pulse
Вы можете использовать плату с большим количеством выводов GPIO, например, Arduino MEGA. Или вы можете соединить вместе триггерные контакты и использовать только один Arduino-штырь, чтобы управлять ими всеми.
Редактировать:
Обязательно прочитайте комментарий Тансира ниже и поэкспериментируйте, чтобы увидеть, что работает, а что нет. Учитывая количество доступных контактов, вам нужно будет активировать 3 ультразвуковых датчика на один контакт (2 контакта для запуска + 6 контактов для считывания эха).
Есть и другое решение: вы можете использовать мультиплексоры / демультиплексоры для управления до 8 датчиков с 5 контактами (2 контакта данных и 3 адреса). Однако это усложнит аппаратное обеспечение.
Других решений пока нет …