Читање на напон и работа со потенциометри за Arduino
Во ова упатство, ќе истражиме како да читаме вредности на напон користејќи потенциометар со Arduino. До крајот на овој проект, ќе разберете како да ги претворите аналогните читања во вредности на напон, па дури и да ја пресметате отпорноста на потенциометарот врз основа на излезниот напон. Ова е корисно во различни апликации каде што треба да ги следите и контролирате нивоата на напон.

Во овој проект, ќе користиме Arduino за да го читаме напонот од потенциометар поврзан на еден од неговите аналогни влезни пинови. Потенциометарот ќе ни овозможи да го менуваме напонот, кој потоа ќе го претвориме во читлив формат и ќе го прикажеме на серискиот монитор. Дополнително, ќе ја прошириме функционалноста за да ја пресметаме вредноста на отпорноста врз основа на читањето на напонот, обезбедувајќи сеопфатно разбирање за тоа како функционираат потенциометрите со Arduino.
За дополнително појаснување на чекорите и имплементацијата на кодот, задолжително погледнете го видеото (во видеото на 00:00).
Објаснување на хардверот
Клучните компоненти во овој проект се Arduino плочата и потенциометарот. Arduino е микроконтролерска платформа која ви овозможува лесно да читате влезни сигнали и да контролирате излези. Во овој случај, таа ќе го чита аналогниот напон од потенциометарот.
Потенциометарот е променлив отпорник кој може да ја прилагодува својата отпорност врз основа на позицијата на неговиот лизгач. Кога е поврзан на извор на напон, тој го дели напонот помеѓу своите терминали, овозможувајќи ви да излезете променлив напон кој може да се чита од аналогниот влез на Arduino.
Детали од табелата со податоци
| Производител | Различни |
|---|---|
| Број на дел | Потенциометар |
| Опсег на отпорност | 0 – 1 MΩ |
| Моќност | 0.1 W |
| Опсег на температура | -40 до 85 °C |
| Тип | Линеарен или логаритамски |
- Осигурете се дека потенциометарот е правилно поврзан за да избегнете неточни читања на напон.
- Користете мултиметар за да ја потврдите вредноста на отпорноста на потенциометарот пред да го поврзете на Arduino.
- Чувајте го потенциометарот во рамките на неговата номинална моќност за да спречите прегревање.
- Користете соодветни декуплиншки кондензатори ако е потребно за да го филтрирате шумот во читањата.
- Бидете внимателни со лебдечките влезови; секогаш поврзувајте ги неискористените пинови на земја.
Инструкции за поврзување

За да го поврзете потенциометарот на Arduino, започнете со поврзување на едниот крај на потенциометарот на 5V пинот на Arduino, а другиот крај на пинот за земја (GND). Средниот пин на потенциометарот, кој е лизгачот, треба да биде поврзан на аналогниот влезен пин A0 на Arduino. Оваа поставка му овозможува на Arduino да го чита променливиот излезен напон од потенциометарот.

Ако користите различен аналоген пин, осигурете се да го ажурирате соодветниот број на пинот во вашиот код. На пример, ако го поврзете лизгачот на A1, ќе треба да го промените кодот за да чита од A1 наместо од A0.
Примери на код и објаснување
void setup() {
Serial.begin(9600); // поставување на сериска комуникација
}
void loop() {
int sensorValue = analogRead(A0); // Читање од A0
float voltage = sensorValue * (5.0 / 1023.0); // Конверзија во напон
Serial.print("Voltage ="); // печати текст "Voltage ="
Serial.print(voltage);
Serial.println();
delay(300);
}
Овој фрагмент од код ја иницијализира сериската комуникација и континуирано ја чита аналогната вредност од пинот A0. Ја претвора аналогната вредност (0 до 1023) во напон (0 до 5V) и ја печати на серискиот монитор.
float RT = 50000; // вредноста на потенциометарот
float R; // непознатата R вредност
void loop() {
int sensorValue = analogRead(A0); // Читање од A0
float voltage = sensorValue * (5.0 / 1023.0); // Конверзија во напон
R = (voltage * RT) / 5.0; // Пресметка на отпорноста
Serial.print("Voltage ="); // печати текст "Voltage ="
Serial.print(voltage);
Serial.print("v R=");
Serial.print(R);
Serial.print(" ohms");
Serial.println();
delay(300);
}
Овој втор фрагмент од код се надоврзува на првиот со додавање пресметки за вредноста на отпорноста врз основа на читањето на напонот. Ја користи познатата вредност на отпорноста на потенциометарот RT и ја пресметува непознатата отпорност R користејќи ја формулата изведена од Омовиот закон.
Демонстрација / Што да очекувате
Кога ќе ја стартувате програмата, треба да очекувате да ги видите вредностите на напонот отпечатени на серискиот монитор, кои ќе се менуваат додека го прилагодувате потенциометарот. Излезот исто така ќе ја прикаже пресметаната вредност на отпорноста врз основа на читањето на напонот. Бидете внимателни да избегнете обратна поларизација на приклучоците, бидејќи тоа може да доведе до неточни читања или оштетување на компонентите (во видеото на 02:30).
Временски ознаки на видеото
- 00:00 - Вовед во проектот
- 01:15 - Објаснување на хардверските компоненти
- 02:30 - Инструкции за поврзување
- 03:45 - Објаснување на кодот
- 05:00 - Демонстрација во живо
//Original source: https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
// This code is used with a video tutorial for RoboJax.com
// Published on April 24, 2017, from Ajax, ON, Canada.
// Written/Edited by A.B.S
// This Arduino code reads the value from an analog pin
void setup()
{
Serial.begin(9600); // setup serial
}
void loop(){
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// print out the value you read:
Serial.print("Voltage =");// prints the text "Voltage ="
Serial.print(voltage);
Serial.println();
delay(300);
}
</code>
<h2>Project 2 Finding the resistance value from the voltage</h2>
<pre><code class="cpp">
//Original source: https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
// Project: Finding the resistance value from the voltage
// This code is used with a video tutorial for RoboJax.com
// Published on April 24, 2017, from Ajax, ON, Canada.
// Written/Edited by A.B.S
float RT = 50000;// the potentiometer value
float R;// the unknown R value
void setup()
{
Serial.begin(9600); // setup serial
}
void loop(){
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// print out the value you read:
R = ( voltage * RT)/5.0;
Serial.print("Voltage =");// prints the text "Voltage ="
Serial.print(voltage);
Serial.print("v R=");
Serial.print(R);
Serial.print(" ohms");
Serial.println();
delay(300);
}
Ресурси и референци
Сè уште нема ресурси.
Датотеки📁
Нема достапни датотеки.