Мазмуну:

Arduino жана TI ADS1110 16-бит ADC: 6 кадам
Arduino жана TI ADS1110 16-бит ADC: 6 кадам

Video: Arduino жана TI ADS1110 16-бит ADC: 6 кадам

Video: Arduino жана TI ADS1110 16-бит ADC: 6 кадам
Video: Робототехника Arduino комплектиси 2024, Июль
Anonim
Arduino жана TI ADS1110 16-бит ADC
Arduino жана TI ADS1110 16-бит ADC

Бул үйрөткүчтө Texas Instruments ADS1110 менен иштөө үчүн Arduino колдонууну карап чыгабыз-укмуштай кичинекей, бирок пайдалуу 16-бит аналогдук-санариптик конвертер IC.

Ал 2,7 жана 5,5 В ортосунда иштей алат, ошондуктан Arduino Due жана башка төмөнкү вольттогу өнүгүү такталары үчүн жакшы. Дагы улантуудан мурун, маалымат баракчасын жүктөп алыңыз (pdf), анткени ал пайдалуу болот жана бул окуу куралында айтылат. ADS1110 сизге Arduino 10-бит ADC сунуштаганга караганда так ADC вариантын берет-жана аны колдонуу салыштырмалуу оңой. Бирок ал SOT23-6да жылаңач бөлүгү катары гана жеткиликтүү.

1 кадам:

Сүрөт
Сүрөт

Жакшы жаңылык, сиз ADS1110го абдан ыңгайлуу откладкага заказ кыла аласыз. ADS1110 байланыш үчүн I2C автобусун колдонот. Ал эми алты гана казык бар болгондуктан, сиз автобустун дарегин коё албайсыз - анын ордуна, сиз ADS1110дун алты вариантынан тандай аласыз - ар биринин өз дареги бар (маалымат барагынын экинчи бетин караңыз).

Жогорудагы сүрөттө көрүнүп тургандай, биздики 1001000 же 0x48h автобус дарегине дал келген "EDO" деп жазылган. Жана мисал схемалары менен биз I2C автобусунда 10 кОм тартма каршылыгын колдондук.

Сиз ADS1110ду бир учтуу же дифференциалдуу ADC катары колдоно аласыз-Бирок адегенде биз ар кандай атрибуттарды көзөмөлдөө үчүн колдонулган конфигурация реестрин жана маалымат реестрин карап чыгышыбыз керек.

2 -кадам: Тарам реестри

Маалымат барагынын он биринчи бетине кайрылыңыз. Конфигурация регистринин өлчөмү бир байт, жана ADS1110 кубаттуулук циклине кайтарылганда-сиздин муктаждыктарыңыз демейки абалдан айырмаланып турса, реестрди баштапкы абалга келтиришиңиз керек. Маалымат баракчасы аны тыкан чагылдырат … 0 жана 1 биттер PGA үчүн кирешенин орнотулушун аныктайт (программалоочу кирешени күчөткүч).

Эгерде сиз жөн эле чыңалууну өлчөп жатсаңыз же эксперимент кылып жатсаңыз, анда муну нөл катары калтырыңыз, 1V/V. Андан кийин, ADS1110 үчүн маалымат ылдамдыгы 2 жана 3 -биттер менен көзөмөлдөнөт. Эгерде сизде үзгүлтүксүз тандалма күйгүзүлгөн болсо, бул ADC тарабынан алынган секундадагы үлгүлөрдүн санын аныктайт.

Arduino Uno менен бир аз эксперимент жүргүзгөндөн кийин, ADCден кайтарылган баалуулуктар эң тез ылдамдыкта колдонулганда бир аз өчүрүлгөнүн байкадык, антпесе 15 SPS катары калтырыңыз. Bit 4 үзгүлтүксүз тандоону (0) же бир жолку тандоону (1) белгилейт. 5 жана 6 биттерди этибарга албаңыз, бирок алар ар дайым 0 деп коюлган.

Акыры 7 бит-эгер сиз бир жолку тандалма режиминде болсоңуз, аны 1 деп коюу үлгү сурайт-жана аны окуу сизге кайтарылган маалыматтын жаңы (0) же эски (1) экенин айтат. Сиз өлчөнүүчү маанинин жаңы маанини текшере аласыз - эгерде маалыматтан кийин келген конфигурация байтынын биринчи бити 0 болсо, анда ал жаңы. Эгерде ал 1ди кайтарса, ADC конверсиясы аягына чыга элек.

3 -кадам: Маалыматтарды каттоо

ADS1110 16-бит ADC болгондуктан, ал маалыматты эки байтка кайтарат-анан конфигурация реестринин мааниси менен ээрчийт. Ошентип, эгер сиз үч байт сурасаңыз, лоттун баары кайра келет. Берилиштер "экөөнүн толуктоочусу" түрүндө, бул экилик менен кол коюлган сандарды колдонуу ыкмасы.

Бул эки байтты конверсиялоо кээ бир жөнөкөй математика менен жасалат. 15 SPSте үлгү алууда, ADS1110 кайтарган маани (чыңалуу эмес) -32768 менен 32767 ортосунда түшөт. Маанинин жогорку байты 256га көбөйтүлөт, андан кийин төмөнкү байтка кошулат -ал 2.048ге көбөйтүлөт жана акыры 32768ге бөлүнгөн. паника кылбаңыз, биз муну алдыдагы мисалдын эскизинде жасайбыз.

4-кадам: Бирдиктүү ADC режими

Бирдиктүү ADC режими
Бирдиктүү ADC режими

Бул режимде сиз нөлдөн 2.048 Вге чейин чыңалууну окуй аласыз (бул ADS1110 үчүн курулган маалымдама чыңалуусу болуп калат). Мисал схемасы жөнөкөй (маалымат барагынан).

I2C автобустагы 10kΩ тартылуу каршылыгын унутпаңыз. Төмөнкү эскиз ADS1110ду демейки режимде колдонот жана жөн гана чыңалган чыңалууну кайтарат:

// Мисал 53.1 - ADS1110 бир тараптуу вольтметр (0 ~ 2.048VDC) #include "Wire.h" #define ads1110 0x48 float voltage, data; байт highbyte, lowbyte, configRegister; void setup () {Serial.begin (9600); Wire.begin (); } void loop () {Wire.requestFrom (ads1110, 3); while (Wire.available ()) // бардык маалыматтардын {highbyte = Wire.read () ичинде келишин камсыз кылуу; // жогорку байт * B11111111 lowbyte = Wire.read (); // төмөн байт configRegister = Wire.read (); }

маалымат = highbyte * 256;

маалымат = маалымат + лайтбайт; Serial.print ("Маалымат >>"); Serial.println (маалыматтар, DEC); Serial.print ("Voltage >>"); чыңалуу = маалыматтар * 2.048; чыңалуу = чыңалуу / 32768.0; Serial.print (чыңалуу, DEC); Serial.println ("V"); кечигүү (1000); }

5 -кадам:

Сүрөт
Сүрөт

Жүктөлгөндөн кийин, сериялык мониторду өлчөө жана ачуу үчүн сигналды туташтырыңыз - сизге бул кадамда көрсөтүлгөн сериялык монитордун сүрөтүнө окшош нерсе сунушталат.

Эгерде сиз ADCнин ички программалоочу кирешенин күчөткүчүн өзгөртүүңүз керек болсо - конфигурация реестрине жаңы байтты жазышыңыз керек болот:

Wire.beginTransmission (ads1110); Wire.write (конфигурация байты); Wire.endTransmission ();

ADC маалыматын суроодон мурун. Бул 0x8D, 0x8E же 0x8F болмок, тиешелүүлүгүнө жараша 2, 4 жана 8ге ээ болуу - жана ADS1110ду баштапкы абалга келтирүү үчүн 0x8C колдонуңуз.

6 -кадам: Differential ADC Mode

Дифференциалдуу ADC режими
Дифференциалдуу ADC режими

Бул режимде ар бир нөл менен 5 В ортосундагы эки чыңалуунун ортосундагы айырманы окуй аласыз. Мисал схемасы жөнөкөй (маалымат барагынан).

Биз бул жерде (жана маалымат баракчасында) ADS1110 кириштердин биринде да терс чыңалууларды кабыл ала албастыгын белгилешибиз керек. Ошол эле жыйынтыктар үчүн мурунку эскизди колдонсоңуз болот- ошондо пайда болгон чыңалуу Винден алынуучу Vin+мааниси болот. Мисалы, эгерде сизде Винде 2 В жана Вде 1 В болсо, анда пайда болгон чыңалуу 1 В болмокчу (пайда 1ге коюлган).

Дагы бир жолу бул кызыктуу жана пайдалуу болушу мүмкүн деп үмүттөнөбүз. Бул пост сизге pmdway.com тарабынан келген - бүткүл дүйнө жүзү боюнча бекер жеткирүү менен, жасоочулар жана электроника ышкыбоздору үчүн.

Сунушталууда: