Программа листинга ADS1115, ZMPT101b и Arduino Uno для измерения переменного тока
У меня возникла проблема с моим результатом, когда мое чтение АЦП не может дать самое большое и самое низкое значение АЦП, если я использую ADS1115. между тем, когда я не использую ADS1115, я могу получить самое большое и самое низкое значение АЦП, используя программу листинга, которую я использовал раньше. Спасибо, нужна помощь.
]
@adi dharma, 👍-1
Обсуждение1 ответ
ZMPT101b — это трансформатор, преобразующий напряжение. Вы можете прочитать вывод с помощью аналогового вывода.
ADS1115 — это аналого-цифровой преобразователь. Он считывает аналоговое напряжение так же, как аналоговый вывод вашего Arduino. Затем результат может быть прочитан через I2C как значение регистра. Вы не можете прочитать его с помощью AnalogRead.
Таким образом, вы можете использовать ADS1115 для преобразования аналогового выхода ZMPT101b.
Чтобы считать цифровое значение с ADS1115 с помощью Arduino, используйте библиотеку Wire или найдите библиотеку для ADS1115. Например, вот этот.
Я использую ADC121 с библиотекой Wire. Я инициализирую его в setup()
const byte REG_ADDR_RESULT = 0x00;
const byte REG_ADDR_CONFIG = 0x02;
// инициализируем библиотеку Wire
Wire.begin();
Wire.setClock(400000);
// настроить АЦП
Wire.beginTransmission(I2C_ADC121);
Wire.write(REG_ADDR_CONFIG);
Wire.write(REG_ADDR_RESULT);
Wire.endTransmission();
// устанавливаем регистр результата по умолчанию
Wire.beginTransmission(I2C_ADC121);
Wire.write(REG_ADDR_RESULT);
Wire.endTransmission();
и затем в коде я читаю значение с помощью этой функции
unsigned short adcRead() {
Wire.requestFrom(I2C_ADC121, 2); // запрашиваем 2 байта
byte buff[2];
Wire.readBytes(buff, 2); // прочитать 2 байта
return (buff[0] << 8) | buff[1]; // получаем результат в виде 16-битного числа
}
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
зачем ты выложил картинки кода? .... как вы ожидаете, что кто-нибудь запустит программу и протестирует ее?, @jsotola
как я могу вам помочь? ....вы не задали никаких вопросов., @jsotola
@jsotola нет, я публикую изображения кода, чтобы спросить, есть ли в моем коде что-то не так. Мой вопрос: почему я не могу получить наибольшее и наименьшее значение моего АЦП, если использую ADS1115? значение одинаково самое большое и самое низкое., @adi dharma
В этом SE принято публиковать код в виде текста (например, чтобы другие могли его скопировать/вставить и помочь вам, предоставив правильный код), а не в виде изображений., @MichaelT
достаточно ли быстр ADS1115 для измерения переменного тока? вы используете какой-то RC-фильтр и мост?, @dandavis