Skip to content

Archives

  • ianuarie 2022
  • decembrie 2021
  • noiembrie 2021
  • octombrie 2021
  • septembrie 2021

Categories

  • Nicio categorie
Trend RepositoryArticles and guides
Articles

John Errington’s Experiments with an Arduino

On noiembrie 28, 2021 by admin

Măsurarea precisă a tensiunii cu placa Arduino.

Gama de microcontrolere Arduino oferă intrări analogice care pot fi folosite pentru a măsura tensiunea. Putem folosi acest lucru pentru a construi un voltmetru.
Funcția analogRead() citește tensiunea și o convertește într-un număr între 0 și 1023.

Tutorialul Arduino (1) http://arduino.cc/en/Tutorial/ReadAnalogVoltage are acest exemplu:

Acest lucru este GREȘIT! Pentru un rezultat mai bun folosiți (sensorValue + 0.5) * 5.0 / 1024.0 – vezi explicația aici

Acest lucru ne face să credem că o citire de 0 corespunde unei intrări de 0.000V; iar 1023 corespunde unei tensiuni de intrare de 5.000 volți. Acest lucru nu este în întregime adevărat. Să ne uităm la fișa tehnică și să vedem ce ne spune.

Cipul ATMEGA folosit pe Arduino are intrări analogice care pot fi folosite pentru a măsura cu precizie tensiunea

Microcontrolerul Arduino este prevăzut cu un convertor analog-numeric (ADC) de tip aproximare succesivă care are următoarele specificații. Referințele indicate între paranteze astfel (2: 26.1) se referă la secțiuni din fișa tehnică AtMega 2560.
(2: 26.1): ATMega328 și 32U4 au valori similare.

Aceste specificații ne spun că Arduino este capabil să măsoare tensiuni cu o precizie
de ± 2 LSB – deci eroarea maximă este de 2 biți (4 zecimale) în 10 biți (1024 zecimale)
Din acest motiv, cel mai rău caz de precizie a convertorului este de 4 / 1024 sau 1 parte din 256, adică 0,25%.

Dar limita preciziei de măsurare depinde de referința de tensiune utilizată.

Arduino are propriile sale referințe de tensiune – dar acestea nu sunt foarte precise

Cipul – în funcție de tip – este prevăzut cu UNELE dintre următoarele tensiuni de referință (6)
DEFAULT: referința analogică implicită de 5 volți (pe plăcile Arduino de 5V) sau 3.3 volți (pe plăcile Arduino de 3,3V)
INTERNAL: o referință încorporată, egală cu 1,1 volți pe plăcile cu cipuri ATmega168 sau ATmega328 și 2,56 volți pe plăcile cu cipuri ATmega8 și 32U4.
aceasta este produsă intern prin amplificarea referinței de 1,1V. 2,56V este doar o valoare „tipică”.
EXTERN: tensiunea aplicată la pinul AREF (numai de la 0 la 5V). (MicroPro 32U4, NodeMCU și ESP32 nu au un pin pentru o referință externă – a se vedea mai jos pentru mai multe informații.)

Precizia referinței față de care se măsoară tensiunea – folosind oricare dintre referințele de mai sus – este în cel mai bun caz de numai 5,25 – 5,0/5,0 * 100 = 5% – mult mai rău decât cei 0,25% pe care îi oferă ADC-ul. În mod clar, dacă dorim să măsurăm tensiuni cu acuratețea oferită de Arduino, referințele on-chip nu sunt suficient de bune. Diagrama de mai jos arată aceste erori în comparație cu o referință de 4,096V descrisă mai jos.

Lasă un răspuns Anulează răspunsul

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Arhive

  • ianuarie 2022
  • decembrie 2021
  • noiembrie 2021
  • octombrie 2021
  • septembrie 2021

Meta

  • Autentificare
  • Flux intrări
  • Flux comentarii
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress