Серийно Прочитане на Аналогови данни

Източник:   arduino.cc

Превел:  Т.Б.

Серийно Прочитане на Аналогови данни

Този пример Ви показва как да прочитате аналогови входни величини от физичният свят използвайки потенциометър. Потенциометърът е едно сравнително просто механично устройство, което осигурява променливо количество съпротивление, когато остта му се завърти. Пропускайки напрежение през потенциометърът, както и през аналоговия вход на Вашата Arduino платка, е възможно да измерите количеството съпротивление създавано от потенциометъра като аналгова стойност. В този пример, Вие ще наблюдавате състоянието на вашият потенциометър след установяването на серийна комуникация между Вашата Arduino платка и компютъра ви.

Изисквания към Апаратната част

  • Платка  Arduino
  • 10-кило-омов Потенциометър

Схема

Свържете трите проводника от потенциометъра към Вашата Arduinio платка. Първият от трите се свързва към маса и към един от външните изводи на потенциометъра. Вторият минава през 5V към другия външен извод на потенциометъра. Третият минава през аналоговия вход 2 (analog input 2) към средния извод на потенциометъра.

изображението е разработено чрез Fritzing. За повече примерни схеми, вижте официалната страница на проекта Fritzing.

 

Чрез завъртането на остта на потенциометъра, Вие изменяте стойността на съпротивлението – спрямо плъзгача свързан към средния извод на потенциометъра. Това въздейства също така върху пада на напрежение върху централният извод (средния). Когато съпротивлението между централният и крайният извод е близко до нула (а съпротивлението от друга страна е близко до 10кΩ), напреженовия пад върху средния извод приближава 5V. Когато съпротивлението се обърне , напрежението върху централния извод приближава/клони към 0V нула волта, или маса. Това напрежение, което отчитате на входа се нарича аналогово напрежение.

Схемата Arduino има вграден вътрешен модул, наречен аналогово-цифров преобразувател (т.нар. АЦП), който прочита това изменящо се напрежение и го преобразува в число от 0 до 1023. Когато остта се завърти изцяло в една посока, нула волта се прехвърлят на извода, затова входната стойност е „0“.  Когато остта се завърти обратно изцяло, вече са налични 5V върху извода и затова входната стойност е 1023. Междувременно, функцията analogRead() връща число между 0 и 1023, което е пропорционално на количеството напрежение, което се прилага към извода.

 Схема

* Кликнете върху схемата, за да я увеличите.

Код

В програмата отдолу, единственото нещо, което правите в функцията setup е да започнете/стартирате серийна комуникация, при скорост на обмен от 9600 бита/сек, между вашата Arduino платка и компютъра ви чрез командата:

Serial.begin(9600);

След това, в main loop частта от Вашия код, е необходимо да установите/зададете *променлива, в която да записвате стойността на съпротивлението (което ще бъде в обхвата от 0 до 1023, което е идеалния случай за тип данни int, тоест integer, целочислени) идващи от потенциометъра ви:

int sensorValue = analogRead(A0);

Най-накрая, Вие трябва да отпечатате тази информация във вашия сериен прозорец, под формата на *десетични стойности (DEC). Можете да направите това чрез командата Serial.println() във вашия последен код:

Serial.println(sensorValue, DEC)

Сега, когато отворите Вашия Прозорец за Наблюдение на Серийната Комуникация в Arduino средата (чрез директното кликване върху бутона „Upload“/Качи в Хедъра на програмата), Вие трябва да забележите постоянен поток от числа от 0 до 1023, корелиращи/отговарящи на съответната позиция на потенциометъра, тези числа ще отговарят почти незабавно.

/*
AnalogReadSerial
Reads an analog input on pin 0, prints the result to the serial monitor

This example code is in the public domain.
*/

void setup() {
Serial.begin(9600);
}

void loop() {
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
}