Isi kandungan:

Pin Arduino AREF: 6 Langkah
Pin Arduino AREF: 6 Langkah

Video: Pin Arduino AREF: 6 Langkah

Video: Pin Arduino AREF: 6 Langkah
Video: Arduino AREF pin 2024, Julai
Anonim
Pin Arduino AREF
Pin Arduino AREF

Dalam tutorial ini kita akan melihat bagaimana anda dapat mengukur voltan yang lebih kecil dengan ketepatan yang lebih tinggi menggunakan pin input analog pada Arduino atau papan serasi anda bersama dengan pin AREF. Walau bagaimanapun, pertama kami akan melakukan semakan semula agar anda dapat mencapai tahap yang pantas. Sila baca catatan ini sepenuhnya sebelum bekerjasama dengan AREF pada kali pertama.

Langkah 1: Semakan

Ulang kaji!
Ulang kaji!

Anda mungkin ingat bahawa anda boleh menggunakan fungsi Arduino analogRead () untuk mengukur voltan arus elektrik dari sensor dan seterusnya menggunakan salah satu pin input analog. Nilai yang dikembalikan dari analogRead () adalah antara sifar hingga 1023, dengan sifar mewakili sifar volt dan 1023 mewakili voltan operasi papan Arduino yang digunakan.

Dan apabila kita katakan voltan operasi - inilah voltan yang tersedia untuk Arduino selepas litar bekalan kuasa. Sebagai contoh, jika anda mempunyai papan Arduino Uno khas dan jalankan dari soket USB - pasti, terdapat 5V yang tersedia untuk papan dari soket USB di komputer atau hab anda - tetapi voltan dikurangkan sedikit kerana arus semasa di sekitar litar ke mikrokontroler - atau sumber USB tidak sampai awal.

Ini dapat dibuktikan dengan mudah dengan menyambungkan Arduino Uno ke USB dan meletakkan set multimeter untuk mengukur voltan pada pin 5V dan GND. Beberapa papan akan kembali serendah 4.8 V, ada yang lebih tinggi tetapi masih di bawah 5V. Oleh itu, jika anda memerlukan ketepatan, pasangkan papan anda dari bekalan kuasa luaran melalui soket DC atau pin Vin - seperti 9V DC. Kemudian setelah melalui litar pengatur kuasa, anda akan mendapat 5V yang bagus, seperti gambar.

Ini penting kerana ketepatan nilai analogRead () akan dipengaruhi oleh tidak mempunyai 5 V. yang benar. Sekiranya anda tidak mempunyai pilihan, anda boleh menggunakan beberapa matematik dalam lakaran anda untuk mengimbangi penurunan voltan. Contohnya, jika voltan anda ialah 4.8V - julat analogRead () 0 ~ 1023 akan berkait dengan 0 ~ 4.8V dan bukan 0 ~ 5V. Ini mungkin terdengar sepele, namun jika anda menggunakan sensor yang mengembalikan nilai sebagai voltan (mis. Sensor suhu TMP36) - nilai yang dikira akan salah. Oleh itu, demi ketepatan, gunakan bekalan kuasa luaran.

Langkah 2: Mengapa AnalogRead () Mengembalikan Nilai Antara 0 dan 1023?

Mengapa AnalogRead () Mengembalikan Nilai Antara 0 dan 1023?
Mengapa AnalogRead () Mengembalikan Nilai Antara 0 dan 1023?

Ini disebabkan oleh resolusi ADC. Resolusi (untuk artikel ini) adalah sejauh mana sesuatu dapat ditunjukkan secara berangka. Semakin tinggi resolusi, ketepatan yang lebih besar dapat menggambarkan sesuatu. Kami mengukur resolusi dari segi bilangan bit resolusi.

Sebagai contoh, resolusi 1-bit hanya akan membenarkan dua (dua kekuatan satu) nilai - sifar dan satu. Resolusi 2-bit membolehkan empat (dua hingga dua kekuatan) nilai - sifar, satu, dua dan tiga. Sekiranya kita cuba mengukur julat lima volt dengan resolusi dua bit, dan voltan yang diukur adalah empat volt, ADC kita akan mengembalikan nilai berangka 3 - kerana empat volt jatuh antara 3,75 dan 5V. Lebih mudah untuk membayangkan ini dengan gambar.

Jadi dengan contoh ADC kami dengan resolusi 2-bit, ia hanya dapat mewakili voltan dengan empat kemungkinan nilai yang dihasilkan. Sekiranya voltan input turun antara 0 dan 1,25, ADC mengembalikan angka 0; jika voltan turun antara 1.25 dan 2.5, ADC mengembalikan nilai berangka 1. Dan seterusnya. Dengan julat ADC Arduino kami 0 ~ 1023 - kami mempunyai 1024 kemungkinan nilai - atau 2 hingga kekuatan 10. Oleh itu, Arduino kami mempunyai ADC dengan resolusi 10-bit.

Langkah 3: Jadi Apa itu AREF?

Untuk menyingkat cerita pendek, apabila Arduino anda membaca analog, ia membandingkan voltan yang diukur pada pin analog yang digunakan dengan yang dikenali sebagai voltan rujukan. Dalam penggunaan analogRead biasa, voltan rujukan adalah voltan operasi papan.

Untuk papan Arduino yang lebih popular seperti papan Uno, Mega, Duemilanove dan Leonardo / Yún, voltan operasi 5V. Sekiranya anda mempunyai papan Arduino Due, voltan operasi ialah 3.3V. Sekiranya anda mempunyai sesuatu yang lain - periksa halaman produk Arduino atau tanyakan kepada pembekal papan anda.

Oleh itu, jika anda mempunyai voltan rujukan 5V, setiap unit yang dikembalikan oleh analogRead () bernilai 0,00488 V. (Ini dikira dengan membahagi 1024 menjadi 5V). Bagaimana jika kita mahu mengukur voltan antara 0 dan 2, atau 0 dan 4.6? Bagaimana ADC dapat mengetahui berapa 100% julat voltan kita?

Dan di dalamnya terdapat alasan untuk pin AREF. AREF bermaksud Analog Rujukan. Ini membolehkan kita memberi makan Arduino voltan rujukan dari bekalan kuasa luaran. Sebagai contoh, jika kita ingin mengukur voltan dengan julat maksimum 3.3V, kita akan memasukkan 3.3V lancar ke pin AREF - mungkin dari IC pengatur voltan.

Kemudian setiap langkah ADC akan mewakili sekitar 3,22 milivolt (bahagi 1024 menjadi 3.3). Perhatikan bahawa voltan rujukan terendah yang anda dapat ialah 1.1V. Terdapat dua bentuk AREF - dalaman dan luaran, jadi mari kita lihat.

Langkah 4: AREF luaran

AREF luaran adalah tempat anda membekalkan voltan rujukan luaran ke papan Arduino. Ini boleh datang dari bekalan kuasa terkawal, atau jika anda memerlukan 3.3V, anda boleh mendapatkannya dari pin 3.3V Arduino. Sekiranya anda menggunakan bekalan kuasa luaran, pastikan untuk menyambungkan GND ke pin GND Arduino. Atau jika anda menggunakan sumber 3.3V Arduno - jalankan pelompat dari pin 3.3V ke pin AREF.

Untuk mengaktifkan AREF luaran, gunakan yang berikut dalam persediaan kosong ():

analogReference (LUARAN); // gunakan AREF untuk voltan rujukan

Ini menetapkan voltan rujukan kepada apa sahaja yang anda sambungkan ke pin AREF - yang tentunya akan mempunyai voltan antara 1.1V dan voltan operasi papan. Nota yang sangat penting - apabila menggunakan rujukan voltan luaran, anda mesti menetapkan rujukan analog ke LUARAN sebelum menggunakan analogRead (). Ini akan mengelakkan anda memendekkan voltan rujukan dalaman aktif dan pin AREF, yang boleh merosakkan mikrokontroler di papan. Sekiranya perlu untuk aplikasi anda, anda boleh kembali ke voltan operasi papan untuk AREF (iaitu - kembali normal) dengan yang berikut

analogReference (DEFAULT);

Sekarang untuk menunjukkan AREF luaran di tempat kerja. Dengan menggunakan 3.3V AREF, lakaran berikut mengukur voltan dari A0 dan menunjukkan peratusan jumlah AREF dan voltan yang dikira:

#masuk "LiquidCrystal.h"

LiquidCrystal lcd (8, 9, 4, 5, 6, 7);

int analoginput = 0; // pin analog kami

int analogamount = 0; // menyimpan peratusan apungan nilai masuk = 0; // digunakan untuk menyimpan nilai peratusan voltan apungan kami = 0; // digunakan untuk menyimpan nilai voltan

persediaan tidak sah ()

{lcd.begin (16, 2); analogReference (LUARAN); // gunakan AREF untuk voltan rujukan}

gelung kosong ()

{lcd.clear (); analogamount = analogRead (analoginput); peratusan = (jumlah analog / 1024.00) * 100; voltan = jumlah analog * 3.222; // dalam millivolts lcd.setCursor (0, 0); lcd.print ("% AREF:"); lcd.print (peratusan, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (voltan, 2); kelewatan (250); }

Hasil lakaran di atas ditunjukkan dalam video.

Langkah 5: AREF Dalaman

Pengawal mikro pada papan Arduino kami juga dapat menghasilkan voltan rujukan dalaman 1.1V dan kami dapat menggunakannya untuk kerja AREF. Cukup gunakan baris:

analogReference (DALAMAN);

Untuk papan Arduino Mega, gunakan:

analogReference (INTERNAL1V1);

dalam persediaan tidak sah () dan anda tidak aktif. Sekiranya anda mempunyai Arduino Mega, terdapat juga voltan rujukan 2.56V yang tersedia yang diaktifkan dengan:

analogReference (INTERNAL2V56);

Akhirnya - sebelum menentukan hasil dari pin AREF anda, sentiasa kalibrasi pembacaan terhadap multimeter yang diketahui.

Kesimpulannya

Fungsi AREF memberi anda lebih banyak fleksibiliti dengan mengukur isyarat analog.

Catatan ini disampaikan kepada anda oleh pmdway.com - semuanya untuk pembuat dan peminat elektronik, dengan penghantaran percuma ke seluruh dunia.

Disyorkan: