Я использую датчик силы для измерения его значения через АЦП Arduino. Здесь я подаю 5 В на датчик силы и резистор 3,3 кОм для понижения напряжения. Я преобразовываю это входное необработанное значение АЦП (диапазон 0-1023) в вес с помощью некоторого кодирования.
Мне нужно удалить Arduino и подключить датчик силы напрямую к ESP8266 12F и использовать его АЦП для измерения напряжения. Но проблема в том, что его диапазон составляет всего 0-1В. Я попробовал несколько делителей напряжения и сделал 1 В из источника питания 5 В сзади, теперь значение АЦП имеет диапазон 0-90, используя функцию карты Arduino, я преобразовал это 0-90 обратно в 0-1023. Вот кодировка для 5V:
fsrADC = analogRead(A0);
float fsrV = fsrADC * VCC / 1023.0; //VCC = 5
float fsrR = R_DIV * (VCC / fsrV - 1.0); //R_Div = 3300 for 3.3k pulldown
Вот кодировка для 1V:
fsrADC = analogRead(A0);
fsrADC = map(fsrADC,0,90,0,1000);
float fsrV = fsrADC * VCC / 1023.0; //VCC = 5
float fsrR = R_DIV * (VCC / fsrV - 1.0); //R_Div = 3300 for 3.3k pulldown
После этого есть еще несколько строк, которые преобразуют это сопротивление в вес. Как видите, мне нужен диапазон входного аналогового значения 0-1023, чтобы следующая строка работала правильно. Расчетный вес не соответствует действительности. Я думаю, что это проблема питания, потому что я преобразовываю питание 5 В в 1 В через делитель напряжения и использую его выход для датчика. Любые предложения и хорошая схема с разделением напряжения?
(adc/1023) * VCC
- person dandavis   schedule 20.06.2017