NewSistems Опубликовано 11 февраля, 2018 Жалоба Поделиться Опубликовано 11 февраля, 2018 Всем привет! Изучаю плотно сейчас данный АЦП. Проблема возникла следующая: При использовании датчика на 150кг. весы в принципе работали и взвешивали хорошо. Захотелось попробовать применить датчик на 50кг. появились проблемы . Для визуального просмотра значения АЦП прописал функцию принтф , и просто бросаю информацию в терминал , код след: printf("DATA=%3.2frn ADC_VALUE=%d, %X rn", data_buff/data_cal , Weighing(3) , Weighing(3)); код опроса АЦП такой: signed long int Weighing(char mode) // mode = 1 or 2 or 3 { char i = 0; adc_value = 0; HX_PORT &= ~(1< while((HX_PIN & (1< for(i=0; i<24; i++) { HX_PORT |= (1< adc_value <<= 1; HX_PORT &= ~(1< if(HX_PIN & (1< { adc_value++; } } for(i=0; i { HX_PORT |= (1< HX_PORT &= ~(1< } return adc_value; } Когда груза нет - показывает: -6700 Когда ложу на датчик 200гр. груз - показывает 10800 (+-150) Когда ложу груз 500гр. - -28000 (+-150) Что это за ерунда такая? вывожу в терминал то что прочитал с функции Weighing . Функция вроде правильная , и была взята с просторов интернета . Я ее немного доработал (добавил настройку усиления и выбор входа) . Пробовал разное усиление канала А - результат одинаковый , цифры только разные. Датчик у меня 2мв./В Читать дальше Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.