Talaan ng mga Nilalaman:
- Hakbang 1:
- Hakbang 2: Rehistro ng Pag-configure
- Hakbang 3: Pagrehistro sa Data
- Hakbang 4: Single-tapos na ADC Mode
- Hakbang 5:
- Hakbang 6: Pagkakaiba ng ADC Mode
Video: Arduino at ang TI ADS1110 16-bit ADC: 6 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Sa tutorial na ito sinusuri namin ang paggamit ng Arduino upang gumana sa Texas Instruments ADS1110 - isang napakalaking maliit ngunit kapaki-pakinabang na 16-bit analogue-to-digital converter IC.
Maaari itong gumana sa pagitan ng 2.7 at 5.5 V kaya't mabuti rin para sa Arduino Dahil at iba pang mga board ng pag-unlad na may boltahe na mas mababa. Bago magpatuloy sa anumang karagdagang, mangyaring i-download ang data sheet (pdf) dahil ito ay magiging kapaki-pakinabang at tinutukoy sa panahon ng tutorial na ito. Binibigyan ka ng ADS1110 ng pagpipilian ng isang mas tumpak na ADC kaysa inaalok ng 10-bit ADC ng Arduino - at medyo madali itong gamitin. Gayunpaman magagamit lamang ito bilang isang hubad na bahagi sa SOT23-6.
Hakbang 1:
Ang magandang balita ay maaari kang mag-order ng ADS1110 na naka-mount sa isang napaka-maginhawang breakout board. Gumagamit ang ADS1110 ng I2C bus para sa komunikasyon. At dahil anim na mga pin lamang ang hindi mo maitatakda ang address ng bus - sa halip, maaari kang pumili mula sa anim na variant ng ADS1110 - bawat isa ay may kani-kanilang address (tingnan ang pahina ng dalawang sheet ng data).
Tulad ng nakikita mo sa larawan sa itaas, minarkahan ang "EDO" na tumutugma sa address ng bus na 1001000 o 0x48h. At sa mga halimbawang circuit ay nagamit namin ang 10kΩ pull-up resistors sa I2C bus.
Maaari mong gamitin ang ADS1110 bilang alinman sa isang solong natapos o kaugalian na ADC - Ngunit kailangan muna nating suriin ang rehistro ng pagsasaayos na ginagamit upang makontrol ang iba't ibang mga katangian, at ang rehistro ng data.
Hakbang 2: Rehistro ng Pag-configure
Lumiko sa pahina labing-isang ng sheet ng data. Ang rehistro ng pagsasaayos ay isang byte sa laki, at sa pag-reset ng ADS1110 sa isang power-cycle - kailangan mong i-reset ang rehistro kung ang iyong mga pangangailangan ay naiiba sa mga default. Ang sheet ng data ay binabaybay nang maayos … bits 0 at 1 matukoy ang setting ng makakuha para sa PGA (programmable gain amplifier).
Kung sinusukat mo lang ang mga voltages o eksperimento, iwanan ang mga ito bilang zero para sa isang pakinabang na 1V / V. Susunod, ang rate ng data para sa ADS1110 ay kinokontrol ng mga bit 2 at 3. Kung mayroon kang patuloy na pag-sample na naka-on, tinutukoy nito ang bilang ng mga sample bawat segundo na kinunan ng ADC.
Matapos ang ilang pag-eksperimento sa isang Arduino Uno nalaman namin na ang mga halagang ibinalik mula sa ADC ay medyo naka-off kapag gumagamit ng pinakamabilis na rate, kaya iwanan ito bilang 15 SPS maliban kung kinakailangan sa ibang paraan. Ang Bit 4 ay nagtatakda ng alinman sa tuluy-tuloy na pag-sample (0) o one-off sampling (1). Huwag pansinin ang mga piraso ng 5 at 6, subalit laging itinakda silang 0.
Panghuli bit 7 - kung nasa one-off na mode ng pag-sample ka, ang pagtatakda nito sa 1 ay humihiling ng isang sample - at ang pagbabasa nito ay sasabihin sa iyo kung ang naibalik na data ay bago (0) o luma (1). Maaari mong suriin na ang sinusukat na halaga ay isang bagong halaga - kung ang unang piraso ng byte ng pagsasaayos na darating pagkatapos ng data ay 0, bago ito. Kung nagbabalik ito ng 1 ang ADC conversion ay hindi pa tapos.
Hakbang 3: Pagrehistro sa Data
Tulad ng ADS1110 ay isang 16-bit ADC, ibinabalik nito ang data sa loob ng dalawang byte - at pagkatapos ay sinusundan ang halaga ng rehistro ng pagsasaayos. Kaya kung humiling ka ng tatlong byte ay babalik ang buong lote. Ang data ay nasa form na "magkakompleto", na kung saan ay isang paraan ng paggamit ng mga naka-sign na numero na may binary.
Ang pag-convert sa dalawang byte na iyon ay ginagawa ng ilang simpleng matematika. Kapag ang pag-sample sa 15 SPS, ang halagang ibinalik ng ADS1110 (hindi ang boltahe) ay nahuhulog sa pagitan ng -32768 at 32767. Ang mas mataas na byte ng halaga ay pinarami ng 256, pagkatapos ay idinagdag sa mas mababang byte - na pagkatapos ay pinarami ng 2.048 at sa wakas hinati ng 32768. Huwag panic, tulad ng ginagawa namin ito sa paparating na halimbawa ng sketch.
Hakbang 4: Single-tapos na ADC Mode
Sa mode na ito maaari mong basahin ang isang boltahe na nahuhulog sa pagitan ng zero at 2.048 V (na mangyayari ring maging built-in na boltahe ng sanggunian para sa ADS1110). Ang halimbawa ng circuit ay simple (mula sa sheet ng data).
Huwag kalimutan ang 10kΩ pull-up resistors sa I2C bus. Ang sumusunod na sketch ay gumagamit ng ADS1110 sa default mode, at ibabalik lamang ang boltahe na sinusukat:
// Halimbawa 53.1 - ADS1110 solong panig na voltmeter (0 ~ 2.048VDC) # isama ang "Wire.h" # tukuyin ang mga ad1110 0x48 float boltahe, data; byte highbyte, lowbyte, configRegister; void setup () {Serial.begin (9600); Wire.begin (); } void loop () {Wire.requestFrom (ads1110, 3); habang (Wire.available ()) // matiyak na ang lahat ng data ay dumating sa {highbyte = Wire.read (); // high byte * B11111111 lowbyte = Wire.read (); // low byte configRegister = Wire.read (); }
data = highbyte * 256;
data = data + lowbyte; Serial.print ("Data >>"); Serial.println (data, DEC); Serial.print ("Boltahe >>"); boltahe = data * 2.048; boltahe = boltahe / 32768.0; Serial.print (boltahe, DEC); Serial.println ("V"); pagkaantala (1000); }
Hakbang 5:
Kapag na-upload, ikonekta ang signal upang sukatin at buksan ang serial monitor - bibigyan ka ng isang bagay na katulad ng imaheng serial monitor na ipinapakita sa hakbang na ito.
Kung kailangan mong baguhin ang nakuha ng panloob na ma-programmable na gain amplifier ng ADC - kakailanganin mong magsulat ng isang bagong byte sa rehistro ng pagsasaayos gamit ang:
Wire.beginTransmission (ads1110); Wire.write (pagsasaayos ng byte); Wire.endTransmission ();
bago humiling ng data ng ADC. Ito ay magiging 0x8D, 0x8E o 0x8F para sa mga halaga ng makakuha ng 2, 4 at 8 ayon sa pagkakabanggit - at gamitin ang 0x8C upang i-reset ang ADS1110 pabalik sa default.
Hakbang 6: Pagkakaiba ng ADC Mode
Sa mode na ito maaari mong basahin ang pagkakaiba sa pagitan ng dalawang voltages na bawat pagkahulog sa pagitan ng zero at 5 V. Ang halimbawa ng circuit ay simple (mula sa sheet ng data).
Dapat nating tandaan dito (at sa sheet ng data) na ang ADS1110 ay hindi maaaring tanggapin ang mga negatibong boltahe sa alinman sa mga input. Maaari mong gamitin ang nakaraang sketch para sa parehong mga resulta - at ang magresultang boltahe ay ang halaga ng Vin na binawas mula sa Vin +. Halimbawa, kung mayroon kang 2 V sa Vin + at 1 V sa Vin- ang nagreresultang boltahe ay magiging 1 V (na ang pakinabang ay itinakda sa 1).
Muli kaming umaasa na natagpuan mo ito ng interes, at posibleng kapaki-pakinabang. Ang post na ito ay dinala sa iyo ng pmdway.com - lahat para sa mga tagagawa ng tagahanga at electronics, na may libreng paghahatid sa buong mundo.
Inirerekumendang:
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: 4 na Hakbang
Subukan ang Bare Arduino, Gamit ang Software ng Laro Gamit ang Capacitive Input at LED: " Push-It " Interactive na laro gamit ang isang hubad na Arduino board, walang mga panlabas na bahagi o mga kable na kinakailangan (gumagamit ng isang capacitive 'touch' input). Ipinapakita sa itaas, ipinapakita ang pagtakbo nito sa dalawang magkakaibang board. Push-Mayroon itong dalawang layunin. Upang mabilis na maipakita / v
Sinusubaybayan ng RC ang Robot Gamit ang Arduino - Hakbang sa Hakbang: 3 Mga Hakbang
Sinusubaybayan ng RC ang Robot Gamit ang Arduino - Hakbang-hakbang: Hey guys, bumalik ako kasama ang isa pang cool na chassis ng Robot mula sa BangGood. Inaasahan mong dumaan ka sa aming nakaraang mga proyekto - Spinel Crux V1 - Ang Kinokontrol na Robot ng Gesture, Spinel Crux L2 - Arduino Pick at Place Robot na may Robotic Arms at The Badland Braw
7-segment upang Ipakita ang Mga Halaga ng ADC #Arduino, #Arduino: 4 na Hakbang
7-segment upang Ipakita ang Mga Halaga ng ADC #Arduino, #Arduino: Sa artikulong ito ay gumawa ako ng isang proyekto na nauugnay pa rin sa nakaraang artikulo. Pinangalanang pinoproseso ang data ng ADC. Kaya hindi mo kailangan ng isang serial monitor upang makita ang halaga ng data ng adc. sa artikulong ito ay gagawa ako ng isang display ng manonood ng Halaga ng ADC. kaya hindi mo '
Hindi gumagana ang NODEMcu Usb Port? I-upload ang Code Gamit ang USB sa TTL (FTDI) Module sa 2 Hakbang lamang: 3 Hakbang
Hindi gumagana ang NODEMcu Usb Port? I-upload ang Code Gamit ang USB sa TTL (FTDI) Module sa Lamang 2 Mga Hakbang: Pagod na sa pagkonekta sa maraming mga wire mula sa USB hanggang TTL module sa NODEMcu, sundin ang itinuturo na ito, upang mai-upload ang code sa 2 hakbang lamang. Kung ang USB port ng Ang NODEMcu ay hindi gumagana, pagkatapos ay huwag panic. Ito lang ang USB driver chip o ang konektor ng USB,
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c