Серийно Прочитане на Аналогови данни
Източник: 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);
}