جدول المحتويات:
- الخطوة 1:
- الخطوة 2: تسجيل التكوين
- الخطوة 3: تسجيل البيانات
- الخطوة 4: وضع ADC أحادي النهاية
- الخطوة الخامسة:
- الخطوة 6: وضع ADC التفاضلي
فيديو: Arduino و TI ADS1110 16 بت ADC: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
في هذا البرنامج التعليمي ، ندرس استخدام Arduino للعمل مع Texas Instruments ADS1110 - محول IC صغير للغاية ولكنه مفيد 16 بت من التناظرية إلى الرقمية.
يمكن أن تعمل بين 2.7 و 5.5 فولت ، لذا فهي مناسبة أيضًا لـ Arduino Due وغيرها من لوحات التطوير ذات الجهد المنخفض. قبل المتابعة ، يرجى تنزيل ورقة البيانات (pdf) لأنها ستكون مفيدة وسيشار إليها خلال هذا البرنامج التعليمي. يمنحك ADS1110 خيار ADC أكثر دقة مما تقدمه وحدات ADC 10 بت من Arduino - وهو سهل الاستخدام نسبيًا. ومع ذلك ، فهو متاح فقط كجزء مكشوف في SOT23-6.
الخطوة 1:
والخبر السار هو أنه يمكنك طلب ADS1110 المركب على لوحة اختراق مريحة للغاية. يستخدم ADS1110 ناقل I2C للاتصال. نظرًا لوجود ستة دبابيس فقط ، لا يمكنك تعيين عنوان الناقل - بدلاً من ذلك ، يمكنك الاختيار من بين ستة أنواع مختلفة من ADS1110 - لكل منها عنوانه الخاص (انظر الصفحة الثانية من ورقة البيانات).
كما ترى في الصورة أعلاه ، تم وضع علامة "EDO" الخاصة بنا والتي تتطابق مع عنوان الناقل 1001000 أو 0x48h. وباستخدام أمثلة الدوائر ، استخدمنا مقاومات سحب 10kΩ في ناقل I2C.
يمكنك استخدام 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 عبارة عن ADC 16 بت ، فإنه يقوم بإرجاع البيانات التي تزيد عن 2 بايت - ثم يتبعها بقيمة سجل التكوين. لذلك إذا طلبت ثلاثة بايت ، فستعود المجموعة بأكملها. تكون البيانات في شكل "مكمل اثنين" ، وهي طريقة لاستخدام الأرقام الموقعة مع النظام الثنائي.
يتم تحويل هذين البايتين بواسطة بعض العمليات الحسابية البسيطة. عند أخذ العينات عند 15 SPS ، تقع القيمة التي تم إرجاعها بواسطة ADS1110 (وليس الجهد) بين -32768 و 32767. يتم ضرب البايت الأعلى من القيمة بـ 256 ، ثم يضاف إلى البايت السفلي - والذي يتم بعد ذلك ضربه في 2.048 وأخيراً مقسومًا على 32768. لا داعي للذعر ، لأننا نفعل ذلك في المثال التالي للرسم.
الخطوة 4: وضع ADC أحادي النهاية
في هذا الوضع ، يمكنك قراءة الجهد الذي يقع بين صفر و 2.048 فولت (والذي يحدث أيضًا أنه الجهد المرجعي المدمج في ADS1110). دارة المثال بسيطة (من ورقة البيانات).
لا تنس مقاومات السحب 10kΩ في حافلة I2C. يستخدم الرسم التخطيطي التالي ADS1110 في الوضع الافتراضي ، ويعيد الجهد المقاس ببساطة:
// مثال 53.1 - ADS1110 الفولتميتر أحادي الجانب (0 ~ 2.048VDC) # يتضمن "Wire.h" # تعريف ads1110 0x48 الجهد العائم ، البيانات ؛ بايت مرتفع ، بايت منخفض ، configRegister ؛ إعداد باطل () {Serial.begin (9600) ؛ Wire.begin () ؛ } حلقة فارغة () {Wire.requestFrom (ads1110، 3)؛ while (Wire.available ()) // تأكد من أن جميع البيانات تأتي في {highbyte = Wire.read () ؛ // بايت مرتفع * B11111111 منخفض بايت = Wire.read () ؛ // تهيئة منخفضة البايت = Wire.read () ؛ }
البيانات = ارتفاع بايت * 256 ؛
البيانات = بيانات + بايت منخفض ؛ Serial.print ("البيانات >>") ؛ Serial.println (بيانات ، DEC) ؛ Serial.print ("الجهد >>") ؛ الجهد = البيانات * 2.048 ؛ الجهد = الجهد / 32768.0 ؛ Serial.print (الجهد ، DEC) ؛ Serial.println ("V") ؛ تأخير (1000) ؛ }
الخطوة الخامسة:
بمجرد التحميل ، قم بتوصيل الإشارة للقياس وافتح الشاشة التسلسلية - سيتم تقديمك بشيء مشابه لصورة الشاشة التسلسلية الموضحة في هذه الخطوة.
إذا كنت بحاجة إلى تغيير كسب مضخم الكسب الداخلي القابل للبرمجة الخاص بـ ADC - فستحتاج إلى كتابة بايت جديد في سجل التكوين باستخدام:
Wire.beginTransmission (ads1110) ؛ Wire.write (بايت التكوين) ؛ Wire.endTransmission () ؛
قبل طلب بيانات ADC. سيكون هذا هو 0x8D أو 0x8E أو 0x8F لقيم الكسب 2 و 4 و 8 على التوالي - واستخدم 0x8C لإعادة تعيين ADS1110 إلى الوضع الافتراضي.
الخطوة 6: وضع ADC التفاضلي
في هذا الوضع ، يمكنك قراءة الفرق بين جهدين يقع كل منهما بين صفر و 5 فولت. الدائرة النموذجية بسيطة (من ورقة البيانات).
يجب أن نلاحظ هنا (وفي ورقة البيانات) أن ADS1110 لا يمكن أن يقبل الفولتية السالبة على أي من المدخلات. يمكنك استخدام الرسم السابق لنفس النتائج - والجهد الناتج سيكون قيمة Vin- مطروحًا من Vin +. على سبيل المثال ، إذا كان لديك 2 فولت على Vin + و 1 فولت على Vin- فسيكون الجهد الناتج 1 فولت (مع ضبط الكسب على 1).
مرة أخرى ، نأمل أن تكون قد وجدت هذا الاهتمام ، وربما يكون مفيدًا. هذا المنشور يقدمه لك pmdway.com - كل شيء للصانعين وعشاق الإلكترونيات ، مع التوصيل المجاني في جميع أنحاء العالم.
موصى به:
كيفية جعل ADC الحالي هو: 5 خطوات
كيفية جعل إحساس ADC الحالي: في هذا Instructable ، سنصف كيفية تنفيذ محول تناظري إلى رقمي 8 بت (ADC) في SLG46855V يمكنه استشعار تيار التحميل والواجهة مع MCU عبر I2C. يمكن استخدام هذا التصميم للعديد من تطبيقات الاستشعار الحالية مثل
7 شرائح لعرض ADC #Arduino Values ، #Arduino: 4 خطوات
7-مقطع لعرض ADC #Arduino Values ، #Arduino: في هذه المقالة سأقوم بعمل مشروع لا يزال مرتبطًا بالمقال السابق. وهي معالجة بيانات ADC. لذلك لا تحتاج إلى جهاز عرض تسلسلي لمعرفة قيمة بيانات adc. في هذه المقالة سأقوم بعرض عارض قيمة ADC. لذلك أنت لا
قراءة قيم ADC من مقاييس الجهد: 4 خطوات
قراءة قيم ADC من مقاييس الجهد: سأوضح لك في هذه المقالة كيفية قراءة قيم ADC من مقياس الجهد. هذا هو أساس برمجة Arduino. الذي يقرأ القيم التناظرية باستخدام الدبوس التناظري الذي يوفره Arduino. إلى جانب استخدام القوة ، هناك العديد من المستشعرات التي
Arduino و PCF8591 ADC DAC IC: 7 خطوات
Arduino و PCF8591 ADC DAC IC: هل سبق لك أن أردت المزيد من دبابيس الإدخال التناظرية في مشروع Arduino الخاص بك ، ولكنك لم ترغب في الخروج من أجل Mega؟ أو هل ترغب في توليد إشارات تناظرية؟ ثم تحقق من موضوع البرنامج التعليمي الخاص بنا - NXP PCF8591 IC الذي يحل هاتين المشكلتين
قم بتشغيل الأغاني باستخدام Arduino باستخدام ADC إلى PWM على Flyback Transformer أو مكبر الصوت: 4 خطوات
قم بتشغيل الأغاني باستخدام Arduino باستخدام ADC إلى PWM على Flyback Transformer أو مكبر الصوت: مرحبًا يا شباب ، هذا هو الجزء الثاني من تعليماتي الأخرى (التي كانت صعبة للغاية) ، في الأساس ، في هذا المشروع ، استخدمت ADC و TIMERS على Arduino الخاص بي تحويل الإشارة الصوتية إلى إشارة PWM. هذا أسهل بكثير من إرشاداتي السابقة