Помогите с Ads1118

Geneeus
Offline
Зарегистрирован: 25.02.2017

Добрый день! Делаю диплом на Ардуино. Нужно считывать информацию с датчиков температуры: терминаторов, термопар. Т.к. аналоговые входы Ардуино Мега имеют всего 10-битный АЦП, а этого недостаточно чтобы добиться большой точности, то решил использовать АЦП ADS1118, т.к. имеет встроенный датчик температуры и коэффициент усиления до 120. В общем имею 2 таких АЦП. Понадеялся на библиотеку ADS1118.h для Ардуино, но что-то возникли у меня проблемы. На мой взгляд она не очень рабочая, т.к. не могу наладить коммуникацию с микросхемой. Это в общем...

А теперь расскажу что сделал. Сделал печатную плату, запаял микросхемы, подключил к Ардуино и не работало. Начал разбираться.. Перепутал MISO и MOSI выходы. Поменял местами. Все равно не работает. Начал искать дальше. Были ошибки в коде примера библиотеки. В итоге вроде заработало. Но выдавало одни нули. Решил отключить АЦП от Ардуино. Дальше начинает выдавать нули. Я думал программа зациклился на этапе ads1118.begin() т.к. устройство отключено. Ладно. Подключил остилограф. Нету ничего на выходе SPI в Ардуино. Даже задающий частоты SCK.

Может кто-то работал с этими АЦП и поможет как-то наладить с ними коммуникацию?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

только с ads1115, подключение по I2C

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А чего не подойдёте к руководителю диплома?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Geneeus пишет:
Нету ничего на выходе SPI в Ардуино. Даже задающий частоты SCK. Может кто-то работал с этими АЦП и поможет как-то наладить с ними коммуникацию?

Трудно будет наладить коммуникацию при неработающих выводах.

Geneeus
Offline
Зарегистрирован: 25.02.2017

andriano пишет:

Geneeus пишет:
Нету ничего на выходе SPI в Ардуино. Даже задающий частоты SCK. Может кто-то работал с этими АЦП и поможет как-то наладить с ними коммуникацию?

Трудно будет наладить коммуникацию при неработающих выводах.


Этим я хотел сказать, что библиотека для этого АЦП - кривая.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

а ВЫ точно правильно подключили?

Geneeus
Offline
Зарегистрирован: 25.02.2017

ua6em пишет:

а ВЫ точно правильно подключили?


Подключение я проверил уже 10 раз, стандартное SPI устройство. И на Мега это 50, 51, 52, 53(CS)

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

53 CS это с какого перепугу, CS нужен свой, любой, зацепите на любой свободный, к примеру 5 или 10, его и пропишите в скетче при инициализации ads1118

#define CS 5

Ads1118 ads1118(CS);

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Geneeus пишет:
Этим я хотел сказать, что библиотека для этого АЦП - кривая.

Ну так выкиньте ее, пользуйтесь прямой. Называется "SPI.h" и входит в стандартный комплект постаки.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ua6em пишет:

53 CS это с какого перепугу, CS нужен свой, любой, зацепите на любой свободный, к примеру 5 или 10, его и пропишите в скетче при инициализации ads1118

#define CS 5

Ads1118 ads1118(CS);

 

При единственном устройстве на SPI 53 - лучший выбор.

Если датчика 2, для одного можно использовать 53, а для другого - любой другой пин, хотя бы и 5.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

на 53 дисплей разве не завязан?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ua6em пишет:

на 53 дисплей разве не завязан?

Покажите, где Вы в сообщениях ТС видите слово "дисплей".

Или хрустальный шар подсказал?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

andriano пишет:

ua6em пишет:

на 53 дисплей разве не завязан?

Покажите, где Вы в сообщениях ТС видите слово "дисплей".

Или хрустальный шар подсказал?

Хрустальный шар, а что, нет разве его, ждёмс, что ТС скажет )))

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

2ТС: скетч и схему в студию!

Geneeus
Offline
Зарегистрирован: 25.02.2017

andriano пишет:

2ТС: скетч и схему в студию!


Вечером буду с компа, залью скетч и схему.

Geneeus
Offline
Зарегистрирован: 25.02.2017

andriano пишет:

2ТС: скетч и схему в студию!


#include "Ads1118.h"
#include "SPI.h"
#define CS 53

Ads1118 ads1118(CS); // instantiate an instance of class Ads1118

void setup(){
ads1118.begin();
Serial.begin(9600);
}

void loop(){

Serial.println(ads1118.readTemp(), DEC);
Serial.println(ads1118.adsRead(ads1118.AIN0), DEC);
Serial.println(ads1118.adsRead(ads1118.AIN1), DEC);
Serial.println(ads1118.adsRead(ads1118.AIN2), DEC);
Serial.println(ads1118.adsRead(ads1118.AIN3), DEC);
Serial.println();

delay(1000);
}

COM порт (при отключенном АЦП, а при подключенном везде нули):
Current_config is:49B
0.0000000000
Current_config is:449B
1.0976876068
Current_config is:549B
0.0000000000
Current_config is:649B
0.0000000000
Current_config is:749B
0.0000000000

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Для вставки кода вверху есть кнопка:
А на входы ацп что подаете?
 

#include "Ads1118.h"
#include "SPI.h"
#define CS 53

Ads1118 ads1118(CS); // instantiate an instance of class Ads1118

void setup(){
ads1118.begin();
Serial.begin(9600);
}

void loop(){

Serial.println(ads1118.readTemp(), DEC);
Serial.println(ads1118.adsRead(ads1118.AIN0), DEC);
Serial.println(ads1118.adsRead(ads1118.AIN1), DEC);
Serial.println(ads1118.adsRead(ads1118.AIN2), DEC);
Serial.println(ads1118.adsRead(ads1118.AIN3), DEC);
Serial.println();

delay(1000);
}

COM порт (при отключенном АЦП, а при подключенном везде нули):
Current_config is:49B
0.0000000000
Current_config is:449B
1.0976876068
Current_config is:549B
0.0000000000
Current_config is:649B
0.0000000000
Current_config is:749B
0.0000000000

 

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Geneeus пишет:
с датчиков температуры: терминаторов, термопар.

Что за датчики такие - терминаторы?