કોડ શોધો

પાઠ 98-10: આર્ડુઇનો ટ્રાફિક લાઇટ

પાઠ 98-10: આર્ડુઇનો ટ્રાફિક લાઇટ

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

ત્રણ રંગો સાથે વાસ્તવિક જીવનમાં ટ્રાફિક લાઇટ

વર્ગખંડના ડેમોની બહાર, તમે અહીં જે સમય તર્ક શીખો છો તે દરેક જગ્યાએ દેખાય છે:

  • મોડેલ રેલરોડ અથવા ડાયોરામા માટે વાસ્તવિક ટ્રાફિક લાઇટ મોડેલ બનાવવું
  • વર્કશોપ અથવા ગેરેજ માટે સમયબદ્ધ સૂચક સિસ્ટમ બનાવવી (દા.ત., "પ્રવેશ કરવા માટે સુરક્ષિત" / "રાહ જુઓ" સિગ્નલો)
  • બટન-ટ્રિગર થયેલા તબક્કાઓ સાથે પદયાત્રી ક્રોસિંગ સિગ્નલો માટે પાયો શીખવો
  • ઔદ્યોગિક અથવા ઘર ઓટોમેશન કાર્યો માટે સમયબદ્ધ રિલે ક્રમનો પ્રોટોટાઇપ બનાવવો
  • બાળકોને પરિચિત, ઓળખી શકાય તેવી વસ્તુ સાથે ક્રમ, સમય અને ઇલેક્ટ્રોનિક્સ વિશે શીખવવું

સૌથી સારી બાબત: અપલોડ થયા પછી આખું વસ્તુ સ્વતંત્ર રીતે ચાલે છે. તમે તમારા કમ્પ્યુટરથી Arduino ને એક વાર પ્રોગ્રામ કરો છો, પછી તેને બેટરી અથવા એડેપ્ટરથી પાવર આપો છો અને તે કાયમ ચાલે છે — PC ની જરૂર નથી (વિડિયોમાં 12:27 પર).

red, green and yellow leds on bread board for traffic light project
ટ્રાફિક લાઇટ પ્રોજેક્ટ માટે બ્રેડ બોર્ડ પર લાલ, લીલા અને પીળા LED

ટ્રાફિક લાઇટ કેવી રીતે કામ કરે છે

ટ્રાફિક લાઇટ ખરેખર ત્રણ આઉટપુટનો સમયબદ્ધ ક્રમ છે. Arduino એક સમયે એક LED ચાલુ કરે છે, નિર્ધારિત સેકન્ડો રાહ જુએ છે, તેને બંધ કરે છે, અને પછીના તરફ આગળ વધે છે. પછી ચક્ર પુનરાવર્તન કરે છે. વિડિયોના ઉદાહરણ સમયમાં, લીલું 3 સેકન્ડ માટે ચાલુ રહે છે, પીળું 1 સેકન્ડ માટે, અને લાલ 3 સેકન્ડ માટે — પરંતુ આ બધા કોડમાં ગોઠવી શકાય છે (વિડિયોમાં 49:44 પર).

traffic light timing: red light
ટ્રાફિક લાઇટ સમય: લાલ લાઇટ
traffic light timing: yellow light
ટ્રાફિક લાઇટ સમય: પીળી લાઇટ
traffic light timing: green light
ટ્રાફિક લાઇટ સમય: લીલી લાઇટ

ક્રમ વાસ્તવિક લાગે તેનું કારણ એ છે કે સમયગાળા વાસ્તવિક દુનિયાના ટ્રાફિક પ્રવાહને પ્રતિબિંબિત કરે છે: લીલું અને લાલ લાંબા હોય છે કારણ કે વાહનોને ઇન્ટરસેક્શનમાંથી પસાર થવા માટે સમયની જરૂર હોય છે, જ્યારે પીળું ટૂંકું હોય છે કારણ કે તે ફક્ત સંક્રમણ ચેતવણી છે. તમે તમને ગમે તે પરિસ્થિતિ સાથે મેળ કરવા માટે આને ટ્યુન કરી શકો છો.

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

આ પ્રોજેક્ટ માટે ભાગોની યાદી ન્યૂનતમ છે:

  • 1 × Arduino બોર્ડ (Uno, Nano, અથવા Mega — ઓછામાં ઓછા 3 ડિજિટલ પિન ધરાવતું કંઈપણ)
  • 3 × LED (લાલ, પીળો/નારંગી, અને લીલો — વિવિધ રંગો અસરને સ્પષ્ટ બનાવે છે)
  • 3 × રેઝિસ્ટર (300 Ω થી 1 kΩ સારી રીતે કામ કરે છે; વિડિયો 1 kΩ વાપરે છે)
  • 1 × બ્રેડબોર્ડ
  • જમ્પર વાયર
  • વૈકલ્પિક: તેને સ્વતંત્ર રીતે ચલાવવા માટે લિથિયમ-આયન બેટરી અથવા 5 V પાવર એડેપ્ટર

વિડિયો ત્રણ અલગ રંગના LED નો ઉપયોગ કરવાની સલાહ આપે છે જેથી ટ્રાફિક લાઇટની અસર તરત જ દેખાય — નહીંતર તમારે તેમને લેબલ કરવું પડશે (વિડિયોમાં 02:04 પર).

LED કરંટ લિમિટિંગ સમજવું

દરેક LED ને શ્રેણીમાં કરંટ-લિમિટિંગ રેઝિસ્ટરની જરૂર હોય છે. તેનું કારણ અહીં છે: LED માં લગભગ નિશ્ચિત ફોરવર્ડ વોલ્ટેજ હોય છે (સામાન્ય રીતે સ્ટાન્ડર્ડ 5 mm LED માટે લગભગ 2 V), અને જો તમે તેને સીધા 5 V સાથે જોડો છો, તો કરંટ વધી જશે અને તેને નષ્ટ કરશે. રેઝિસ્ટર વધારાનું વોલ્ટેજ શોષી લે છે.

ઓહ્મના નિયમનો ઉપયોગ કરીને, જો LED 2 V ઘટાડે છે અને સપ્લાય 5 V છે, તો 3 V રેઝિસ્ટરમાંથી ઘટવું જોઈએ. લગભગ 10 mA ના લક્ષ્ય કરંટ સાથે, રેઝિસ્ટરનું મૂલ્ય લગભગ 300 Ω થાય છે (વિડિયોમાં 04:41 પર). વ્યવહારમાં, 300 Ω થી 1 kΩ સુધીનું કંઈપણ કામ કરશે — ઊંચા મૂલ્યો ફક્ત LED ને મંદ બનાવે છે.

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

Schematic of Arduino traffic light
Arduino ટ્રાફિક લાઇટનું સ્કીમેટિક
Arduino LED traffic lights wiring
Arduino LED ટ્રાફિક લાઇટ વાયરિંગ

દરેક LED સમાન રીતે વાયર કરેલ છે: એનોડ (લાંબો પગ) Arduino ડિજિટલ પિન સાથે જોડાય છે, અને કેથોડ (ટૂંકો પગ, LED બોડીની સપાટ બાજુ) રેઝિસ્ટર દ્વારા ગ્રાઉન્ડ સાથે જોડાય છે.

વિડિયોના વાયરિંગમાં, લાલ LED પિન 2 સાથે જોડાય છે, પીળો/નારંગી LED પિન 3 સાથે, અને લીલો LED પિન 4 સાથે (વિડિયોમાં 50:50 પર). ત્રણેય રેઝિસ્ટર બ્રેડબોર્ડ પર સામાન્ય ગ્રાઉન્ડ રેલ શેર કરે છે. બ્રેડબોર્ડ પર રંગોનો ક્રમ મહત્વનો નથી — મહત્વનું એ છે કે તમારા કોડમાં પિન નંબર તમે ખરેખર ઉપયોગ કરેલા પિન સાથે મેળ ખાય છે.

વિડિયોમાંથી એક ઉપયોગી ટિપ: રેઝિસ્ટર LEDની બંને બાજુએ મૂકી શકાય છે. તમે તેને આર્ડુઇનો પિન અને LED એનોડ વચ્ચે, અથવા LED કેથોડ અને ગ્રાઉન્ડ વચ્ચે મૂકી શકો છો — વિદ્યુતીય રીતે તે સમાન છે (વિડિયોમાં 51:52 પર).

કોડની સમજૂતી

સંપૂર્ણ પ્રોગ્રામ લેખની નીચે ઉપલબ્ધ છે. અહીં આપણે તે ભાગો પર ધ્યાન કેન્દ્રિત કરીશું જે તમે કસ્ટમાઇઝ કરવા માંગો છો.

સ્કેચની ટોચ પર, ત્રણ પિન વ્યાખ્યાઓ દરેક LEDને ડિજિટલ પિન સાથે મેપ કરે છે. જો તમે તમારા LEDને અલગ પિન સાથે વાયર કર્યા હોય, તો આ મૂલ્યો બદલો:

const int greenLED = 4;
const int yellowLED = 3;
const int redLED = 2;

આગળ ટાઇમિંગ કોન્સ્ટન્ટ્સ આવે છે. આ નિયંત્રિત કરે છે કે દરેક લાઇટ કેટલા સમય સુધી ચાલુ રહે છે, મિલિસેકન્ડમાં. વિડિયો ડિફોલ્ટ રૂપે લીલા માટે 5000 ms, પીળા માટે 1000 ms, અને લાલ માટે 5000 ms વાપરે છે — પરંતુ ડેમો દરમિયાન આને 3 s / 1 s / 3 s, અને પછી 10 s / 3 s / 10 s માં બદલવામાં આવ્યા (વિડિયોમાં 56:27 પર):

const int greenOnTime = 5000;
const int yellowOnTime = 1000;
const int redOnTime = 5000;

તમારા ટ્રાફિક લાઇટની લય બદલવા માટે, ફક્ત આ ત્રણ મૂલ્યોમાં ફેરફાર કરો. ધીમું, વાસ્તવિક ઇન્ટરસેક્શન જોઈએ છે? 10000, 3000, 10000 અજમાવો. ઝડપી ડેમો જોઈએ છે? 1000, 300, 1000 અજમાવો.

loop() ની અંદર, ક્રમ સીધો છે: લીલું ચાલુ કરો, રાહ જુઓ, લીલું બંધ કરો; પીળું ચાલુ કરો, રાહ જુઓ, પીળું બંધ કરો; લાલ ચાલુ કરો, રાહ જુઓ, લાલ બંધ કરો; પછી લીલા પર પાછા લૂપ કરો. સીરિયલ મોનિટર દરેક સ્થિતિ પરિવર્તનને પ્રિન્ટ કરે છે જેથી તમે ચકાસી શકો કે ટાઇમિંગ તમે અપેક્ષા કરો છો તેની સાથે મેળ ખાય છે.

લાઇવ પ્રદર્શન

એકવાર કોડ અપલોડ થાય પછી, આર્ડુઇનો પોતાની જાતે ચક્ર ચલાવે છે. વિડિયોમાં, લીલી LED પહેલા પ્રકાશે છે, પછી તેના સમયગાળા પછી પીળી થોડા સમય માટે ચાલુ થાય છે, પછી લાલ, અને ચક્ર તરત જ ફરી શરૂ થાય છે (વિડિયોમાં 55:20 પર).

સીરિયલ મોનિટર આને ટેક્સ્ટમાં પ્રતિબિંબિત કરે છે — "green LED on", "green off", "yellow on", અને તેથી આગળ — જે તમારા ટાઇમિંગ મૂલ્યો ઇચ્છિત રીતે કામ કરી રહ્યા છે તેની પુષ્ટિ કરવાની એક ઉત્તમ રીત છે. જ્યારે તમે તેને વાયર વગર ચલાવવા માટે તૈયાર હોવ, ત્યારે USB ડિસ્કનેક્ટ કરો અને લિથિયમ-આયન બેટરી અથવા 5 V એડેપ્ટર કનેક્ટ કરો; આર્ડુઇનો કમ્પ્યુટર વગર ચક્ર ચલાવતું રહેશે (વિડિયોમાં 56:11 પર).

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

પ્રકરણો

  • [00:00] 10 આર્ડુઇનો LED પ્રોજેક્ટ્સની ઝાંખી
  • [01:22] આર્ડુઇનો સ્ટેપ-બાય-સ્ટેપ કોર્સનો પરિચય
  • [02:29] LED શું છે: પ્રતીક, એનોડ, અને કેથોડ
  • [03:49] LED કરંટ-લિમિટિંગ રેઝિસ્ટરની ગણતરી
  • [49:25] ટ્રાફિક લાઇટ પ્રોજેક્ટનો પરિચય
  • [49:44] ટ્રાફિક લાઇટ ટાઇમિંગ સમજાવ્યું
  • [50:34] ટ્રાફિક લાઇટ માટે વાયરિંગ ડાયાગ્રામ
  • [52:13] ટ્રાફિક લાઇટ માટે કોડની સમજૂતી
  • [54:32] સીરિયલ મોનિટર સાથે લાઇવ પ્રદર્શન
  • [55:30] ટાઇમિંગ મૂલ્યો બદલવા
  • [56:11] બેટરી પાવર પર ટ્રાફિક લાઇટ ચલાવવી

છબીઓ

traffic light timing: green light
traffic light timing: green light
ટ્રાફિક લાઇટ સમય: પીળી લાઇટ
ટ્રાફિક લાઇટ સમય: પીળી લાઇટ
ટ્રાફિક લાઇટ સમય: લાલ લાઇટ
ટ્રાફિક લાઇટ સમય: લાલ લાઇટ
Arduino ટ્રાફિક લાઇટનો સ્કીમેટિક
Arduino ટ્રાફિક લાઇટનો સ્કીમેટિક
traffic_lights
traffic_lights
Arduino LED ટ્રાફિક લાઇટ વાયરિંગ
Arduino LED ટ્રાફિક લાઇટ વાયરિંગ
ટ્રાફિક લાઇટ પ્રોજેક્ટ માટે બ્રેડ બોર્ડ પર લાલ, લીલા અને પીળા LED
ટ્રાફિક લાઇટ પ્રોજેક્ટ માટે બ્રેડ બોર્ડ પર લાલ, લીલા અને પીળા LED
942-Lessson 98-LED-10: Arduino code traffic light
ભાષા: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

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

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

ફાઇલો📁

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

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