Агуулгын хүснэгт:

Arduino ба TI ADS1110 16 битийн ADC: 6 алхам
Arduino ба TI ADS1110 16 битийн ADC: 6 алхам

Видео: Arduino ба TI ADS1110 16 битийн ADC: 6 алхам

Видео: Arduino ба TI ADS1110 16 битийн ADC: 6 алхам
Видео: LDmicro 2: Создание лестничной схемы (программирование лестничной логики ПЛК микроконтроллера с помощью LDmicro) 2024, Арванхоёрдугаар сар
Anonim
Arduino ба TI ADS1110 16 битийн ADC
Arduino ба TI ADS1110 16 битийн ADC

Энэхүү гарын авлагад бид Arduino-ийг ашиглан Texas Instruments ADS1110-тэй ажиллахад маш жижиг боловч ашигтай 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 гэж үлдээгээрэй. Бит 4 нь тасралтгүй түүвэрлэлт (0) эсвэл нэг удаагийн түүвэрлэлт (1) -ийг тохируулдаг. 5 ба 6 битүүдийг үл тоомсорлоорой, гэхдээ тэдгээрийг үргэлж 0 гэж тохируулдаг.

Эцэст нь 7 бит-хэрэв та нэг удаагийн түүвэрлэлтийн горимд байгаа бол үүнийг 1 болгож тохируулснаар дээж авах шаардлагатай болно. Үүнийг унших нь буцаагдсан өгөгдөл шинэ (0) эсвэл хуучин (1) эсэхийг танд хэлэх болно. Та хэмжсэн утга нь шинэ утга эсэхийг шалгаж болно - хэрэв өгөгдлийн дараа ирдэг тохиргооны байтын эхний бит 0 бол энэ нь шинэ юм. Хэрэв энэ нь 1 -ийг буцааж өгвөл ADC хувиргалт дуусаагүй байна.

Алхам 3: Мэдээллийн бүртгэл

ADS1110 нь 16 битийн ADC тул өгөгдлийг хоёр байтаар буцааж өгдөг бөгөөд дараа нь тохиргооны регистрийн утгыг дагаж мөрддөг. Тиймээс, хэрэв та гурван байт хүсвэл бүх багц буцаж ирнэ. Өгөгдөл нь "хоёрын нэмэлт" хэлбэрээр байдаг бөгөөд энэ нь гарын үсэг зурсан тоог хоёртын тоогоор ашиглах арга юм.

Эдгээр хоёр байтыг хөрвүүлэх ажлыг хэд хэдэн энгийн математикаар хийдэг. 15 SPS дээр дээж авах үед ADS1110 -ийн буцааж өгсөн утга (хүчдэл биш) -32768 -аас 32767 -ийн хооронд байна. Утга нь өндөр байтыг 256 -аар үржүүлээд дараа нь доод байт руу нэмнэ. хуваагдсан 32768. Бид удахгүй болох жишээн дээр үүнийг хийж байгаа тул бүү сандар.

Алхам 4: Нэг удаагийн ADC горим

Нэг төгсгөлтэй ADC горим
Нэг төгсгөлтэй ADC горим

Энэ горимд та тэгээс 2.048 В -ийн хоорондох хүчдэлийг уншиж болно (энэ нь ADS1110 -ийн суурилуулсан лавлах хүчдэл юм). Жишээ схем нь энгийн (мэдээллийн хуудаснаас).

I2C автобусны 10 кОм-ийн татах эсэргүүцлийг бүү мартаарай. Дараах зураг нь ADS1110 -ийг анхдагч горимд ашигладаг бөгөөд хэмжсэн хүчдэлийг буцааж өгдөг.

// Жишээ 53.1 - ADS1110 нэг талт вольтметр (0 ~ 2.048VDC) #"Wire.h" -ийг оруулах #зарыг тодорхойлох1110 0x48 хөвөх хүчдэл, өгөгдөл; байт 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 (); }

өгөгдөл = өндөр байт * 256;

өгөгдөл = өгөгдөл + бага байт; Serial.print ("Өгөгдөл >>"); Serial.println (өгөгдөл, DEC); Serial.print ("Хүчдэл >>"); хүчдэл = өгөгдөл * 2.048; хүчдэл = хүчдэл / 32768.0; Цуваа.хэвлэх (хүчдэл, DEC); Serial.println ("V"); саатал (1000); }

Алхам 5:

Зураг
Зураг

Байршуулсны дараа сериал дэлгэцийг хэмжих, нээх дохиог холбоно уу - танд энэ алхам дээр үзүүлсэн цуваа дэлгэцийн зурагтай төстэй зүйлийг үзүүлэх болно.

Хэрэв та ADC -ийн програмчлагдах дотоод өсгөгчийн ашиг орлогыг өөрчлөх шаардлагатай бол дараах тохиргоог ашиглан тохиргооны бүртгэлд шинэ байт бичих шаардлагатай болно.

Wire.beginTransmission (ads1110); Wire.write (тохиргооны байт); Wire.endTransmission ();

ADC өгөгдлийг хүсэхээс өмнө. Энэ нь 2, 4 ба 8 гэсэн утгын хувьд 0x8D, 0x8E эсвэл 0x8F байх бөгөөд ADS1110 -ийг анхны байдалд нь оруулахын тулд 0x8C ашиглана уу.

Алхам 6: Дифференциал ADC горим

ADC -ийн дифференциал горим
ADC -ийн дифференциал горим

Энэ горимд та тэг ба 5 В -ийн хоорондох хоёр хүчдэлийн ялгааг уншиж болно. Жишээ хэлхээ нь энгийн (мэдээллийн хуудаснаас).

ADS1110 нь оролтын аль нэгэнд сөрөг хүчдэлийг хүлээн авах боломжгүй гэдгийг бид энд (мөн мэдээллийн хуудсан дээр) анхаарах ёстой. Үүнтэй ижил үр дүнд хүрэхийн тулд та өмнөх тоймыг ашиглаж болно, тэгээд үүссэн хүчдэл нь Вин+-ээс хассан Вин-ийн утга болно. Жишээлбэл, хэрэв та Вин+ дээр 2 В, Вин дээр 1 В байсан бол хүчдэл 1 В байх болно (олзыг 1 болгосноор).

Дахин нэг удаа бид танд энэ сонирхолтой, хэрэгтэй байж магадгүй гэж найдаж байна. Энэхүү бичлэгийг pmdway.com танд хүргэсэн бөгөөд энэ нь үйлдвэрлэгч болон цахилгаан бараа сонирхогчдод зориулагдсан бүх зүйлийг дэлхий даяар үнэгүй хүргэж өгөх болно.

Зөвлөмж болгож буй: