Pag-convert ng Analogue sa Digital (Analogue Read Serial) - Mga Pangunahing Kaalaman sa Arduino

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Sa mga pangunahing kaalaman sa Arduino sinusubukan naming maunawaan ang pamamaraan ng pagpapatupad ng code kung saan ang isang panlabas na signal ng analogue ay pinakain sa input ng analogue ng Arduino at isinalin o na-convert sa isang katumbas na proporsyonal na digital na pagbasa. Gumagamit kami dito ng isang variable na paglaban sa anyo ng isang palayok bilang mapagkukunan ng signal ng analogue.

Analog Basahin ang Serial

Sa halimbawang ito natututunan namin ang pamamaraan ng pagbabasa ng isang input ng analogue mula sa isang panlabas na aparato tulad ng isang potensyomiter, na isang n electro-mechanical na aparato na dinisenyo para sa pagpapatupad ng iba't ibang pagtutol sa isang circuit sa pamamagitan ng manu-manong operasyon.



Maaaring magamit ang isang Arduino para sa pagsukat ng lakas ng boltahe na lumalabas mula sa isang potensyomiter upang mabasa at kilalanin ang kaukulang pagkakaiba-iba ng paglaban. Maaari itong magawa sa pamamagitan ng pagpapakain ng boltahe sa Arduino analogue input port bilang isang halagang analogue.

Makikita natin dito kung paano ipinatupad ang nasa itaas pagkatapos magtaguyod ng serial na komunikasyon sa buong Arduino at ng naka-link na computer.



Kinakailangan ang Hardware

Lupon ng Arduino

10-kilohm Potentiometer

Pagpapatakbo ng Circuit

Tulad ng inilalarawan sa diagram sa itaas, i-hook ang tatlong mga wire na lalabas mula sa palayok sa iyong mga port sa Arduino.

Ang wire mula sa isa sa mga panlabas na lead ng palayok ay itinalaga sa lupa o sa negatibong linya ng board.

Ang iba pang libreng matinding panlabas na dulo ng lead ay konektado sa + 5V ng board.

Ang natitira ay ang gitnang nangunguna ng palayok, na natapos sa pag-input ng analogue ng Arduino board.

Kapag pinaikot ang pot shaft, ang paglaban sa gitnang lead at ang panlabas na paglipat ng terminal mula sa mas mataas hanggang sa mas mababa at kabaligtaran depende sa kung aling panig ang malapit sa braso ng slider.

Halimbawa kapag ang slider arm ay pinaikot patungo sa + 5V lead, ang center lead ay papalapit sa 5V at may posibilidad na makuha ang buong halaga habang hinahawakan nito ang 5V na nakatalagang lead. Katulad nito kapag ang slider shaft ay inilipat patungo sa ground pot lead, ang center lead ay may posibilidad na makamit ang isang zero potensyal.

Ang nasa itaas na linearly varying supply voltage sa gitnang lead ng palayok ay binabasa ng input ng arduino analogue para sa pagbibigay kahulugan sa ito sa isang magkatugma na paglaban ng palayok.

Ang Arduino ay nagsasara ng isang panloob na analogue-to-digital converter circuitry na mabisang binibigyang kahulugan ang kilusan ng palayok sa itaas at binago ito sa mga numero sa pagitan ng 0 at 1023.

Ang isang partikular na posisyon sa mga pot shaft ay nagreresulta sa isang proporsyonal na numero sa pagitan ng 0 at 1023 na isinalin ng Arduino, at para sa mga halagang pagtatapos ng 5V at zero volts, malinaw na 0 at 1023 ang mga interpretasyon.

Sa na-refer na programa ang pag-andar ng pag-setup lamang ang kailangang ma-trigger para sa pagpapasimula ng mga serial na komunikasyon, ang rate na 9600 piraso ng data bawat segundo, sa kabuuan ng iyong Arduino board at ang computer.

Ang inaasahang utos ay nasa form:

Serial.begin (9600)

Kasunod, sa pangunahing loop ng iyong code, nagpapatupad kami ng isang variable upang maayos ang halaga ng paglaban (na tatalakayin sa pagitan ng 0 at 1023, na angkop lamang para sa isang uri ng data ng int) na natanggap mula sa mga pot pot lead:

int sensorValue = analogRead (A0)

Upang magtapos, i-print ang impormasyong ito sa iyong serial window bilang isang decimal (DEC) na halaga. Maaari mong gamitin ang utos na Serial.println () para sa pagpapatupad nito sa huling linya ng code:

Serial.println (sensorValue, DEC)

Pagkatapos nito, tuwing sinisimulan ang Serial Monitor sa domain ng pag-unlad ng Arduino (ginagawa ito sa pamamagitan ng pag-click sa pindutan na agad sa kanang bahagi ng pindutang 'Upload' sa header ng programa).

makikita namin ang isang pare-pareho na kadena ng mga digit na tumatakbo mula 0-1023, na tumutugma sa magkakaibang posisyon ng pag-ikot ng pot shaft.

Kung ititigil natin ang pag-ikot ng pot shaft nang ilang instant, ang kaukulang instant na numero ay ipapakita sa screen ng Arduino, muli itong babaguhin nang proporsyonal habang binabago natin ang posisyon ng pot shaft.

Ang Code

/ *
AnalogReadSerial
Nagbabasa ng isang analog na input sa pin 0, na-print ang resulta sa serial monitor.
Ikabit ang gitnang pin ng isang potensyomiter upang i-pin ang A0, at ang mga labas na pin sa + 5V at lupa.

Ang halimbawang code na ito ay nasa pampublikong domain.
* /

// ang gawain sa pag-setup ay tumatakbo nang isang beses kapag pinindot mo ang pag-reset:
walang bisa ang pag-setup () {
// ipasimula ang serial na komunikasyon sa 9600 bits bawat segundo:
Serial.begin (9600)
}

// ang gawain ng loop ay tumatakbo nang paulit-ulit magpakailanman:
void loop () {
// basahin ang input sa analog pin 0:
int sensorValue = analogRead (A0)
// i-print ang halagang nabasa mo:
Serial.println (sensorValue)
antala (1) // pagkaantala sa pagitan ng bumabasa para sa katatagan
}




Nakaraan: Pagsubaybay sa Estado ng isang Lumipat (Digital Read Serial) - Mga Pangunahing Kaalaman sa Arduino Susunod: 1.25V hanggang 120V Mains Adjustable Voltage Regulator Circuit