Სარჩევი:

Arduino და TI ADS1110 16 ბიტიანი ADC: 6 ნაბიჯი
Arduino და TI ADS1110 16 ბიტიანი ADC: 6 ნაბიჯი

ვიდეო: Arduino და TI ADS1110 16 ბიტიანი ADC: 6 ნაბიჯი

ვიდეო: Arduino და TI ADS1110 16 ბიტიანი ADC: 6 ნაბიჯი
ვიდეო: How to use 5V Relay with Arduino to turn ON and OFF AC bulb or DC load 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 გაძლევთ უფრო ზუსტი ADC ვარიანტს, ვიდრე გთავაზობთ Arduino– ს 10 ბიტიანი ADC– ები-და მისი გამოყენება შედარებით ადვილია. თუმცა ის მხოლოდ შიშველი ნაწილის სახით არის ხელმისაწვდომი SOT23-6– ში.

Ნაბიჯი 1:

გამოსახულება
გამოსახულება

კარგი ამბავი ის არის, რომ თქვენ შეგიძლიათ შეუკვეთოთ ADS1110, რომელიც დამონტაჟებულია ძალიან მოსახერხებელ გარღვევის დაფაზე. ADS1110 იყენებს I2C ავტობუსს კომუნიკაციისთვის. და ვინაიდან მხოლოდ ექვსი პინია, თქვენ არ შეგიძლიათ დააყენოთ ავტობუსის მისამართი - ამის ნაცვლად, შეგიძლიათ აირჩიოთ ADS1110– ის ექვსი ვარიანტიდან - თითოეულს თავისი მისამართი (იხ. მონაცემთა ფურცლის მეორე გვერდი).

როგორც ხედავთ ზემოთ მოცემულ ფოტოში, ჩვენზე აღინიშნება "EDO", რომელიც ემთხვევა ავტობუსის მისამართს 1001000 ან 0x48 სთ. და სქემების მაგალითით ჩვენ გამოვიყენეთ 10kΩ გამყვანი რეზისტორები I2C ავტობუსზე.

თქვენ შეგიძლიათ გამოიყენოთ ADS1110 როგორც ერთჯერადი ან დიფერენციალური ADC-მაგრამ ჯერ ჩვენ უნდა შევამოწმოთ კონფიგურაციის რეესტრი, რომელიც გამოიყენება სხვადასხვა ატრიბუტების გასაკონტროლებლად და მონაცემთა რეგისტრი.

ნაბიჯი 2: რეგისტრაციის კონფიგურაცია

გადადით მონაცემთა ფურცლის მეთერთმეტე გვერდზე. კონფიგურაციის რეესტრი არის ერთი ბაიტი და ADS1110 გადადის ენერგიის ციკლზე-თქვენ უნდა აღადგინოთ რეგისტრი, თუ თქვენი მოთხოვნილებები განსხვავდება ნაგულისხმევისგან. მონაცემთა ფურცელი ასახავს მას საკმაოდ neatly … ბიტი 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 -ით, შემდეგ დაემატება ქვედა ბაიტს -რომელიც შემდეგ მრავლდება 2.048 -ით და ბოლოს გაყოფილი 32768 -ით. ნუ პანიკა, რადგან ჩვენ ამას ვაკეთებთ მომავალი მაგალითის ესკიზში.

ნაბიჯი 4: ერთჯერადი დასრულების ADC რეჟიმი

ერთჯერადი დასრულების ADC რეჟიმი
ერთჯერადი დასრულების ADC რეჟიმი

ამ რეჟიმში შეგიძლიათ წაიკითხოთ ძაბვა, რომელიც ეცემა ნულამდე და 2.048 V- ს შორის (რაც ასევე ხდება ჩაშენებული საცნობარო ძაბვა ADS1110– ისთვის). მაგალითი სქემა მარტივია (მონაცემთა ფურცლიდან).

არ დაივიწყოთ 10kΩ გამყვანი რეზისტორები I2C ავტობუსზე. შემდეგი ესკიზი იყენებს ADS1110 ნაგულისხმევ რეჟიმში და უბრალოდ აბრუნებს გაზომილ ძაბვას:

// მაგალითი 53.1 - ADS1110 ცალმხრივი ვოლტმეტრი (0 ~ 2.048VDC) #მოიცავს "Wire.h" #განსაზღვრა ads1110 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; Serial.print (ძაბვა, DEC); Serial.println ("V"); დაგვიანება (1000); }

ნაბიჯი 5:

გამოსახულება
გამოსახულება

ატვირთვის შემდეგ დააკავშირეთ სიგნალი სერიული მონიტორის გასაზომად და გასახსნელად - თქვენ მოგეცემათ მსგავსი რამ ამ ნაბიჯში ნაჩვენები სერიული მონიტორის სურათისა.

თუ თქვენ გჭირდებათ შეცვალოთ ADC შიდა პროგრამირებადი მოგების გამაძლიერებელი - თქვენ უნდა ჩაწეროთ ახალი ბაიტი კონფიგურაციის რეესტრში გამოყენებით:

Wire.beginTransmission (ads1110); Wire.write (კონფიგურაციის ბაიტი); Wire.endTransmission ();

სანამ ADC მონაცემებს ითხოვენ. ეს იქნება 0x8D, 0x8E ან 0x8F შესაბამისად 2, 4 და 8 მნიშვნელობების მოსაპოვებლად - და გამოიყენეთ 0x8C ADS1110 ნაგულისხმევად დასაბრუნებლად.

ნაბიჯი 6: დიფერენციალური ADC რეჟიმი

დიფერენციალური ADC რეჟიმი
დიფერენციალური ADC რეჟიმი

ამ რეჟიმში შეგიძლიათ წაიკითხოთ განსხვავება ორ ძაბვას შორის, რომელიც თითოეული დაეცემა ნულსა და 5 ვ -ს შორის. მაგალითი სქემა მარტივია (მონაცემთა ფურცლიდან).

ჩვენ უნდა აღვნიშნოთ აქ (და მონაცემთა ფურცელში), რომ ADS1110 ვერ მიიღებს უარყოფით ძაბვებს არცერთ შეყვანაზე. თქვენ შეგიძლიათ გამოიყენოთ წინა ესკიზი იგივე შედეგებისთვის- და შედეგად მიღებული ძაბვა იქნება Vin- ის მნიშვნელობა, გამოკლებული Vin+- დან. მაგალითად, თუ თქვენ გექნებათ 2 V Vin+ და 1 V Vin- შედეგად მიღებული ძაბვა იქნება 1 V (მოგების დაყენებით 1).

კიდევ ერთხელ ვიმედოვნებთ, რომ ეს თქვენთვის საინტერესო და, შესაძლოა, სასარგებლოც აღმოჩნდა. ეს პოსტი მოაქვს pmdway.com– ით - ყველაფერი მწარმოებლებისთვის და ელექტრონიკის მოყვარულთათვის, უფასო მიწოდებით მთელს მსოფლიოში.

გირჩევთ: