Мазмуну:
- 1 кадам:
- 2 -кадам: Тарам реестри
- 3 -кадам: Маалыматтарды каттоо
- 4-кадам: Бирдиктүү ADC режими
- 5 -кадам:
- 6 -кадам: Differential ADC Mode
Video: Arduino жана TI ADS1110 16-бит ADC: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Бул үйрөткүчтө 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 режими
Бул режимде сиз нөлдөн 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
Бул режимде ар бир нөл менен 5 В ортосундагы эки чыңалуунун ортосундагы айырманы окуй аласыз. Мисал схемасы жөнөкөй (маалымат барагынан).
Биз бул жерде (жана маалымат баракчасында) ADS1110 кириштердин биринде да терс чыңалууларды кабыл ала албастыгын белгилешибиз керек. Ошол эле жыйынтыктар үчүн мурунку эскизди колдонсоңуз болот- ошондо пайда болгон чыңалуу Винден алынуучу Vin+мааниси болот. Мисалы, эгерде сизде Винде 2 В жана Вде 1 В болсо, анда пайда болгон чыңалуу 1 В болмокчу (пайда 1ге коюлган).
Дагы бир жолу бул кызыктуу жана пайдалуу болушу мүмкүн деп үмүттөнөбүз. Бул пост сизге pmdway.com тарабынан келген - бүткүл дүйнө жүзү боюнча бекер жеткирүү менен, жасоочулар жана электроника ышкыбоздору үчүн.
Сунушталууда:
Таблицаны кантип түзүү жана киргизүү жана Microsoft Office Word 2007деги ошол столго кошумча мамычаларды жана/же саптарды кошуу: 11 кадам
Таблицаны кантип түзүү жана киргизүү жана Microsoft Office Word 2007деги ошол таблицага кошумча мамычаларды жана/же саптарды кошуу: Сизде иштеп жаткан жана өзүңүз жөнүндө ойлогон көптөгөн маалыматтарыңыз бар беле … " Мен кантип баарын жасай алам? бул маалыматтын жакшыраак көрүнүшү жана түшүнүүгө оңойбу? " Эгер ошондой болсо, анда Microsoft Office Word 2007деги таблица сиздин жообуңуз болушу мүмкүн
Иштетүү жана Arduino туташтыруу жана 7 сегментти жана GERI интервалы контролерин жасоо: 4 кадам
Processing and Arduino менен Make 7 Segment and Servo GUI Controller туташтыруу: Кээ бир долбоорлор үчүн сиз Arduino программасын колдонушуңуз керек, анткени ал прототиптөөнүн оңой платформасын камсыз кылат, бирок графиканы Arduino сериялык мониторунда көрсөтүү абдан узакка созулушу мүмкүн, ал тургай аткаруу кыйын. Сиз графикти Arduino Serial Monitorдо көрсөтө аласыз
Arduino жана PCF8591 ADC DAC IC: 7 кадам
Arduino жана PCF8591 ADC DAC IC: Сиз качандыр бир убакта Arduino проектиңизге аналогдук кирүү казыктарын каалап, бирок Мега үчүн чыгууну каалаган эмес белеңиз? Же аналогдук сигналдарды чыгаргыңыз келеби? Андан кийин биздин окуу куралыбыздын темасын карап көрүңүз - NXP PCF8591 IC. Бул эки көйгөйдү тең чечет
WiFi жана IR Remote жана Android колдонмосун колдонуп NodeMCU жана IR алуучу менен 8 релелик көзөмөл: 5 кадам (сүрөттөр менен)
WiFi жана IR Remote жана Android тиркемесин колдонуп NodeMCU жана IR алуучу менен 8 реле көзөмөлү: wifi жана ир алыскы жана андроид колдонмосу аркылуу nodemcu жана IR кабыл алгычты колдонуп 8 реле өчүргүчтөрүн көзөмөлдөө БУЛ ЖЕРДЕ
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: 13 кадам (сүрөттөр менен)
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: Киришүү: Бул Ардуино тактасын, Sensor (DHT11), Windows компьютери жана Processing (бекер жүктөлүүчү) программасын колдонуп, Температураны, Нымдуулукту санариптик жана тилке графасынын формасы, убакытты жана күндү көрсөтүү жана эсептөө убактысын иштетүү