Агуулгын хүснэгт:
- 1-р алхам:
- Алхам 2: Тохиргооны бүртгэл
- Алхам 3: Мэдээллийн бүртгэл
- Алхам 4: Нэг удаагийн ADC горим
- Алхам 5:
- Алхам 6: Дифференциал ADC горим
Видео: Arduino ба TI ADS1110 16 битийн ADC: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Энэхүү гарын авлагад бид 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 горим
Энэ горимд та тэгээс 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 горим
Энэ горимд та тэг ба 5 В -ийн хоорондох хоёр хүчдэлийн ялгааг уншиж болно. Жишээ хэлхээ нь энгийн (мэдээллийн хуудаснаас).
ADS1110 нь оролтын аль нэгэнд сөрөг хүчдэлийг хүлээн авах боломжгүй гэдгийг бид энд (мөн мэдээллийн хуудсан дээр) анхаарах ёстой. Үүнтэй ижил үр дүнд хүрэхийн тулд та өмнөх тоймыг ашиглаж болно, тэгээд үүссэн хүчдэл нь Вин+-ээс хассан Вин-ийн утга болно. Жишээлбэл, хэрэв та Вин+ дээр 2 В, Вин дээр 1 В байсан бол хүчдэл 1 В байх болно (олзыг 1 болгосноор).
Дахин нэг удаа бид танд энэ сонирхолтой, хэрэгтэй байж магадгүй гэж найдаж байна. Энэхүү бичлэгийг pmdway.com танд хүргэсэн бөгөөд энэ нь үйлдвэрлэгч болон цахилгаан бараа сонирхогчдод зориулагдсан бүх зүйлийг дэлхий даяар үнэгүй хүргэж өгөх болно.
Зөвлөмж болгож буй:
Хайрцган дахь гурван францын тахиа (микро: битийн хамт): 10 алхам
Хайрцган дахь гурван франц тахиа (Micro: bit -тэй): Гурван тахиа хайрцагнаас үсрэн гарч буй хүмүүсийг гайхшруулах (эсвэл айлгах). Сонгодог Jack-in-the-box дээр электроник бүхий баярын эргэлт. Эдгээр гурван тахиа бол мэдээж францчууд юм
Arduino Nano-MMA8452Q 3 тэнхлэг 12 бит/8 битийн дижитал хурдасгуурын заавар: 4 алхам
Arduino Nano-MMA8452Q 3 тэнхлэг 12 бит/8 битийн дижитал хурдасгуурын заавар: MMA8452Q нь ухаалаг, бага чадалтай, гурван тэнхлэгтэй, багтаамж сайтай, бичил машинаар тоноглогдсон 12 битийн нарийвчлалтай. Хэрэглэгчийн програмчлагдах уян хатан сонголтуудыг акселерометрт суулгасан функцүүдийн тусламжтайгаар хоёр тасалдалд тохируулж өгдөг
MIDI/Arduino удирдлагатай 8 битийн дуу үүсгэгч (AY-3-8910): 5 алхам
MIDI/Arduino удирдлагатай 8 битийн дууны үүсгүүр (AY-3-8910): Retro дуу чимээтэй 8 битийн дуу үүсгэгч бүтээж, MIDI-ээр дамжуулан удирддаг бөгөөд энэхүү дизайныг Chiptune сонирхогчид Chiptune файлуудыг тоглуулахын тулд Arduino хэлхээг бүтээсэн хэсэгчлэн өдөөгдсөн болно. Анхны видео тоглоомын сул талыг нэгтгэх миний өөрийн санаа
8 битийн Arduino Gaming: 4 алхам
8 битийн Arduino Gaming: Сайн байна уу залуусаа! Энэ бол arduino ашиглан 8 битийн тоглоомын тохиргоог хэрхэн хийх тухай энгийн заавар болно
Arduino RGB LED чийдэн + 4 битийн LCD дэлгэц: 4 алхам
Arduino RGB LED чийдэн + 4 битийн LCD дэлгэц: Энэ бол миний анхны заавар !!! за .. Үргэлжлүүлэхээсээ өмнө. Би модыг хэрхэн яаж тайрах, эсвэл бүгдийг нь хамтад нь хуваах талаар дэлгэрэнгүй ярьдаггүй. Би бүтээх явцыг бүхэлд нь чөлөөлсөн. Энэхүү зааврын утга учир нь