Სარჩევი:
- Ნაბიჯი 1:
- ნაბიჯი 2: რეგისტრაციის კონფიგურაცია
- ნაბიჯი 3: მონაცემთა რეგისტრაცია
- ნაბიჯი 4: ერთჯერადი დასრულების ADC რეჟიმი
- ნაბიჯი 5:
- ნაბიჯი 6: დიფერენციალური ADC რეჟიმი
ვიდეო: Arduino და TI ADS1110 16 ბიტიანი ADC: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
ამ გაკვეთილში ჩვენ განვიხილავთ 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 რეჟიმი
ამ რეჟიმში შეგიძლიათ წაიკითხოთ ძაბვა, რომელიც ეცემა ნულამდე და 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 რეჟიმი
ამ რეჟიმში შეგიძლიათ წაიკითხოთ განსხვავება ორ ძაბვას შორის, რომელიც თითოეული დაეცემა ნულსა და 5 ვ -ს შორის. მაგალითი სქემა მარტივია (მონაცემთა ფურცლიდან).
ჩვენ უნდა აღვნიშნოთ აქ (და მონაცემთა ფურცელში), რომ ADS1110 ვერ მიიღებს უარყოფით ძაბვებს არცერთ შეყვანაზე. თქვენ შეგიძლიათ გამოიყენოთ წინა ესკიზი იგივე შედეგებისთვის- და შედეგად მიღებული ძაბვა იქნება Vin- ის მნიშვნელობა, გამოკლებული Vin+- დან. მაგალითად, თუ თქვენ გექნებათ 2 V Vin+ და 1 V Vin- შედეგად მიღებული ძაბვა იქნება 1 V (მოგების დაყენებით 1).
კიდევ ერთხელ ვიმედოვნებთ, რომ ეს თქვენთვის საინტერესო და, შესაძლოა, სასარგებლოც აღმოჩნდა. ეს პოსტი მოაქვს pmdway.com– ით - ყველაფერი მწარმოებლებისთვის და ელექტრონიკის მოყვარულთათვის, უფასო მიწოდებით მთელს მსოფლიოში.
გირჩევთ:
8 ბიტიანი Arduino ორობითი მრიცხველი: 6 ნაბიჯი
8 ბიტიანი Arduino ორობითი მრიცხველი: 8 ბიტიანი Arduino ორობითი მრიცხველი van ითვლის 0 -დან 255. ეს პროექტი არის მრიცხველი 8 LED- ით Arduino pin 5, 3, 4, 7, 10, 11, 12 & 13 ისე, რომ ის ითვლის მარჯვნიდან მარცხნივ კოდების წარმოქმნით ნულიდან 255 -მდე
MIDI/Arduino კონტროლირებადი 8 ბიტიანი ხმის გენერატორი (AY-3-8910): 5 ნაბიჯი
MIDI/Arduino კონტროლირებადი 8 ბიტიანი ხმის გენერატორი (AY-3-8910): ააშენეთ რეტრო ჟღერადობის 8 ბიტიანი ხმის გენერატორი და გააკონტროლეთ ის MIDI– ს საშუალებით. ეს დიზაინი ნაწილობრივ შთაგონებულია ჩიპტუნის ენთუზიასტებით, რომლებიც ქმნიან არდუინოს სქემებს ჩიპტუნის ფაილებისა და ზოგიერთი ჩემი საკუთარი იდეები ადრეული ვიდეო თამაშების მინუსების ინტეგრირებისთვის
8 ბიტიანი Arduino Gaming: 4 ნაბიჯი
8-ბიტიანი Arduino Gaming: გამარჯობა ბიჭებო! ეს იქნება მარტივი გაკვეთილი, თუ როგორ უნდა შექმნათ 8-ბიტიანი თამაშების დაყენება arduino– ს გამოყენებით
DIY MusiLED, მუსიკა სინქრონიზებული LED- ები ერთი დაწკაპუნებით Windows & Linux აპლიკაციით (32 ბიტიანი და 64 ბიტიანი). ადვილია ხელახლა შექმნა, მარტივი გამოყენება, მოსახერხებელი პორტი .: 3 ნაბიჯი
DIY MusiLED, მუსიკა სინქრონიზებული LED- ები ერთი დაწკაპუნებით Windows & Linux აპლიკაციით (32 ბიტიანი და 64 ბიტიანი). ადვილია ხელახლა შექმნა, გამოყენება ადვილი, მოსახერხებელი პორტი .: ეს პროექტი დაგეხმარებათ დაუკავშიროთ 18 LED (6 წითელი + 6 ლურჯი + 6 ყვითელი) თქვენს Arduino დაფას და გაანალიზოთ თქვენი კომპიუტერის ხმოვანი ბარათის რეალურ დროში სიგნალები და გადაიტანოთ ისინი LED- ები აანთებს მათ დარტყმის ეფექტების მიხედვით (Snare, High Hat, Kick)
Arduino RGB LED ნათურა + 4 ბიტიანი LCD ჩვენება: 4 ნაბიჯი
Arduino RGB LED ნათურა + 4 ბიტიანი LCD ჩვენება: ეს არის ჩემი პირველი სასწავლო !!! კაი .. სანამ გავაგრძელებ. მე არ ჩავდივარ დეტალებში, თუ როგორ უნდა დავჭრათ ხე, ან დავანაწილოთ ყველაფერი ერთად. მე თავისუფლად შევადგინე მშენებლობის მთელი პროცესი, რაც მომივიდა აზრად არის ის, რაც მე განმეორდა. ამ ინსტრუქციის აზრი