Szukaj kodu

Odczyt napięcia i praca z potencjometrami dla Arduino

Odczyt napięcia i praca z potencjometrami dla Arduino

W tym samouczku dowiemy się, jak odczytywać wartości napięcia za pomocą potencjometru z Arduino. Po ukończeniu tego projektu zrozumiesz, jak konwertować odczyty analogowe na wartości napięcia, a nawet obliczać rezystancję potencjometru na podstawie wyjściowego napięcia. Jest to przydatne w różnych zastosowaniach, gdzie trzeba monitorować i kontrolować poziomy napięcia.

Potentiometer or variable resistor

W tym projekcie użyjemy Arduino do odczytu napięcia z potencjometru podłączonego do jednego z jego analogowych pinów wejściowych. Potencjometr pozwoli nam zmieniać napięcie, które następnie przekonwertujemy na czytelny format i wyświetlimy na monitorze szeregowym. Dodatkowo rozszerzymy funkcjonalność o obliczanie wartości rezystancji na podstawie odczytu napięcia, co zapewni kompleksowe zrozumienie działania potencjometrów z Arduino.

Aby uzyskać dalsze wyjaśnienia dotyczące kroków i implementacji kodu, koniecznie obejrzyj wideo (na wideo w 00:00).

Wyjaśnienie Sprzętu

Kluczowymi elementami w tym projekcie są płytka Arduino i potencjometr. Arduino to platforma mikrokontrolerów, która pozwala łatwo odczytywać sygnały wejściowe i sterować wyjściami. W tym przypadku będzie odczytywać napięcie analogowe z potencjometru.

Potencjometr to rezystor zmienny, który może regulować swoją rezystancję w zależności od położenia suwaka. Po podłączeniu do źródła napięcia dzieli napięcie między swoje zaciski, umożliwiając uzyskanie zmiennego napięcia, które może być odczytane przez analogowe wejście Arduino.

Szczegóły z Karty Katalogowej

ProducentRóżni
Numer częściPotencjometr
Zakres rezystancji0 – 1 MΩ
Moc znamionowa0,1 W
Zakres temperatur-40 do 85 °C
TypLiniowy lub logarytmiczny

  • Upewnij się, że potencjometr jest podłączony prawidłowo, aby uniknąć błędnych odczytów napięcia.
  • Użyj multimetru, aby zweryfikować wartość rezystancji potencjometru przed podłączeniem go do Arduino.
  • Trzymaj potencjometr w zakresie jego mocy znamionowej, aby zapobiec przegrzaniu.
  • W razie potrzeby użyj odpowiednich kondensatorów odsprzęgających, aby odfiltrować szumy w odczytach.
  • Uważaj na pływające wejścia; zawsze podłączaj nieużywane piny do masy.

Instrukcje Podłączania

Arduino Wiring of Potentiometer
Arduino Wiring of Potentiometer

Aby podłączyć potencjometr do Arduino, zacznij od połączenia jednego końca potencjometru z pinem 5V na Arduino, a drugiego końca z pinem masy (GND). Środkowy pin potencjometru, czyli suwak, powinien być podłączony do analogowego pinu wejściowego A0 na Arduino. Ta konfiguracja pozwala Arduino odczytywać zmienne napięcie wyjściowe z potencjometru.

Potentiometer or variable resistor

Jeśli używasz innego pinu analogowego, upewnij się, że zaktualizujesz odpowiedni numer pinu w swoim kodzie. Na przykład, jeśli podłączysz suwak do A1, będziesz musiał zmienić kod, aby odczytywał z A1 zamiast A0.

Przykłady Kodów i Omówienie

void setup() {
  Serial.begin(9600);          // konfiguracja portu szeregowego
}

void loop() {
  int sensorValue = analogRead(A0);  // Odczyt z A0
  float voltage = sensorValue * (5.0 / 1023.0);  // Konwersja na napięcie
  Serial.print("Voltage =");  // wypisuje tekst "Voltage ="
  Serial.print(voltage);
  Serial.println();
  delay(300);
}

Ten fragment kodu inicjalizuje komunikację szeregową i ciągle odczytuje wartość analogową z pinu A0. Konwertuje odczyt analogowy (0 do 1023) na napięcie (0 do 5V) i wypisuje je na monitorze szeregowym.

float RT = 50000; // wartość potencjometru
float R; // nieznana wartość R

void loop() {
  int sensorValue = analogRead(A0);  // Odczyt z A0
  float voltage = sensorValue * (5.0 / 1023.0);  // Konwersja na napięcie
  R = (voltage * RT) / 5.0;  // Obliczanie rezystancji
  Serial.print("Voltage =");  // wypisuje tekst "Voltage ="
  Serial.print(voltage);
  Serial.print("v R=");
  Serial.print(R);
  Serial.print(" ohms");
  Serial.println();
  delay(300);
}

Ten drugi fragment kodu rozwija pierwszy, dodając obliczenia wartości rezystancji na podstawie odczytu napięcia. Używa znanej wartości rezystancji potencjometru RT i oblicza nieznaną rezystancję R za pomocą wzoru wyprowadzonego z prawa Ohma.

Demonstracja / Czego Się Spodziewać

Po uruchomieniu programu powinieneś zobaczyć wartości napięcia wypisane na monitorze szeregowym, które będą się zmieniać podczas regulacji potencjometru. Na wyjściu zostanie również wyświetlona obliczona wartość rezystancji na podstawie odczytu napięcia. Uważaj, aby uniknąć odwróconej polaryzacji połączeń, ponieważ może to prowadzić do błędnych odczytów lub uszkodzenia elementów (na wideo w 02:30).

Znaczniki Czasu Wideo

  • 00:00 - Wprowadzenie do projektu
  • 01:15 - Wyjaśnienie elementów sprzętowych
  • 02:30 - Instrukcje podłączania
  • 03:45 - Omówienie kodu
  • 05:00 - Demonstracja na żywo

Obrazy

Arduino Wiring of Potentiometer
Arduino Wiring of Potentiometer
Potentiometer or variable resistor
Potentiometer or variable resistor
Potentiometer or variable resistor
Potentiometer or variable resistor
10-Reading voltage and working with a potentiometer for Arduino
Język: C++
//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);

}

Zasoby i odniesienia

Brak zasobów.

Pliki📁

Brak dostępnych plików.