Satura rādītājs:
- 1. darbība:
- 2. darbība: konfigurācijas reģistrs
- 3. darbība: datu reģistrs
- 4. solis: vienpusējs ADC režīms
- 5. darbība:
- 6. solis: Diferenciālais ADC režīms
Video: Arduino un TI ADS1110 16 bitu ADC: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:55
Šajā apmācībā mēs pārbaudām, izmantojot Arduino, lai strādātu ar Texas Instruments ADS1110-neticami mazu, bet noderīgu 16 bitu analogo ciparu pārveidotāju IC.
Tas var darboties no 2,7 līdz 5,5 V, tāpēc tas ir piemērots arī Arduino Due un citām zemāka sprieguma attīstības plāksnēm. Pirms turpināt, lūdzu, lejupielādējiet datu lapu (pdf), jo tā būs noderīga un norādīta šajā apmācībā. ADS1110 piedāvā precīzākas ADC iespējas, nekā piedāvā Arduino 10 bitu ADC-un to ir salīdzinoši viegli lietot. Tomēr tas ir pieejams tikai kā tukša detaļa SOT23-6.
1. darbība:
Labā ziņa ir tā, ka jūs varat pasūtīt ADS1110, kas uzstādīts uz ļoti ērtas sadalīšanas plates. ADS1110 saziņai izmanto I2C kopni. Tā kā ir tikai sešas tapas, jūs nevarat iestatīt kopnes adresi - tā vietā varat izvēlēties no sešiem ADS1110 variantiem - katram ir sava adrese (skatiet datu lapas otro lapu).
Kā redzat iepriekš redzamajā fotoattēlā, mūsējais ir apzīmēts ar “EDO”, kas atbilst autobusa adresei 1001000 vai 0x48h. Izmantojot ķēžu paraugus, I2C kopnē esam izmantojuši 10kΩ pievilkšanas rezistorus.
Jūs varat izmantot ADS1110 kā vienpusēju vai diferenciālu ADC-bet vispirms mums ir jāpārbauda konfigurācijas reģistrs, ko izmanto, lai kontrolētu dažādus atribūtus, un datu reģistrs.
2. darbība: konfigurācijas reģistrs
Pārejiet uz datu lapas vienpadsmito lapu. Konfigurācijas reģistrs ir viena baita liels, un, tā kā ADS1110 tiek atiestatīts ieslēgšanas ciklā-reģistrs ir jāatiestata, ja jūsu vajadzības atšķiras no noklusējuma. Datu lapa to izskaidro diezgan glīti … biti 0 un 1 nosaka pastiprinājuma iestatījumu PGA (programmējams pastiprinājuma pastiprinātājs).
Ja jūs vienkārši mērāt spriegumu vai eksperimentējat, atstājiet to kā nulli, lai iegūtu 1V/V pastiprinājumu. Tālāk ADS1110 datu pārraides ātrumu kontrolē ar 2. un 3. bitu. Ja ir ieslēgta nepārtraukta paraugu ņemšana, tas nosaka ADC ņemto paraugu skaitu sekundē.
Pēc dažiem eksperimentiem ar Arduino Uno mēs atklājām, ka, izmantojot ātrāko likmi, no ADC atgrieztās vērtības bija nedaudz izslēgtas, tāpēc atstājiet to kā 15 SPS, ja vien nav noteikts citādi. 4. bits nosaka nepārtrauktu paraugu ņemšanu (0) vai vienreizēju paraugu ņemšanu (1). Ignorējiet 5. un 6. bitu, taču tie vienmēr ir iestatīti kā 0.
Visbeidzot, 7. bits-ja esat vienreizējā izlases režīmā, iestatot to uz 1, tiek pieprasīts paraugs-un to izlasot, tiks parādīts, vai atgrieztie dati ir jauni (0) vai veci (1). Varat pārbaudīt, vai izmērītā vērtība ir jauna vērtība - ja pirmais konfigurācijas baita bits, kas nāk pēc datiem, ir 0, tas ir jauns. Ja tas atgriež 1, ADC reklāmguvums nav pabeigts.
3. darbība: datu reģistrs
Tā kā ADS1110 ir 16 bitu ADC, tas atgriež datus par diviem baitiem-un pēc tam seko konfigurācijas reģistra vērtībai. Tātad, ja jūs pieprasāt trīs baitus, visa partija atgriezīsies. Dati ir “divu papildinājuma” formā, kas ir metode parakstītu skaitļu izmantošanai ar bināro.
Šo divu baitu konvertēšanu veic vienkārša matemātika. Veicot paraugu ņemšanu pie 15 SPS, ADS1110 atgrieztā vērtība (nevis spriegums) ir no -32768 līdz 32767. Augstākais vērtības baits tiek reizināts ar 256, pēc tam pievienots apakšējam baitam -kas pēc tam tiek reizināts ar 2,048 un visbeidzot dalīts ar 32768. Nekrītiet panikā, jo mēs to darām gaidāmajā parauga skicē.
4. solis: vienpusējs ADC režīms
Šajā režīmā var nolasīt spriegumu, kas ir no nulles līdz 2,048 V (kas arī ir iebūvētais atsauces spriegums ADS1110). Piemēra shēma ir vienkārša (no datu lapas).
Neaizmirstiet I2C kopnes 10kΩ pievilkšanas rezistorus. Šajā skicē noklusējuma režīmā tiek izmantots ADS1110 un vienkārši tiek atgriezts izmērītais spriegums:
// 53.1 piemērs - ADS1110 vienpusējs voltmetrs (0 ~ 2,048VDC) #iekļauj "Wire.h" #define ads1110 0x48 pludiņa spriegums, dati; baits liels baits, zems baits, configRegister; void setup () {Serial.begin (9600); Wire.begin (); } void loop () {Wire.requestFrom (ads1110, 3); while (Wire.available ()) // pārliecinieties, ka visi dati tiek ievadīti {highbyte = Wire.read (); // augsts baits * B11111111 zems baits = Wire.read (); // zems baits configRegister = Wire.read (); }
dati = baits * 256;
dati = dati + zems baits; Serial.print ("Dati >>"); Serial.println (dati, DEC); Serial.print ("Spriegums >>"); spriegums = dati * 2.048; spriegums = spriegums / 32768.0; Sērijas nospiedums (spriegums, DEC); Serial.println ("V"); kavēšanās (1000); }
5. darbība:
Pēc augšupielādes pievienojiet signālu sērijas monitora mērīšanai un atvēršanai - jums tiks parādīts kaut kas līdzīgs sērijveida monitora attēlam, kas parādīts šajā solī.
Ja jums ir jāmaina ADC iekšējā programmējamā pastiprinātāja pastiprinājums, jums konfigurācijas reģistrā jāraksta jauns baits, izmantojot:
Wire.beginTransmission (ads1110); Wire.write (konfigurācijas baits); Wire.endTransmission ();
pirms ADC datu pieprasīšanas. Tas būtu 0x8D, 0x8E vai 0x8F attiecīgi 2, 4 un 8 pastiprinājuma vērtībām - un izmantojiet 0x8C, lai atiestatītu ADS1110 noklusējuma vērtību.
6. solis: Diferenciālais ADC režīms
Šajā režīmā jūs varat izlasīt atšķirību starp diviem spriegumiem, kas katrs ir starp nulli un 5 V. Piemēra shēma ir vienkārša (no datu lapas).
Šeit (un datu lapā) mums jāatzīmē, ka ADS1110 nevar pieņemt negatīvus spriegumus nevienā no ieejām. Tiem pašiem rezultātiem varat izmantot iepriekšējo skici- un iegūtais spriegums būs Vin vērtība, kas atņemta no Vin+. Piemēram, ja jums būtu 2 V uz Vin+ un 1 V uz Vin, iegūtais spriegums būtu 1 V (ar pastiprinājumu iestatīts uz 1).
Mēs vēlreiz ceram, ka jums tas šķita interesanti un, iespējams, noderīgi. Šo ziņu jums sniedza pmdway.com - viss veidotājiem un elektronikas entuziastiem ar bezmaksas piegādi visā pasaulē.
Ieteicams:
Arduino Nano-MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra apmācība: 4 soļi
Arduino Nano-MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra apmācība: MMA8452Q ir gudrs, mazjaudas, trīs asu, kapacitatīvs, mikromehāniski apstrādāts akselerometrs ar 12 bitu izšķirtspēju. Elastīgas lietotāja programmējamas iespējas tiek nodrošinātas, izmantojot akselerometrā iekļautās funkcijas, kuras var konfigurēt līdz diviem pārtraukumiem
Raspberry Pi MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra Python apmācība: 4 soļi
Raspberry Pi MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra Python apmācība: MMA8452Q ir gudrs, mazjaudas, trīs asu, kapacitatīvs, mikromehāniski apstrādāts akselerometrs ar 12 bitu izšķirtspēju. Elastīgas lietotāja programmējamas iespējas tiek nodrošinātas, izmantojot akselerometrā iekļautās funkcijas, kuras var konfigurēt līdz diviem pārtraukumiem
MIDI/Arduino kontrolēts 8 bitu skaņas ģenerators (AY-3-8910): 5 soļi
MIDI/Arduino kontrolēts 8 bitu skaņas ģenerators (AY-3-8910): izveidojiet retro skanošu 8 bitu skaņas ģeneratoru un kontrolējiet to, izmantojot MIDI. Šo dizainu daļēji iedvesmojuši Chiptune entuziasti, kas veido Arduino shēmas, lai atskaņotu Chiptune failus un dažus manas idejas integrēt agrīno videospēļu mīnusus
Raspberry Pi MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra Java apmācība: 4 soļi
Raspberry Pi MMA8452Q 3 asu 12 bitu/8 bitu digitālā akselerometra Java apmācība: MMA8452Q ir gudrs, mazjaudas, trīs asu, kapacitatīvs, mikromehāniski apstrādāts akselerometrs ar 12 bitu izšķirtspēju. Elastīgas lietotāja programmējamas iespējas tiek nodrošinātas, izmantojot akselerometrā iekļautās funkcijas, kuras var konfigurēt līdz diviem pārtraukumiem
DIY MusiLED, mūzikas sinhronizētas gaismas diodes ar viena klikšķa Windows un Linux lietojumprogrammu (32 bitu un 64 bitu). Viegli atjaunot, ērti lietot, viegli pārvietot: 3 soļi
DIY MusiLED, mūzikas sinhronizētas gaismas diodes ar viena klikšķa Windows un Linux lietojumprogrammu (32 bitu un 64 bitu). Viegli atjaunojams, ērti lietojams, viegli pārvietojams: Šis projekts palīdzēs jums savienot 18 gaismas diodes (6 sarkanas + 6 zilas + 6 dzeltenas) ar Arduino plati un analizēt datora skaņas kartes reāllaika signālus un pārsūtīt tos uz gaismas diodes, lai tās iedegtos saskaņā ar sitienu efektiem (Snare, High Hat, Kick)