કોડ શોધો

પાઠ 98-4: આર્ડુઇનોનો ઉપયોગ કરીને LED લાઇટને ફેડ કરવી: બ્રાઇટનેસ કંટ્રોલ

પાઠ 98-4: આર્ડુઇનોનો ઉપયોગ કરીને LED લાઇટને ફેડ કરવી: બ્રાઇટનેસ કંટ્રોલ

એલઈડી (LEDs) દરેક જગ્યાએ છે — સૂચકો, ડિસ્પ્લે, સજાવટી લાઇટિંગ — પરંતુ મોટાભાગના શિખાઉ લોકો ફક્ત તેને ચાલુ અને બંધ કરવા પર જ અટકી જાય છે. આ પ્રોજેક્ટ આગળનું પગલું ભરે છે: આર્ડુનોની બિલ્ટ-ઇન PWM (પલ્સ વિડ્થ મોડ્યુલેશન) ક્ષમતાનો ઉપયોગ કરીને એલઈડીને સરળતાથી ધીમે ધીમે તેજ થતી અને ઝાંખી થતી કરવી. કઠોર બ્લિંકને બદલે, તમને તેજમાં ક્રમિક વધારો અને ઘટાડો મળે છે જે કુદરતી ડિમિંગ, શ્વાસ લેવાની અસરો અને સંપૂર્ણપણે ડિજિટલ પિનમાંથી એનાલોગ જેવા નિયંત્રણની નકલ કરે છે. આ સૌથી સંતોષકારક પ્રથમ પ્રોજેક્ટ્સમાંનો એક છે કારણ કે તમે પરિણામ તરત જ જોઈ શકો છો, અને આ જ તકનીક મોટર ગતિ નિયંત્રણ, ઓડિયો વોલ્યુમ અને વાસ્તવિક ઉત્પાદનોમાં બેકલાઇટ ડિમિંગને આધાર આપે છે.

LED-5mm-green

એકવાર તમે ફેડિંગ સમજી લો, પછી તમે તેને વિશાળ શ્રેણીના વ્યવહારુ બિલ્ડ્સ પર લાગુ કરી શકો છો:

  • એક ઉપકરણ પર "શ્વાસ લેતું" સ્થિતિ સૂચક બનાવવું જે વિચલિત કરતા બ્લિંક કરવાને બદલે નરમાઈથી સ્પંદન પામે
  • આસપાસના પ્રકાશ અથવા દિવસના સમયના આધારે એલઈડી નાઇટલાઇટને આપમેળે ઝાંખી કરવી
  • એલસીડી અથવા ઓએલઈડી ડિસ્પ્લે પર બેકલાઇટની તેજને નિયંત્રિત કરવી
  • તેજ સ્તરો વચ્ચે સરળ સંક્રમણો સાથે મૂડ લાઇટિંગ અથવા સજાવટી લેમ્પ બનાવવા
  • ધીમા સૂર્યોદય એલાર્મ ઘડિયાળનું અનુકરણ કરવું જે તમને કુદરતી રીતે જગાડવા માટે ધીમે ધીમે તેજ થાય
  • નાના ડીસી મોટર્સ અથવા ફેન્સમાં ઝડપ નિયંત્રણ ઉમેરવું (સમાન PWM સિદ્ધાંત લાગુ પડે છે)

આ ટ્યુટોરીયલ રોબોજેક્સ આર્ડુનો સ્ટેપ-બાય-સ્ટેપ કોર્સનો ભાગ છે, અને ખાસ કરીને 10માંથી પ્રોજેક્ટ 4 આવરી લે છે: આર્ડુનોનો ઉપયોગ કરીને એલઈડી લાઇટને ફેડ કરવી. સંપૂર્ણ પ્રોગ્રામ લેખની નીચે ડાઉનલોડ માટે ઉપલબ્ધ છે.

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

330_ohm_resistor
330 ohm 0.25 watt resistor

આ પ્રોજેક્ટ માટેના ભાગોની યાદી ન્યૂનતમ છે — જો તમે પહેલાં કોઈ આર્ડુનો કામ કર્યું હોય, તો તમારી પાસે સંભવતઃ તમને જોઈતું બધું પહેલેથી જ હશે:

  • 1× આર્ડુનો બોર્ડ (યુનો, નેનો, મેગા, અથવા કોઈપણ સુસંગત બોર્ડ)
  • 1× એલઈડી (5mm અથવા 3mm, કોઈપણ રંગ)
  • 1× રેઝિસ્ટર (200Ω થી 1000Ω — 300Ω થી 1kΩ શ્રેણી સારી રીતે કામ કરે છે)
  • બ્રેડબોર્ડ અને ડુપોન્ટ જમ્પર વાયર
  • પ્રોગ્રામિંગ અને પાવર માટે યુએસબી કેબલ

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

રેઝિસ્ટર મૂલ્ય માટે, ટ્રાન્સક્રિપ્ટ (વિડિયોમાં 03:49 પર) ગણિત દ્વારા ચાલે છે: સામાન્ય એલઈડી લગભગ 2V ઘટે છે અને તેને આશરે 10mA પ્રવાહની જરૂર પડે છે. 5V સપ્લાય સાથે, બાકીના 3V રેઝિસ્ટરમાં ઘટવા જોઈએ, જે R = V/I = 3V / 0.01A = 300Ω આપે છે. વ્યવહારમાં, 300Ω થી 1000Ω સુધીનું કંઈપણ કામ કરશે — ઊંચા મૂલ્યો ફક્ત ઝાંખી એલઈડી ઉત્પન્ન કરે છે. ફેડિંગ માટે, આ વાસ્તવમાં ઠીક છે, કારણ કે તમે કોઈપણ રીતે તેજ બદલી રહ્યા છો.

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

Arduino schematic for two LEDs see saw
Arduino schematic for two LEDs see saw
Arduino wiring for two LEDs see saw
Arduino wiring for two LEDs see saw

વાયરિંગ લગભગ તેટલું જ સરળ છે જેટલું તે મળે છે. એલઈડીનો એનોડ રેઝિસ્ટર દ્વારા આર્ડુનો પર PWM-સક્ષમ પિન સાથે જોડાય છે — આ પ્રોજેક્ટમાં, પિન 3. કેથોડ ગ્રાઉન્ડ સાથે જોડાય છે.

શા માટે ખાસ કરીને પિન 3? કારણ કે બધા આર્ડુનો પિન PWMને સપોર્ટ કરતા નથી. મોટાભાગના આર્ડુનો બોર્ડ્સ પર, PWM-સક્ષમ પિન ટિલ્ડ સિમ્બોલ (~) સાથે ચિહ્નિત હોય છે — સામાન્ય રીતે યુનો પર પિન 3, 5, 6, 9, 10, અને 11. જો તમે નોન-PWM પિનનો ઉપયોગ કરો છો, તો analogWrite() ચલ આઉટપુટ ઉત્પન્ન કરશે નહીં; એલઈડી ફક્ત ચાલુ અથવા બંધ રહેશે.

સર્કિટને નીચે મુજબ જોડો:

  1. એલઈડીને બ્રેડબોર્ડમાં દાખલ કરો, કયો પગ એનોડ (લાંબો) છે અને કયો કેથોડ (ટૂંકો/સપાટ બાજુ) છે તે નોંધો.
  2. એલઈડીના એનોડને રેઝિસ્ટર દ્વારા આર્ડુનો પિન 3 સાથે જોડો.
  3. એલઈડીના કેથોડને આર્ડુનોના GND પિન સાથે જોડો.
  4. યુએસબી દ્વારા આર્ડુનોને તમારા કમ્પ્યુટરમાં પ્લગ કરો.

કોડ સમજૂતી

આ પ્રોજેક્ટ માટેનો સ્કેચ ક્લાસિક આર્ડુનો "ફેડ" ઉદાહરણ પર આધારિત છે, થોડા ફેરફારો સાથે. દરેક લાઇન સમજાવવાને બદલે, ચાલો તમારા પોતાના પ્રયોગો માટે સમાયોજિત કરવા માંગતા ભાગો પર ધ્યાન કેન્દ્રિત કરીએ.

વપરાશકર્તા-રૂપરેખાંકનક્ષમ ચલો

કોડની ટોચ પર, ત્રણ ચલો સમગ્ર વર્તનને નિયંત્રિત કરે છે:

int led = 3;           // the PWM pin the LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 3;    // how many points to fade the LED by
  • led — આ વ્યાખ્યાયિત કરે છે કે LED કયા પિન સાથે જોડાયેલ છે. ડિફોલ્ટ પિન 3 છે, પરંતુ તમે તેને કોઈપણ PWM-સક્ષમ પિન પર બદલી શકો છો (તમારા બોર્ડ પર ~ થી ચિહ્નિત). જો તમે LED ને અલગ પિન પર ખસેડો છો, તો આ મૂલ્યને અનુરૂપ અપડેટ કરો.
  • brightness — આ વર્તમાન તેજ સ્તર છે, જે 0 (બંધ) થી 255 (પૂર્ણ તેજ) સુધીની રેન્જમાં છે. કોડ તેને 0 થી શરૂ કરે છે, પરંતુ તમે તે રેન્જમાં ગમે ત્યાંથી શરૂ કરી શકો છો.
  • fadeAmount — આ પ્રયોગ કરવા માટે સૌથી રસપ્રદ છે. તે નિયંત્રિત કરે છે કે દરેક ચક્રમાં કેટલા તેજ "પગલાં" લેવામાં આવે છે. 3 જેવું નાનું મૂલ્ય ધીમો, ક્રમિક ફેડ ઉત્પન્ન કરે છે. 20 જેવું મોટું મૂલ્ય LED ને ખૂબ ઝડપથી ફેડ ઇન અને આઉટ કરે છે. ટ્રાન્સક્રિપ્ટ આને (વિડિયોમાં 22:37 પર) દર્શાવે છે — 5 થી 20 માં બદલવાથી અસર નાટકીય રીતે ઝડપી થાય છે.

ફેડિંગ કેવી રીતે કાર્ય કરે છે

ફેડિંગનો મુખ્ય ભાગ loop() ની અંદર બે લાઇનમાં થાય છે:

analogWrite(led, brightness);
brightness = brightness + fadeAmount;

લૂપમાંથી દરેક પસાર થવા પર, વર્તમાન તેજ મૂલ્ય analogWrite() નો ઉપયોગ કરીને LED પર લખવામાં આવે છે, પછી તેજ fadeAmount દ્વારા વધારવામાં આવે છે. analogWrite() ફંક્શન એનાલોગ વોલ્ટેજનું અનુકરણ કરવા માટે PWM નો ઉપયોગ કરે છે — તે પિનને ઝડપથી ચાલુ અને બંધ કરે છે, અને ચાલુ-સમય અને બંધ-સમયનો ગુણોત્તર અનુભવાયેલ તેજ નક્કી કરે છે.

જ્યારે તેજ 0 અથવા 255 પર પહોંચે છે, ત્યારે કોડ fadeAmount ની નિશાની ફ્લિપ કરીને દિશા ઉલટાવે છે:

if (brightness <= 0 || brightness >= 255) {
  fadeAmount = -fadeAmount;
}

આ જ LED ને ફેડ ઇન, પછી ફેડ આઉટ, પછી ફરી ફેડ ઇન કરાવે છે — એક સતત શ્વાસ ચક્ર. લૂપના અંતે delay(30) એનિમેશનની એકંદર ઝડપ નિયંત્રિત કરે છે. ટૂંકી ડિલે ફેડને ઝડપી બનાવે છે; લાંબી ડિલે તેને ધીમી કરે છે.

મૂલ્યો સાથે પ્રયોગ કરવો

બે વેરિયેબલ તમને દૃશ્ય અસર પર સૌથી વધુ નિયંત્રણ આપે છે:

  • fadeAmount વધારો ઝડપી, વધુ નાટકીય ફેડ માટે. 10 અથવા 20 અજમાવો.
  • fadeAmount ઘટાડો ધીમી, નમ્ર શ્વાસ અસર માટે. 1 અથવા 2 અજમાવો.
  • delay() મૂલ્ય સમાયોજિત કરો ગતિ બદલવા માટે. નાની ડિલે આખા ચક્રને ઝડપી બનાવે છે; મોટી ડિલે તેને લંબાવે છે.

નાના fadeAmount ને ટૂંકી ડિલે સાથે જોડવાથી અત્યંત સરળ, લગભગ સેન્દ્રિય ફેડ ઉત્પન્ન થાય છે — એમ્બિયન્ટ લાઇટિંગ માટે ઉત્તમ. મોટા fadeAmount સાથે ટૂંકી ડિલે ઝડપી પલ્સિંગ અસર બનાવે છે.

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

કોડ અપલોડ થયા પછી, તમે જોશો કે LED ધીમે ધીમે બંધથી પૂર્ણ તેજ સુધી તેજસ્વી થાય છે, પછી પાછું મંદ થાય છે, અનંતકાળ સુધી પુનરાવર્તન થાય છે. ટ્રાન્સક્રિપ્ટ (વિડિયોમાં 22:25 પર) ડિફોલ્ટ વર્તન દર્શાવે છે — એક સરળ, મધ્યમ-ઝડપી ફેડ.

જ્યારે fadeAmount 20 માં બદલાય છે, ત્યારે LED ખૂબ ઝડપથી ફેડ ઇન અને આઉટ થાય છે — લગભગ ફ્લિકર જેવું. જ્યારે 3 પર સેટ કરવામાં આવે છે, ત્યારે ફેડ નોંધપાત્ર રીતે વધુ સમય લે છે, જે આરામદાયક, ક્રમિક સંક્રમણ બનાવે છે. આ વિડિયોમાં (વિડિયોમાં 23:02 પર) સ્પષ્ટ રીતે દર્શાવવામાં આવ્યું છે.

આ પ્રોજેક્ટની સુંદરતા એ છે કે તમે તમારા કોડ ફેરફારોની અસર તરત જ જોઈ શકો છો — કોઈ વાયરિંગ ફેરફારની જરૂર નથી, ફક્ત વેરિયેબલ્સ સંપાદિત કરો અને ફરી અપલોડ કરો. તે ચુસ્ત ફીડબેક લૂપ તેને PWM અને ટાઇમિંગ કેવી રીતે ક્રિયાપ્રતિક્રિયા કરે છે તેની અંતર્જ્ઞાન બનાવવા માટે એક ઉત્તમ માર્ગ બનાવે છે.

જો તમે ફેડને સતત ચાલવા દેવાને બદલે પુશ બટન વડે ટ્રિગર કરીને આને આગળ લઈ જવા માંગો છો, તો તે અલગ ટ્યુટોરિયલમાં આવરી લેવામાં આવ્યું છે — નીચે સંબંધિત પ્રોજેક્ટ્સ વિભાગ જુઓ.

આ વિડિયોના સંબંધિત પ્રોજેક્ટ્સ

પ્રકરણો

  • [00:00] 10 Arduino LED પ્રોજેક્ટ્સનો ઝાંખી
  • [01:22] કોર્સ અને જરૂરી ઘટકોનો પરિચય
  • [02:29] LED સમજવું: પ્રતીકો, ધ્રુવીયતા અને પ્રકારો
  • [03:49] ઓહ્મના નિયમનો ઉપયોગ કરીને LED રેઝિસ્ટર મૂલ્યની ગણતરી
  • [05:53] પ્રોજેક્ટ 1: LED ચાલુ અને બંધ કરવો
  • [12:43] પ્રોજેક્ટ 2: પુશ બટન સાથે LED નિયંત્રણ
  • [17:13] પ્રોજેક્ટ 3: પુશ બટન સાથે ટોગલ LED
  • [20:12] પ્રોજેક્ટ 4: LED ફેડ કરવો — કોડ વોકથ્રુ
  • [22:25] ફેડિંગ પ્રદર્શન અને ફેડ ઝડપ સમાયોજિત કરવી
  • [23:20] પ્રોજેક્ટ 5: પુશ બટન ટ્રિગર સાથે LED ફેડ કરવો
  • [27:32] પ્રોજેક્ટ 6: સીસૉ LED અસર
  • [30:47] પ્રોજેક્ટ 7: 5 LED સાથે વૉકિંગ લાઇટ
  • [36:41] પ્રોજેક્ટ 8: પુશ બટન દ્વારા નિયંત્રિત વૉકિંગ લાઇટ
  • [42:25] પ્રોજેક્ટ 9: પોટેન્શિયોમીટર સાથે LED વોલ્ટેજ લેવલ મીટર
  • [49:25] પ્રોજેક્ટ 10: Arduino ટ્રાફિક લાઇટ

છબીઓ

Arduino wiring for LED  with resistor
Arduino wiring for LED with resistor
Arduino schematic for LED
Arduino schematic for LED
Arduino wiring for two LEDs see saw
Arduino wiring for two LEDs see saw
Arduino schematic for two LEDs see saw
Arduino schematic for two LEDs see saw
LED-5mm-green
LED-5mm-green
330_ohm_resistor
330_ohm_resistor
936-Lessson 98-LED-4: Arduino code to fade the LED light
ભાષા: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

તમને જોઈતી વસ્તુઓ

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

ફાઇલો📁

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

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