Lees van spanning en werk met potentiometers vir Arduino
In hierdie tutoriaal gaan ons ondersoek hoe om spanningswaardes te lees deur 'n potensiometer met 'n Arduino te gebruik. Teen die einde van hierdie projek sal jy verstaan hoe om analooglesings na spanningswaardes om te skakel en selfs die weerstand van 'n potensiometer te bereken op grond van die spanningsuitset. Dit is nuttig in verskeie toepassings waar jy spanningsvlakke moet monitor en beheer.

In hierdie projek sal ons 'n Arduino gebruik om die spanning van 'n potensiometer wat aan een van sy analooginsetpenne gekoppel is, te lees. Die potensiometer sal ons toelaat om die spanning te varieer, wat ons dan in 'n leesbare formaat sal omskakel en op die reeksmonitor sal vertoon. Daarbenewens sal ons die funksionaliteit uitbrei om die weerstandswaarde op grond van die spanningslesing te bereken, wat 'n omvattende begrip bied van hoe potensiometers met Arduino werk.
Vir verdere verduideliking oor die stappe en kode-implementering, maak seker dat jy die video (in video by 00:00) kyk.
Hardeware Verduidelik
Die sleutelkomponente in hierdie projek is die Arduino-bord en die potensiometer. Die Arduino is 'n mikrobeheerderplatform wat jou toelaat om insetseine maklik te lees en uitsette te beheer. In hierdie geval sal dit die analoogspanning van die potensiometer lees.
Die potensiometer is 'n veranderlike weerstand wat sy weerstand kan aanpas op grond van die posisie van sy sleepkontak. Wanneer dit aan 'n spanningsbron gekoppel is, verdeel dit die spanning oor sy terminale, wat jou toelaat om 'n veranderlike spanning uit te voer wat deur die Arduino se analooginset gelees kan word.
Datablad Besonderhede
| Vervaardiger | Verskeie |
|---|---|
| Deelnommer | Potensiometer |
| Weerstandsreeks | 0 – 1 MΩ |
| Drywingsgradering | 0.1 W |
| Temperatuurreeks | -40 tot 85 °C |
| Tipe | Lineêr of logaritmies |
- Maak seker die potensiometer is korrek gekoppel om verkeerde spanningslesings te vermy.
- Gebruik 'n multimeter om die weerstandswaarde van die potensiometer te verifieer voordat dit aan die Arduino gekoppel word.
- Hou die potensiometer binne sy gegradeerde drywing om oorverhitting te voorkom.
- Gebruik toepaslike ontkoppelingskapasitors indien nodig om geraas in lesings uit te filter.
- Wees versigtig met drywende insette; koppel altyd ongebruikte penne aan grond.
Bedradingsinstruksies

Om die potensiometer aan die Arduino te bedraad, begin deur een punt van die potensiometer aan die 5V-pen op die Arduino te koppel en die ander punt aan die grond (GND)-pen. Die middelste pen van die potensiometer, wat die sleepkontak is, moet aan die analooginsetpen A0 op die Arduino gekoppel word. Hierdie opstelling laat die Arduino toe om die veranderlike spanningsuitset van die potensiometer te lees.

As jy 'n ander analoogpen gebruik, maak seker dat jy die ooreenstemmende pennommer in jou kode bywerk. Byvoorbeeld, as jy die sleepkontak aan A1 koppel, sal jy die kode moet verander om van A1 te lees in plaas van A0.
Kode Voorbeelde & Deurloop
void setup() {
Serial.begin(9600); // stel reeks op
}
void loop() {
int sensorValue = analogRead(A0); // Lees van A0
float voltage = sensorValue * (5.0 / 1023.0); // Skakel om na spanning
Serial.print("Spanning ="); // druk die teks "Spanning ="
Serial.print(voltage);
Serial.println();
delay(300);
}
Hierdie kodefragment initialiseer die reekskommunikasie en lees voortdurend die analoogwaarde van pen A0. Dit skakel die analooglesing (0 tot 1023) om na 'n spanning (0 tot 5V) en druk dit op die reeksmonitor.
float RT = 50000; // die potensiometerwaarde
float R; // die onbekende R-waarde
void loop() {
int sensorValue = analogRead(A0); // Lees van A0
float voltage = sensorValue * (5.0 / 1023.0); // Skakel om na spanning
R = (voltage * RT) / 5.0; // Bereken weerstand
Serial.print("Spanning ="); // druk die teks "Spanning ="
Serial.print(voltage);
Serial.print("v R=");
Serial.print(R);
Serial.print(" ohm");
Serial.println();
delay(300);
}
Hierdie tweede kodefragment bou voort op die eerste deur berekeninge vir die weerstandswaarde op grond van die spanningslesing by te voeg. Dit gebruik die bekende weerstandswaarde van die potensiometer RT en bereken die onbekende weerstand R met behulp van die formule afgelei van Ohm se wet.
Demonstrasie / Wat om te Verwag
Wanneer jy die program laat loop, moet jy verwag om die spanningswaardes op die reeksmonitor te sien, wat sal verander soos jy die potensiometer aanpas. Die uitset sal ook die berekende weerstandswaarde op grond van die spanningslesing vertoon. Wees versigtig om omgekeerde polariteitsverbindings te vermy, aangesien dit tot verkeerde lesings of skade aan die komponente kan lei (in video by 02:30).
Video Tydstempels
- 00:00 - Inleiding tot die projek
- 01:15 - Verduideliking van die hardewarekomponente
- 02:30 - Bedradingsinstruksies
- 03:45 - Kode-deurloop
- 05:00 - Lewendige demonstrasie
//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);
}
Hulpbronne en verwysings
Geen hulpbronne nog.
Lêers📁
Geen lêers beskikbaar.