Search Code

Arduino-kode en video vir 'n spanningsensor-module

Arduino-kode en video vir 'n spanningsensor-module

In hierdie tutoriaal gaan ons ondersoek hoe om 'n spanningsensor-module met 'n Arduino te gebruik. Hierdie projek laat jou toe om insetspanning te meet en dit op die reeksmonitor te vertoon, wat die proses vereenvoudig in vergelyking met die gebruik van bykomende resistors. Aan die einde van hierdie tutoriaal sal jy 'n funksionele opstelling hê wat spanningsvlakke akkuraat lees.

Soos jy volg, sal jy insigte kry in beide die hardeware-verbindings en die kode wat nodig is vir hierdie projek. Jy kan na die gepaardgaande video verwys by (in video by 00:00) vir verdere verduideliking van elke stap.

Kyk hoe resistor en spanning bereken word hier.

Hardeware Verduidelik

Die hoofkomponent van hierdie projek is die spanningsensor-module. Dit beskik tipies oor drie terminale: een vir die sein-uitset, een vir die grond, en een vir die positiewe spanning-inset. Die seinpen verbind aan die Arduino se analoog-inset, wat dit toelaat om spanningsvlakke te lees. Die module gebruik 'n spanningsverdeler-kring, wat uit twee resistors bestaan, om die spanning af te skaal na 'n veilige vlak vir die Arduino.

Wanneer spanning gemeet word, is dit krities om die grondterminaal van die sensor aan die grond van die spanningsbron wat gemeet word te verbind. Die positiewe terminaal verbind aan die punt van belang, wat akkurate lesings verseker. Hierdie eenvoudige opstelling skakel die behoefte aan bykomende bedrading en komponente uit, wat dit gebruikersvriendelik maak.

Datablad Besonderhede

Vervaardiger Generies
Deelnommer Spanningsensor-module
Logika/IO-spanning 5 V
Toevoerspanning 0–25 V
Insetspanningreeks 0–25 V
Uitsetspanningreeks 0–5 V
Insetstroom ≤ 20 mA
Pakket Module
Notas / variante Kan verskil per vervaardiger

 

  • Verseker korrekte bedrading om skade aan die Arduino of sensor te vermy.
  • Gebruik 'n stabiele kragtoevoer om akkurate lesings te verseker.
  • Pas die afwykingswaarde in die kode aan vir kalibrasie.
  • Hou die insetspanning binne gespesifiseerde perke om skade te voorkom.
  • Vir hoër spanningsmetings, gebruik toepaslike resistors as 'n spanningsverdeler.

Bedradingsinstruksies

Arduino wiring for Voltage sensor
Arduino wiring for Voltage sensor

Om die spanningsensor-module te bedraad, begin deur die grondterminaal van die module aan die grond van die spanningsbron wat jy meet te verbind. Verbind volgende die sein-terminaal, gemerk as S, aan die Arduino se analoogpen A0. Verbind laastens die positiewe terminaal aan die spanningspunt wat jy wil meet. Die negatiewe terminaal moet ook aan die grond verbind word om die kring te voltooi.

Dit is noodsaaklik om te verseker dat die grondverbindings konsekwent is tussen die spanningsbron en die Arduino. Dit sal help om akkurate spanningslesings te verkry. As jy spannings hoër as 25 volt moet meet, mag bykomende resistors nodig wees om 'n spanningsverdeler te vorm, maar vir die meeste toepassings sal die basiese opstelling voldoende wees.

Kode Voorbeelde & Deurloop

Die kode begin deur 'n heelgetalveranderlike genaamd offset te definieer, wat gebruik word om enige teenstrydighede in die spanningslesing reg te stel. Die opstellingsfunksie initialiseer die reekskommunikasie teen 'n baud-tempo van 9600, wat noodsaaklik is om die spanningslesings op die reeksmonitor te vertoon.

int offset = 20; // stel die korreksie-afwykingswaarde
void setup() {
  Serial.begin(9600); // Initialiseer reekskommunikasie
}

In die lusfunksie lees die kode die analoogspanning van pen A0 en karteer die waarde van die reeks 0 tot 1023 na 'n spanningsreeks van 0 tot 2500, en voeg die offset by. Dit deel dan die spanning deur 100 om die toepaslike desimale voorstelling te kry.

void loop() {
  int volt = analogRead(A0); // lees die inset
  double voltage = map(volt, 0, 1023, 0, 2500) + offset; // karteer en voeg afwyking by
  voltage /= 100; // deel deur 100 om die desimale waardes te kry
  Serial.print("Spanning: ");
  Serial.print(voltage); // druk die spanning
  Serial.println("V");
  delay(500); // Vertraging vir 'n halwe sekonde
}

Hierdie lus lees voortdurend die spanning en druk dit elke halwe sekonde na die reeksmonitor. Jy kan die vertragingswaarde aanpas om die frekwensie van lesings te verander soos nodig.

Demonstrasie / Wat om te Verwag

Tydens die demonstrasie sal jy sien dat die maksimum meetbare spanning 25 volt is as gevolg van die ontwerp van die module. As jy probeer om hoër spannings te meet, sal die lesings versadig by 25 volt plus enige afwyking wat jy gekonfigureer het (in video by 08:00). Die lesings behoort redelik akkuraat te wees, en jy kan dit teen 'n multimeter verifieer vir kalibrasiedoeleindes.

Beelde

voltage_sensor_module-2
voltage_sensor_module-2
voltage_sensor_module-3
voltage_sensor_module-3
voltage_sensor_module-4
voltage_sensor_module-4
voltage_sensor_module-6
voltage_sensor_module-6
voltage_sensor_module-top
voltage_sensor_module-top
Arduino wiring for Voltage sensor
Arduino wiring for Voltage sensor
73-This is the Arduino code and video for the voltage sensor module.
Taal: C++
/*
 * This is the Arduino code for a Voltage Sensor.
 * You will measure voltage using this module, which eliminates the need for extra resistors.
 * In the video, you will also learn how to measure any voltages.

 * Watch the video instruction for Arduino Voltage sensor: https://youtu.be/FaoKzi7tgME
 *  * 

 * Permission granted to share this code, given that this
 * note is kept with the code.
 * Disclaimer: This code is "AS IS" and for educational purposes only.
 * 
 */
/*
 * Written by Ahmad Shamshiri for Robojax
 * on Feb 07, 2018 at 20:05, Ajax, Ontario, Canada
 */
int offset =20;// set the correction offset value
void setup() {
  // Robojax.com voltage sensor
  Serial.begin(9600);
}

void loop() {
  // Robojax.com voltage sensor
  int volt = analogRead(A0);// read the input
  double voltage = map(volt,0,1023, 0, 2500) + offset;// map 0-1023 to 0-2500 and add correction offset
  
  voltage /=100;// divide by 100 to get the decimal values
  Serial.print("Voltage: ");
  Serial.print(voltage);//print the voltage
  Serial.println("V");

delay(500);
  
  
}

Goedere wat jy dalk nodig het

Hulpbronne en verwysings

Lêers📁

Skeematies

Fritzing-lêer