Isi kandungan:
- Langkah 1: Semakan
- Langkah 2: Mengapa AnalogRead () Mengembalikan Nilai Antara 0 dan 1023?
- Langkah 3: Jadi Apa itu AREF?
- Langkah 4: AREF luaran
- Langkah 5: AREF Dalaman
Video: Pin Arduino AREF: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
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
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?
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:
Penyambung ICSP untuk Arduino Nano Tanpa Header Pin Soldered Tetapi Pogo Pin: 7 Langkah
Penyambung ICSP untuk Arduino Nano Tanpa Header Pin Soldered Tetapi Pin Pogo: Buat penyambung ICSP untuk Arduino Nano tanpa header pin yang disolder di papan tetapi Pin Pogo. Bahagian3 × 2 Pin Socket x1 - APitch 2.54mm Dupont Line Wire Female Pin Connector Perumahan Terminal x6 - BP75-E2 (1.3mm Head Conical) Spring Test Probe Pogo Pin
Pengesan Logam Pointer Pin Arduino DIY: 3 Langkah
DIY Arduino Pin Pointer Metal Detector: Pengesan logam tradisional dapat mencari barang yang dikuburkan dan memberi anda lokasi kasar objek yang membengkokkan tanah. Pinpointer membolehkan anda meletakkan lokasi objek, membuat lubang yang lebih kecil ketika menggali, dan mengekstrak item . Juga, ia dapat
Bina Kamera Pin Pin Digital: 6 Langkah (dengan Gambar)
Bina Kamera Pin Pin Lubang Digital: Saya selalu ingin mencuba gambar dengan kamera lubang jarum, tetapi ia adalah salah satu perkara yang tidak pernah saya jalani. Sekarang dengan kamera digital sangat mudah. Anda memerlukan kamera refleks lensa tunggal digital (SLR) dengan lensa yang boleh ditukar ganti, beberapa
Soket ISP 6 Pin hingga 8 Pin: 4 Langkah
ISP 6 Pin to 8 Pin Socket: Sebab saya membuat projek ini adalah memprogram ATTiny45, yang mempunyai sambungan 8 pin, sedangkan USBtinyISP saya (dari Ladyada) hanya mempunyai sambungan 10 pin dan 6 pin. Setelah mengintip internet selama kira-kira 3-4 minggu, saya tidak menemui apa-apa
Pin Pin USB dan Pembaikan Kabel Apple Pro Mouse DIY: 5 Langkah
Apple Pro Mouse Pinout USB dan Pembaikan Kabel DIY: Tetikus pro Apple hitam mempunyai beberapa masalah yang terkenal: -Hanya satu butang -Kabel yang terlalu fleksibel dan pendek, yang mempunyai kadar kegagalan yang sangat tinggi.Namun saya suka reka bentuk minima yang ramping. Saya mempunyai patah juga, di sebelah hujung tetikus dan juga pada palam USB. Sejak