કોડ શોધો

પાઠ 9/31: આર્ડુઈનો, પોટેન્શિયોમીટર AnalogRead નો ઉપયોગ કરીને વોલ્ટેજ વાંચવું | SunFounder ની આર્ડુઈનો લર્નિંગ કિટ

પાઠ 9/31: આર્ડુઈનો, પોટેન્શિયોમીટર AnalogRead નો ઉપયોગ કરીને વોલ્ટેજ વાંચવું | SunFounder ની આર્ડુઈનો લર્નિંગ કિટ

પરિચય

આ પ્રોજેક્ટ માર્ગદર્શિકા Arduino સાથે એનાલોગ DC વોલ્ટેજ વાંચવાની મૂળભૂત કુશળતાનું અન્વેષણ કરે છે. જ્યારે આ કોઈપણ ઇલેક્ટ્રોનિક્સ ઉત્સાહી માટે મુખ્ય ખ્યાલ છે, તેની વાસ્તવિક દુનિયાની એપ્લિકેશનો અતિ વૈવિધ્યસભર છે. બદલાતા વોલ્ટેજને ચોક્કસ રીતે માપવાની ક્ષમતા તમને તમારા Arduino ને એનાલોગ સેન્સર્સ અને ઘટકોની વિશાળ શ્રેણી સાથે જોડવાની મંજૂરી આપે છે.

analog_read_arduino-1-battery

આ જ્ઞાન સાથે તમે શું બનાવી શકો છો તેના થોડા વ્યવહારુ ઉદાહરણો અહીં છે:

  • કસ્ટમ પાવર સપ્લાય મોનિટર બનાવવું: બેટરી અથવા સોલર પેનલનો રીઅલ-ટાઇમ વોલ્ટેજ પ્રદર્શિત કરો જેથી ખાતરી થાય કે તે સલામત ઓપરેટિંગ મર્યાદામાં છે.
  • સરળ લાઇટ મીટર બનાવવું: આસપાસના પ્રકાશ સ્તરને માપવા અને લાઇટિંગને સ્વચાલિત કરવા માટે વોલ્ટેજ ડિવાઇડર સર્કિટમાં લાઇટ-ડિપેન્ડન્ટ રેઝિસ્ટર (LDR) નો ઉપયોગ કરો.
  • તાપમાન ગેજ બનાવવું: વર્તમાન તાપમાન વાંચવા અને પ્રદર્શિત કરવા માટે TMP36 જેવા એનાલોગ તાપમાન સેન્સર સાથે ઇન્ટરફેસ કરો.
  • વપરાશકર્તા નિયંત્રણ નોબ ઉમેરવું: LED તેજ, મોટર ઝડપ, અથવા સાઉન્ડ મોડ્યુલનો વોલ્યુમ જેવા પરિમાણોને સમાયોજિત કરવા માટે પોટેન્શિયોમીટરને એનાલોગ ઇનપુટ તરીકે ઉપયોગ કરો.
  • અંતર સેન્સર વિકસાવવું: ઑબ્જેક્ટ સુધીનું અંતર માપવા માટે એનાલોગ અંતર સેન્સર (જેમ કે શાર્પ IR સેન્સર) માંથી વોલ્ટેજ આઉટપુટ વાંચો.

હાર્ડવેર અને ઘટકો

આ પાઠ એનાલોગ વોલ્ટેજ વાંચવાના મૂળભૂત ખ્યાલ પર ધ્યાન કેન્દ્રિત કરે છે. આ દર્શાવવા માટે, અમે પોટેન્શિયોમીટરનો ઉપયોગ કરીશું, જે ચલ વોલ્ટેજ ડિવાઇડર તરીકે કાર્ય કરે છે. આ પ્રોજેક્ટ માટે જરૂરી ઘટકો સરળ છે અને સામાન્ય રીતે સ્ટાર્ટર કિટ્સમાં જોવા મળે છે:

  • Arduino Uno (અથવા Nano જેવું સમાન બોર્ડ)
  • પોટેન્શિયોમીટર (10kΩ એ સામાન્ય મૂલ્ય છે)
  • જમ્પર વાયર
  • પ્રોગ્રામિંગ અને પાવર માટે USB કેબલ
analog_read_arduino-8-pot-screwdriver
analog_read_arduino-9-pot-with_knob
analog_read_arduino-10-slider-pot

એનાલોગ વિ. ડિજિટલ સમજવું

ડિજિટલ સિગ્નલોથી વિપરીત, જે સખત રીતે ઉચ્ચ (5V) અથવા નીચું (0V) હોય છે, એનાલોગ સિગ્નલ આ બે મર્યાદાઓ વચ્ચેનો કોઈપણ વોલ્ટેજ હોઈ શકે છે. Arduino ના એનાલોગ પિન (A0 થી A5 તરીકે લેબલ થયેલ) એનાલોગ-ટુ-ડિજિટલ કન્વર્ટર (ADC) સાથે જોડાયેલા છે. આ ઘટક એનાલોગ વોલ્ટેજને માપે છે અને તેને માઇક્રોકન્ટ્રોલર સમજી શકે તેવી પ્રમાણસર ડિજિટલ સંખ્યામાં રૂપાંતરિત કરે છે.

analog_read_arduino-3-digital-signal
analog_read_arduino-5-analog-signal-example

આ રૂપાંતરણનું રિઝોલ્યુશન ADC ઉપયોગ કરે છે તે બિટ્સની સંખ્યા દ્વારા નક્કી થાય છે. Arduino Uno પાસે 10-બિટ ADC છે, જેનો અર્થ છે કે તે ઇનપુટ વોલ્ટેજને 210 = 1024 અલગ પગલાંઓમાં રજૂ કરી શકે છે. આના પરિણામે 0 થી 1023 સુધીનું ડિજિટલ મૂલ્ય મળે છે. અન્ય બોર્ડની ચોકસાઈ બદલાઈ શકે છે; ઉદાહરણ તરીકે, કેટલાકમાં 12-બિટ ADC છે, જે 212 = 4096 પગલાંઓ પ્રદાન કરે છે, જે વધુ સુંદર રિઝોલ્યુશન આપે છે. (વિડિયોમાં 04:01 પર)

analog_read_arduino-6-flat-5-volts

વોલ્ટેજ ડિવાઇડર તરીકે પોટેન્શિયોમીટર

પોટેન્શિયોમીટર એ ત્રણ પિન સાથેનો ચલ રેઝિસ્ટર છે. જ્યારે બાહ્ય પિન 5V અને GND સાથે જોડાયેલા હોય છે, ત્યારે તે વોલ્ટેજ ડિવાઇડર તરીકે કાર્ય કરે છે. મધ્યમ પિન (વાઇપર) રેઝિસ્ટિવ ટ્રેક સાથે સરકે છે, જે તમને 0V અને 5V વચ્ચેનો કોઈપણ વોલ્ટેજ ટેપ કરવાની મંજૂરી આપે છે. (વિડિયોમાં 07:45 પર)

આ તેને આ પાઠ માટે એક આદર્શ સાધન બનાવે છે, કારણ કે તે આપણે વાંચી રહ્યા છીએ તે વોલ્ટેજને મેન્યુઅલી બદલવાની એક સરળ, હેન્ડ્સ-ઓન રીત પ્રદાન કરે છે. નોબ ફેરવીને, તમે ADC મૂલ્ય અને ગણતરી કરેલ વોલ્ટેજને રીઅલ-ટાઇમમાં બદલતા જોઈ શકો છો.

analog_read_arduino-7-sampling

વાયરિંગ માર્ગદર્શિકા

analog_read_arduino-12-wiring-breadboard
analog_read_arduino-11-multiturn-pot

પોટેન્શિયોમીટરને Arduino સાથે જોડવું ખૂબ જ સરળ છે.

જ્યારે વિડિયો વાયરિંગની ચોક્કસ પદ્ધતિ દર્શાવે છે, ત્યારે નીચે આપેલી ઘટકોને જોડવાની પ્રમાણભૂત અને સૌથી વિશ્વસનીય રીત છે:

  1. પોટેન્શિયોમીટરનો ડાબો પિન આર્ડુઇનો પરના 5V પિન સાથે જોડો.
  2. પોટેન્શિયોમીટરનો જમણો પિન આર્ડુઇનો પરના GND પિન સાથે જોડો.
  3. પોટેન્શિયોમીટરનો મધ્યમ પિન આર્ડુઇનો પરના A0 એનાલોગ પિન સાથે જોડો.
analog_read_arduino-12-wiring-dual-shot

કોડ સમજૂતી

આ ટ્યુટોરિયલ ચાર અલગ અલગ પ્રોગ્રામ્સ આવરી લે છે, જેમાંના દરેક વોલ્ટેજ વાંચવા અને ગણતરી કરવા માટે થોડી અલગ પદ્ધતિ દર્શાવે છે. તે બધા સમાન મુખ્ય તર્ક શેર કરે છે પરંતુ તમને તમારો કોડ કેવી રીતે ગોઠવવો તેની વિવિધ રીતો બતાવે છે. મુખ્ય ખ્યાલ એ છે કે કાચા ADC મૂલ્ય (0-1023) ને સૂત્રનો ઉપયોગ કરીને વોલ્ટેજમાં રૂપાંતરિત કરવું: વોલ્ટેજ = (ADC મૂલ્ય) * (5.0 / 1023).

નીચેના કોડ સ્નિપેટ્સમાં, તમે દરેક સ્કેચની ટોચ પર થોડા વપરાશકર્તા-રૂપરેખાંકિત ચલો જોશો:

  • int analogPin = A0; - આ આર્ડુઇનો પરનો પિન છે જેની સાથે તમારા પોટેન્શિયોમીટરનો મધ્યમ પિન જોડાયેલ છે. તમે આને કોઈપણ અન્ય એનાલોગ પિન (દા.ત., A1, A2) માં બદલી શકો છો.
  • Serial.begin(9600); - આ સીરિયલ કમ્યુનિકેશન માટે બૉડ રેટ સેટ કરે છે. તે તમારા આર્ડુઇનો IDE ના સીરિયલ મોનિટરમાં પસંદ કરેલા બૉડ રેટ સાથે મેળ ખાતું હોવું જોઈએ.

પાઠ 9/31-1 કોડ - એનાલોગ DC વોલ્ટેજ વાંચવું પદ્ધતિ 1

analog_read_arduino-13-method-1

આ પ્રથમ પદ્ધતિ સૌથી સંક્ષિપ્ત છે. તે loop() ની અંદર કોડની એક જ લાઇનમાં વોલ્ટેજ ગણતરી અને છાપવાનું કાર્ય કરે છે. જ્યારે તમારે માત્ર વોલ્ટેજ મૂલ્ય જોવાની જરૂર હોય ત્યારે ઝડપી પરીક્ષણો માટે આ એક સરસ અભિગમ છે, તેને પછીથી ઉપયોગ માટે સંગ્રહિત કર્યા વિના.

void loop() {
    Serial.println(analogRead(analogPin) * 5.0/1023);          // ડીબગ મૂલ્ય
}

પાઠ 9/31-2 કોડ - એનાલોગ DC વોલ્ટેજ વાંચવું પદ્ધતિ 2

analog_read_arduino-13-method-2

આ પદ્ધતિ loop() ની અંદર value નામનું સ્થાનિક ચલ રજૂ કરે છે. આ એનાલોગ પિન વાંચવાની ક્રિયાને ગણતરીથી અલગ કરીને કોડને થોડો વધુ વાંચવામાં સરળ બનાવે છે. analogRead() ફંક્શન કાચું ડિજિટલ મૂલ્ય પરત કરે છે, જે પછી ગણતરીમાં ઉપયોગ કરતા પહેલા value માં સંગ્રહિત થાય છે.

int value = analogRead(analogPin);
Serial.println( value* 5.0/1023); // ડીબગ મૂલ્ય

પાઠ 9/31-3 કોડ - એનાલોગ DC વોલ્ટેજ વાંચવું પદ્ધતિ 3

analog_read_arduino-13-method-3

આ અભિગમ મોટા પ્રોજેક્ટ્સ માટે સૌથી વધુ સંરચિત અને વ્યવહારુ છે. અહીં, ગણતરી કરેલ વોલ્ટેજ તેના પોતાના ચલ, voltage માં સંગ્રહિત થાય છે, જે float તરીકે જાહેર કરવામાં આવે છે. આ જરૂરી છે કારણ કે વોલ્ટેજ ગણતરી દશાંશ સંખ્યામાં પરિણમે છે. તેને ચલમાં સંગ્રહિત કરીને, તમે આ મૂલ્યનો ઉપયોગ તમારા પ્રોગ્રામમાં પછીથી અન્ય હેતુઓ માટે સરળતાથી કરી શકો છો, જેમ કે તેને LCD પર દર્શાવવું અથવા નિયંત્રણ લૂપમાં ઉપયોગ કરવો.

int value = analogRead(analogPin);
float voltage = value* 5.0/1023;
Serial.println(voltage); // વોલ્ટેજ છાપો

પાઠ 9/31-4 કોડ - એનાલોગ DC વોલ્ટેજ વાંચવું પદ્ધતિ 4

અંતિમ પદ્ધતિ ત્રીજી પદ્ધતિ પર આધારિત છે, આઉટપુટને વધુ વપરાશકર્તા-મૈત્રીપૂર્ણ બનાવવા માટે ફોર્મેટ કરીને. તે વોલ્ટેજને માત્ર એક દશાંશ સ્થાન સાથે છાપવા માટે Serial.print(voltage,1) નો ઉપયોગ કરે છે. બીજો દલીલ, 1, દશાંશ સ્થાનોની સંખ્યા સ્પષ્ટ કરે છે. તે પછી માપનના એકમને સૂચવવા માટે "V" અક્ષર છાપે છે, જે 3.3V જેવું સ્વચ્છ આઉટપુટ ઉત્પન્ન કરે છે.

int value = analogRead(analogPin);
float voltage = value* 5.0/1023;
Serial.print(voltage,1); // વોલ્ટેજ છાપો
Serial.println("V");

લાઇવ પ્રોજેક્ટ અને પ્રદર્શન

વિડિયોમાં, પ્રસ્તુતકર્તા ચારેય કોડ ઉદાહરણો દર્શાવે છે. પ્રથમ પ્રોગ્રામ અપલોડ કર્યા પછી, સીરિયલ મોનિટર કાચા ADC મૂલ્યો દર્શાવે છે. જેમ પોટેન્શિયોમીટરનું નોબ ફેરવવામાં આવે છે, તમે મૂલ્ય 0 થી 1023 સુધી બદલાતું જોઈ શકો છો. (વિડિયોમાં 16:46 પર)

જ્યારે વોલ્ટેજની ગણતરી કરવા માટે કોડ બદલવામાં આવે છે, ત્યારે સીરિયલ મોનિટર હવે વાસ્તવિક વોલ્ટેજ દર્શાવે છે, જે નોબ ફેરવવામાં આવે ત્યારે 0V થી 5V સુધી હોય છે. આ સ્પષ્ટ, દ્રશ્ય પુષ્ટિ પૂરી પાડે છે કે કોડ યોગ્ય રીતે કાર્ય કરી રહ્યો છે. પ્રસ્તુતકર્તા એ પણ બતાવે છે કે એનાલોગ પિનને ડિસ્કનેક્ટ કરવાથી રીડિંગ કેવી રીતે વધઘટ થાય છે, કારણ કે પિન હવે "ફ્લોટિંગ" છે, અને તેને 3.3V સાથે જોડવાથી લગભગ 3.3V નું રીડિંગ મળે છે તે દર્શાવે છે. (વિડિયોમાં 20:30 પર)

પ્રકરણો

  • [00:00] આર્ડુઇનો સાથે DC વોલ્ટેજ વાંચવાનો પરિચય
  • [01:30] એનાલોગ-થી-ડિજિટલ રૂપાંતર કેવી રીતે કાર્ય કરે છે
  • [07:39] પોટેન્શિયોમીટરનો પરિચય
  • [15:07] પોટેન્શિયોમીટર વાયરિંગ અને પ્રથમ કોડ અપલોડ
  • [17:33] પદ્ધતિ 1: વોલ્ટેજ સીધું છાપવું
  • [19:21] પદ્ધતિ 2: રીડિંગ માટે ચલનો ઉપયોગ
  • [20:58] પદ્ધતિ 3: ગણતરી કરેલ વોલ્ટેજ સંગ્રહિત કરવું
  • [23:16] પદ્ધતિ 4: વોલ્ટેજ આઉટપુટ ફોર્મેટ કરવું

છબીઓ

analog_read_arduino-5-analog-signal-example
analog_read_arduino-5-analog-signal-example
analog_read_arduino-6-flat-5-volts
analog_read_arduino-6-flat-5-volts
analog_read_arduino-7-sampling
analog_read_arduino-7-sampling
analog_read_arduino-8-pot-screwdriver
analog_read_arduino-8-pot-screwdriver
analog_read_arduino-9-pot-with_knob
analog_read_arduino-9-pot-with_knob
analog_read_arduino-10-slider-pot
analog_read_arduino-10-slider-pot
analog_read_arduino-11-multiturn-pot
analog_read_arduino-11-multiturn-pot
analog_read_arduino-12-wiring-breadboard
analog_read_arduino-12-wiring-breadboard
analog_read_arduino-12-wiring-dual-shot
analog_read_arduino-12-wiring-dual-shot
analog_read_arduino-13-method-1
analog_read_arduino-13-method-1
analog_read_arduino-13-method-2
analog_read_arduino-13-method-2
analog_read_arduino-13-method-3
analog_read_arduino-13-method-3
analog_read_arduino-1-battery
analog_read_arduino-1-battery
analog_read_arduino-3-digital-signal
analog_read_arduino-3-digital-signal
926-Lesson 9/31-1 code - Reading analog DC voltage Method 1
ભાષા: C++
/*
 * Lesson 9/31-1 Analog read
 * In this lesson we learn to read analog voltage in 4 ways. 
Download and resource page https://robojax.com/RJT592
watch video tutorial https://www.youtube.com/watch?v=Y9_PgvgfOIc
 * written/updated by Ahmad Shamshiri www.Robojax.com
 * Dec 12, 2022
 * 

*/
 int analogPin = A0; // device connected to analog pin A0
                   // outside leads to ground and +5V
 int value = 0;  // variable to store the value read

 void setup() {
    Serial.begin(9600);           //  setup serial
 }

 void loop() {
  
    Serial.println(analogRead(analogPin) * 5.0/1023);          // debug value
 }
 
927-Lesson 9/31-2 code - Reading analog DC voltage Method 2
ભાષા: C++
/*
 * Lesson 9/31-2 Analog read
 * In this lesson we learn to read analog voltage in 4 ways. 
Download and resource page https://robojax.com/RJT592
watch video tutorial https://www.youtube.com/watch?v=Y9_PgvgfOIc
 * written/updated by Ahmad Shamshiri www.Robojax.com
 * Dec 12, 2022
 * 

*/
  //Method 2 of lesson 9
 int analogPin = A0; // device connected to analog pin A0
                   // outside leads to ground and +5V
 
 void setup() {
    Serial.begin(9600);           //  setup serial
 }

 void loop() {
    int value = analogRead(analogPin);
    Serial.println( value* 5.0/1023); // debug value
 }
 
928-Lesson 9/31-3 code - Reading analog DC voltage Method 3
ભાષા: C++
/*
 * Lesson 9/31-3 Analog read
 * In this lesson we learn to read analog voltage in 4 ways. 
Download and resource page https://robojax.com/RJT592
watch video tutorial https://www.youtube.com/watch?v=Y9_PgvgfOIc
 * written/updated by Ahmad Shamshiri www.Robojax.com
 * Dec 12, 2022
 * 

*/
  //Method 3 of lesson 9
 int analogPin = A0; // device connected to analog pin A0
                   // outside leads to ground and +5V
 
 void setup() {
    Serial.begin(9600);           //  setup serial
 }

 void loop() {
    int value = analogRead(analogPin);
    float voltage = value* 5.0/1023;
    Serial.println(voltage); // print the voltage
 
 }
 

929-Lesson 9/31-4 code - Reading analog DC voltage Method 4
ભાષા: C++
/*
 * Lesson 9/31-4 Analog read
 * In this lesson we learn to read analog voltage in 4 ways. 
Download and resource page https://robojax.com/RJT592
watch video tutorial https://www.youtube.com/watch?v=Y9_PgvgfOIc
 * written/updated by Ahmad Shamshiri www.Robojax.com
 * Dec 12, 2022
 * 

*/

 //Method 4 of lesson 9
 int analogPin = A0; // device connected to analog pin A0
                   // outside leads to ground and +5V
 
 void setup() {
    Serial.begin(9600);           //  setup serial
 }

 void loop() {
    int value = analogRead(analogPin);
    float voltage = value* 5.0/1023;
    Serial.print(voltage,1); // print the voltage
    Serial.println("V");
 }
 

સંસાધનો અને સંદર્ભો

ફાઇલો📁

Arduino લાઇબ્રેરીઓ (zip)

વપરાશકર્તાનું માર્ગદર્શિકા