Здравствуйте! Захотел получить амперметр, на датчике тока на 200А фирмы Аллегро, однако на выход А0 все чисто, постоянно в сериал монитор выводит значение 14, как при подключенной нагрузке так и без, в цепь подключал работающий амперметр, там он показывал значения 1Ампер и меньше. Что сделал не так Ваши предположения? Может быть из-за параметров фильтра что-то не так? Фильтр использовал 1 нФ, сопротивление 1 кОм.
А где схема? Скетч? Тип датчика? и прочее.... Даташит читали на данный датчик тока? В интернете схемы посмотрите как работать с данным датчиком.
Да, конечно. Но параметры фильтра немного изменил, надо было 10нФ, 4,7 кОм, я поставил, 1нФ, 1кОм, думаю, что разница не слишком существенна. Скетч, тут так-то и не нужен, все равно на А0, куда должны поступать значения, должен как-то реагировать. Чтение analogRead(A0) в скетче, конечно делал. А схема вот из даташита. Течение тока на ножки проверял в разные стороны, но тоже на А0, всё без изменения.
тестером напряжение меряли? Не могу сказать про этот, но у меня датчики тока в которых при нулевом токе Vout=Vcc/2.
Тип датчика ACS758ECB? на 200А. Смотри даташит . Соответсвенно ему у тебя на входе А0 при токе нагрузке 1А будет 0.01 вольта, то есть практически ноль. Поэтому нагрузи 50А или 100А и увидишь пол вольта или вольт на входе А0. Если тебе не нужны такие нагрузки то возьми другой ACS например на 5A или 20А. Либо надо усилить сигнал с помощью операционного усилителя ,схем в инете много. Обычно так и делают.
Пользуйся активнее интернетом , вот к примеру описание как работать с подобным датчиком. Там же используется операционный усилитель.
Да, 2.5 В есть. Да этот самый, там в даташите, по не опытности не понял что 10 мВ чувствительности означает, что при 1А равно на выходе 0,01 В. Спасибо за ссылку со схемой с операционным усилителем, буду разбираться.
да видит, но вопрос точнее был в том что не видит, когда мы 1 ампер пропускаем, тов. 9xA59kK указал, что из-за маленького тока не видит, нужен операционный усилитель либо больше тока дать
Ребят! Короче, я ошибся в коде. Писал Код (C++): Serial.print(A0); Serial.println("A"); и у меня постоянно выдавало 14. Но надо то было не А0 ставить, а название переменной в которую записывается значения А0 Код (C++): RawValue = analogRead(0); Serial.print(RawValue); Да и изменения видны на А0 и при около одном ампере. Было 510, становится 518. Сейчас озадачен как это преобразовать в код, который давал бы точные значения в амперы. Вот этот код использовал с моей коррекцией. Если ничего не подавать пишет 0.31, а когда амперметр показывает 0.3 А, пишет около 1,5 Ампера Пока не пойму в чем ошибка. Если кому не в лом поправьте пожалуйста. Код (C++): int RawValue= 0; float Amp = 0; void setup() { Serial.begin(9600); } void loop() { RawValue = analogRead(0); Amp = ((RawValue - 510)*3.3/1024/0.01-0.01);// 0.01 чувствительность датчика (Вольты), 3.3 опорное напряжение (Вольты) delay(1000); Serial.print(Amp); Serial.println("A"); } И вопрос, нельзя ли посчитать например вот так: По амперметру сравнить со значением на А0, потом вставить в код пропорциональную зависимость и таким образом высчитывать амперы? Например, пусть когда на А0 - 518 (может и другое значение еще не замерял точно) на амперметре тогда 1А, тогда Amp = ((RawValue - 510)/8);