મુખ્ય સામગ્રી પર જાઓ
  1. સંસાધનો/
  2. અભ્યાસ સામગ્રી/
  3. ઇલેક્ટ્રોનિક્સ અને કમ્યુનિકેશન એન્જિનિયરિંગ/
  4. ઇસીઇ સેમેસ્ટર 5/

Embedded System & Microcontroller Application (4351102) - Summer 2024 Solution Gujarati

21 મિનિટ· ·
Study-Material Solutions Embedded-System 4351102 2024 Summer Gujarati
મિલવ ડબગર
લેખક
મિલવ ડબગર
ઇલેક્ટ્રિકલ અને ઇલેક્ટ્રોનિક મેન્યુફેક્ચરિંગ ઉદ્યોગમાં અનુભવી લેક્ચરર. એમ્બેડેડ સિસ્ટમ્સ, ઈમેજ પ્રોસેસિંગ, ડેટા સાયન્સ, મેટલેબ, પાયથન, STM32માં કુશળ. એલ.ડી. કોલેજ ઓફ એન્જિનિયરિંગ - અમદાવાદથી કમ્યુનિકેશન સિસ્ટમ્સ એન્જિનિયરિંગમાં માસ્ટર્સ ડિગ્રી ધરાવતા મજબૂત શિક્ષણ વ્યાવસાયિક.
અનુક્રમણિકા

પ્રશ્ન 1(અ) [3 ગુણ]
#

એમ્બેડેડ સિસ્ટમની વ્યાખ્યા શું છે? એમ્બેડેડ સિસ્ટમનું ઉદાહરણ આપો.

જવાબ: એમ્બેડેડ સિસ્ટમ એ એક વિશેષ કમ્પ્યુટર સિસ્ટમ છે જે ચોક્કસ કાર્યો કરવા માટે સમર્પિત કાર્યો સાથે ડિઝાઇન કરવામાં આવે છે. તે હાર્ડવેર અને સોફ્ટવેર ઘટકોને જોડે છે જે વિશાળ સિસ્ટમમાં એકીકૃત થાય છે.

મુખ્ય લક્ષણો:

  • રીઅલ-ટાઇમ ઓપરેશન: નિર્દિષ્ટ સમય મર્યાદામાં ઇનપુટ્સનો પ્રતિસાદ આપે છે
  • સમર્પિત કાર્ય: ચોક્કસ એપ્લિકેશન માટે ડિઝાઇન કરેલું
  • રિસોર્સ મર્યાદાઓ: મર્યાદિત મેમરી, પાવર અને પ્રોસેસિંગ ક્ષમતાઓ

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

યાદ રાખવાની ટિપ: “SMART Embedded” - Specialized, Microprocessor-based, Application-specific, Real-time, Task-oriented


પ્રશ્ન 1(બ) [4 ગુણ]
#

રીઅલ-ટાઇમ ઓપરેટિંગ સિસ્ટમ (RTOS) ને વ્યાખ્યાયિત કરો અને RTOS ની ત્રણ લાક્ષણિકતાઓની યાદી બનાવો.

જવાબ: RTOS એ એક ઓપરેટિંગ સિસ્ટમ છે જે રીઅલ-ટાઇમ એપ્લિકેશન્સને હેન્ડલ કરવા માટે ડિઝાઇન કરવામાં આવ્યું છે જ્યાં સિસ્ટમ ઓપરેશન માટે ટાઇમિંગ અવરોધો નિર્ણાયક છે.

લાક્ષણિકતાવર્ણન
નિર્ધારિત પ્રતિસાદનિર્ણાયક કાર્યો માટે ગેરંટીડ રિસ્પોન્સ ટાઇમ
પ્રાથમિકતા-આધારિત શેડ્યુલિંગઉચ્ચ પ્રાથમિકતાના કાર્યો નીચા પ્રાથમિકતાના કાર્યો પહેલાં ચાલે છે
મલ્ટિટાસ્કિંગ સપોર્ટબહુવિધ કાર્યો એકસાથે ચાલી શકે છે

વધારાની વિશેષતાઓ:

  • કાર્ય વ્યવસ્થાપન: બહુવિધ સમાંતર પ્રક્રિયાઓને અસરકારક રીતે હેન્ડલ કરે છે
  • ઇન્ટરપ્ટ હેન્ડલિંગ: બાહ્ય ઘટનાઓને ઝડપી પ્રતિસાદ
  • મેમરી વ્યવસ્થાપન: એમ્બેડેડ એપ્લિકેશન્સ માટે ઓપ્ટિમાઇઝ્ડ

યાદ રાખવાની ટિપ: “DPM RTOS” - Deterministic, Priority-based, Multitasking


પ્રશ્ન 1(ક) [7 ગુણ]
#

અ) એમ્બેડેડ સિસ્ટમનો જનરલ બ્લોક ડાયાગ્રામ દોરો બ) એમ્બેડેડ સિસ્ટમ માટે માઇક્રોકન્ટ્રોલર પસંદ કરવાના માપદંડો સમજાવો.

જવાબ:

અ) જનરલ બ્લોક ડાયાગ્રામ:

graph TD
    A[Input Devices] --> B[Microcontroller/Processor]
    B --> C[Output Devices]
    B --> D[Memory System]
    D --> B
    B --> E[Communication Interface]
    F[Power Supply] --> B
    G[Clock/Timer] --> B

બ) માઇક્રોકન્ટ્રોલર પસંદગીના માપદંડો:

માપદંડવિચારણાઓ
પ્રોસેસિંગ સ્પીડક્લોક ફ્રીક્વન્સી, ઇન્સ્ટ્રક્શન એક્ઝિક્યુશન ટાઇમ
મેમરી જરૂરિયાતોFlash, RAM, EEPROM ક્ષમતા
I/O ક્ષમતાઓપિન્સની સંખ્યા, વિશેષ કાર્યો
પાવર વપરાશબેટરી લાઇફ, સ્લીપ મોડ્સ
કિંમતબજેટ અવરોધો, વોલ્યુમ પ્રાઇસિંગ
ડેવલપમેન્ટ ટૂલ્સકમ્પાઇલર, ડિબગર ઉપલબ્ધતા

મુખ્ય પરિબળો:

  • પ્રદર્શન આવશ્યકતાઓ: પ્રોસેસિંગ સ્પીડ અને રીઅલ-ટાઇમ અવરોધો
  • ઇન્ટરફેસ જરૂરિયાતો: ADC, PWM, કમ્યુનિકેશન પ્રોટોકોલ્સ
  • પર્યાવરણીય પરિસ્થિતિઓ: ઓપરેટિંગ તાપમાન, ભેજ

યાદ રાખવાની ટિપ: “PMPICD Selection” - Performance, Memory, Power, Interface, Cost, Development tools


પ્રશ્ન 1(ક) અથવા [7 ગુણ]
#

ATmega32 ની પિન ગોઠવણી સમજાવો.

જવાબ: ATmega32 એ 40-પિન માઇક્રોકન્ટ્રોલર છે જેમાં ચાર 8-બિટ I/O પોર્ટ્સ અને વિવિધ વિશેષ કાર્યાત્મક પિન્સ છે.

પોર્ટ ગોઠવણી:

પોર્ટપિન્સકાર્યો
Port APA0-PA7ADC ચેનલ્સ, જનરલ I/O
Port BPB0-PB7SPI, PWM, બાહ્ય ઇન્ટરપ્ટ્સ
Port CPC0-PC7TWI, જનરલ I/O
Port DPD0-PD7USART, બાહ્ય ઇન્ટરપ્ટ્સ, PWM

વિશેષ પિન્સ:

  • VCC/GND: પાવર સપ્લાઇ પિન્સ
  • AVCC/AGND: ADC માટે એનાલોગ પાવર સપ્લાઇ
  • XTAL1/XTAL2: ક્રિસ્ટલ ઓસિલેટર કનેક્શન્સ
  • RESET: એક્ટિવ લો રીસેટ ઇનપુટ
  • AREF: ADC રેફરન્સ વોલ્ટેજ

પિન કાર્યો:

  • ડ્યૂઅલ-પર્પઝ પિન્સ: મોટાભાગની પિન્સમાં વૈકલ્પિક કાર્યો છે
  • ઇનપુટ/આઉટપુટ ક્ષમતા: બધી પોર્ટ પિન્સ દ્વિદિશીય છે
  • આંતરિક પુલ-અપ: ઇનપુટ પિન્સ માટે સોફ્ટવેર રૂપરેખાંકિત

યાદ રાખવાની ટિપ: “ABCD Ports” - ADC, Bus interfaces, Communication, Data transfer


પ્રશ્ન 2(અ) [3 ગુણ]
#

ATMEGA32 નું ડેટા મેમરી આર્કિટેક્ચર સમજાવો.

જવાબ: ATmega32 ડેટા મેમરી ત્રણ વિભાગોનો સમાવેશ કરે છે જે એકીકૃત સરનામા સ્થળમાં આયોજિત છે.

મેમરી સંગઠન:

વિભાગસરનામા શ્રેણીકદહેતુ
જનરલ રજિસ્ટર્સ0x00-0x1F32 બાઇટ્સવર્કિંગ રજિસ્ટર્સ R0-R31
I/O રજિસ્ટર્સ0x20-0x5F64 બાઇટ્સકન્ટ્રોલ અને સ્ટેટસ રજિસ્ટર્સ
આંતરિક SRAM0x60-0x45F2048 બાઇટ્સડેટા સ્ટોરેજ અને સ્ટેક

મુખ્ય વિશેષતાઓ:

  • એકીકૃત એડ્રેસિંગ: બધી મેમરી એક સરનામા સ્થળ દ્વારા સુલભ
  • રજિસ્ટર ફાઇલ: અંકગણિત અને તર્ક ઓપરેશન્સ માટે R0-R31
  • સ્ટેક પોઇન્ટર: SRAM માં સ્ટેકની ટોપ તરફ નિર્દેશ કરે છે

યાદ રાખવાની ટિપ: “GIS Memory” - General registers, IO registers, SRAM


પ્રશ્ન 2(બ) [4 ગુણ]
#

પ્રોગ્રામ સ્ટેટસ વર્ડ સમજાવો.

જવાબ: SREG (સ્ટેટસ રજિસ્ટર) માં ફ્લેગ્સ છે જે અંકગણિત અને તર્ક ઓપરેશન્સના પરિણામને પ્રતિબિંબિત કરે છે.

SREG બિટ રૂપરેખાંકન:

બિટફ્લેગવર્ણન
બિટ 7Iગ્લોબલ ઇન્ટરપ્ટ એનેબલ
બિટ 6Tબિટ કોપી સ્ટોરેજ
બિટ 5Hહાફ કેરી ફ્લેગ
બિટ 4Sસાઇન ફ્લેગ
બિટ 3Vઓવરફ્લો ફ્લેગ
બિટ 2Nનેગેટિવ ફ્લેગ
બિટ 1Zઝીરો ફ્લેગ
બિટ 0Cકેરી ફ્લેગ

ફ્લેગ કાર્યો:

  • અંકગણિત ઓપરેશન્સ: C, Z, N, V, H ફ્લેગ્સ આપમેળે અપડેટ થાય છે
  • શરતી બ્રાન્ચિંગ: નિર્ણય લેવા માટે ફ્લેગ્સનો ઉપયોગ
  • ઇન્ટરપ્ટ નિયંત્રણ: I ફ્લેગ ગ્લોબલ ઇન્ટરપ્ટ્સને સક્ષમ/અક્ષમ કરે છે

યાદ રાખવાની ટિપ: “I THSVNZC” - Interrupt, Transfer, Half-carry, Sign, oVerflow, Negative, Zero, Carry


પ્રશ્ન 2(ક) [7 ગુણ]
#

ATMEGA32 ના આર્કિટેક્ચર દોરો અને સમજાવો.

જવાબ:

ATmega32 આર્કિટેક્ચર:

graph TD
    A[Program Memory 32KB] --> B[Instruction Decoder]
    B --> C[ALU]
    C --> D[Register File R0-R31]
    D --> E[I/O Registers]
    E --> F[Data Memory 2KB SRAM]
    G[EEPROM 1KB] --> E
    H[Timers/Counters] --> E
    I[ADC] --> E
    J[USART] --> E
    K[SPI] --> E
    L[TWI] --> E
    M[Interrupt Unit] --> B

આર્કિટેક્ચર ઘટકો:

ઘટકવર્ણન
હાર્વર્ડ આર્કિટેક્ચરઅલગ પ્રોગ્રામ અને ડેટા મેમરી બસ
RISC કોર131 સૂચનાઓ, મોટાભાગે સિંગલ-સાઇકલ એક્ઝિક્યુશન
ALU8-બિટ અંકગણિત અને તર્ક ઓપરેશન્સ
રજિસ્ટર ફાઇલ32 × 8-બિટ વર્કિંગ રજિસ્ટર્સ

મેમરી સિસ્ટમ:

  • પ્રોગ્રામ મેમરી: સૂચનાઓ સંગ્રહ કરવા માટે 32KB Flash
  • ડેટા મેમરી: ચલો અને સ્ટેક માટે 2KB SRAM
  • EEPROM: 1KB નોન-વોલેટાઇલ ડેટા સ્ટોરેજ

પેરિફેરલ વિશેષતાઓ:

  • ત્રણ ટાઇમર/કાઉન્ટર્સ: 8-બિટ અને 16-બિટ ટાઇમર્સ
  • 8-ચેનલ ADC: 10-બિટ રીઝોલ્યુશન
  • કમ્યુનિકેશન ઇન્ટરફેસ: USART, SPI, TWI

યાદ રાખવાની ટિપ: “HRAM Micro” - Harvard architecture, RISC core, ALU, Memory system


પ્રશ્ન 2 અથવા(અ) [3 ગુણ]
#

ATMEGA32 ના પ્રોગ્રામ કાઉન્ટર સમજાવો.

જવાબ: પ્રોગ્રામ કાઉન્ટર (PC) એ 16-બિટ રજિસ્ટર છે જે એક્ઝિક્યુટ થવાની આગલી સૂચનાનું સરનામું ધરાવે છે.

PC લાક્ષણિકતાઓ:

વિશેષતાવર્ણન
કદ16-બિટ (64KB પ્રોગ્રામ મેમરીને સરનામું આપી શકે છે)
રીસેટ વેલ્યુ0x0000 (શરૂઆતથી એક્ઝિક્યુશન શરૂ કરે છે)
વૃદ્ધિસૂચના મેળવ્યા પછી આપમેળે વધે છે
જમ્પ/બ્રાન્ચજમ્પ, બ્રાન્ચ અને કોલ સૂચનાઓ દ્વારા સુધારેલું

PC ઓપરેશન્સ:

  • અનુક્રમિક એક્ઝિક્યુશન: મોટાભાગની સૂચનાઓ માટે PC 1 વધે છે
  • બ્રાન્ચ સૂચનાઓ: PC ને ટાર્ગેટ એડ્રેસ સાથે લોડ કરવામાં આવે છે
  • ઇન્ટરપ્ટ હેન્ડલિંગ: PC સ્ટેકમાં સાચવાય છે, ઇન્ટરપ્ટ વેક્ટર સાથે લોડ કરાય છે

યાદ રાખવાની ટિપ: “SRIB PC” - Sequential, Reset, Increment, Branch


પ્રશ્ન 2 અથવા(બ) [4 ગુણ]
#

AVR માઇક્રોકન્ટ્રોલરમાં ક્લોક અને રીસેટ સર્કિટની ભૂમિકા સમજાવો.

જવાબ:

ક્લોક સિસ્ટમ:

ક્લોક સ્રોતવર્ણન
બાહ્ય ક્રિસ્ટલઉચ્ચ ચોકસાઇ, 1-16 MHz સામાન્ય
આંતરિક RCબિલ્ટ-ઇન 8 MHz ઓસિલેટર
બાહ્ય ક્લોકબાહ્ય ક્લોક સિગ્નલ ઇનપુટ
લો-ફ્રીક્વન્સી ક્રિસ્ટલRTC એપ્લિકેશન્સ માટે 32.768 kHz

રીસેટ સર્કિટ કાર્યો:

  • પાવર-ઓન રીસેટ: પાવર લાગુ થયા પછી આપમેળે રીસેટ
  • બ્રાઉન-આઉટ રીસેટ: સપ્લાઇ વોલ્ટેજ ઘટે છે ત્યારે રીસેટ
  • બાહ્ય રીસેટ: RESET પિન દ્વારા મેન્યુઅલ રીસેટ
  • વોચડોગ રીસેટ: વોચડોગ ટાઇમર ટાઇમઆઉટથી રીસેટ

મુખ્ય વિશેષતાઓ:

  • ક્લોક વિતરણ: સિસ્ટમ ક્લોક CPU અને પેરિફેરલ્સ ચલાવે છે
  • રીસેટ ક્રમ: બધા રજિસ્ટર્સને ડિફોલ્ટ વેલ્યુમાં પ્રારંભ કરે છે
  • ફ્યુઝ બિટ્સ: ક્લોક સ્રોત અને રીસેટ વિકલ્પો રૂપરેખાંકિત કરે છે

યાદ રાખવાની ટિપ: “CEIL Clock” - Crystal, External, Internal, Low-frequency


પ્રશ્ન 2 અથવા(ક) [7 ગુણ]
#

TCCRn અને TIFR ટાઇમર રજિસ્ટર સમજાવો

જવાબ:

TCCRn (ટાઇમર/કાઉન્ટર કન્ટ્રોલ રજિસ્ટર):

રજિસ્ટરકાર્ય
TCCR0Timer0 ઓપરેશન મોડ નિયંત્રિત કરે છે
TCCR1A/BTimer1 (16-બિટ) ઓપરેશન નિયંત્રિત કરે છે
TCCR2Timer2 ઓપરેશન મોડ નિયંત્રિત કરે છે

TCCR બિટ કાર્યો:

  • ક્લોક સિલેક્ટ (CS): ક્લોક સ્રોત અને પ્રીસ્કેલર પસંદ કરે છે
  • વેવફોર્મ જનરેશન (WGM): ટાઇમર મોડ સેટ કરે છે (Normal, CTC, PWM)
  • કમ્પેર આઉટપુટ મોડ (COM): આઉટપુટ પિન વર્તન નિયંત્રિત કરે છે

TIFR (ટાઇમર ઇન્ટરપ્ટ ફ્લેગ રજિસ્ટર):

બિટફ્લેગવર્ણન
TOVટાઇમર ઓવરફ્લોટાઇમર ઓવરફ્લો થાય છે ત્યારે સેટ થાય છે
OCFઆઉટપુટ કમ્પેરકમ્પેર મેચ થાય છે ત્યારે સેટ થાય છે
ICFઇનપુટ કેપ્ચરઇનપુટ કેપ્ચર ઇવેન્ટ થાય છે ત્યારે સેટ થાય છે

ટાઇમર ઓપરેશન્સ:

  • મોડ પસંદગી: Normal, CTC, Fast PWM, Phase Correct PWM
  • ઇન્ટરપ્ટ જનરેશન: સક્ષમ હોય ત્યારે ફ્લેગ્સ ઇન્ટરપ્ટ ટ્રિગર કરે છે
  • આઉટપુટ જનરેશન: મોટર કન્ટ્રોલ, LED ડિમિંગ માટે PWM સિગ્નલ્સ

યાદ રાખવાની ટિપ: “TCCR WGM” - Timer Control, Clock, Register, Waveform Generation Mode


પ્રશ્ન 3(અ) [3 ગુણ]
#

C માં પ્રોગ્રામિંગ AVR માટે વિવિધ ડેટા ટાઇપ અલગ પાડો

જવાબ:

AVR C ડેટા ટાઇપ્સ:

ડેટા ટાઇપકદશ્રેણીઉપયોગ
char8-બિટ-128 to 127અક્ષરો, નાના પૂર્ણાંકો
unsigned char8-બિટ0 to 255પોર્ટ મૂલ્યો, ફ્લેગ્સ
int16-બિટ-32768 to 32767સામાન્ય પૂર્ણાંકો
unsigned int16-બિટ0 to 65535કાઉન્ટર્સ, સરનામાઓ
long32-બિટ-2³¹ to 2³¹-1મોટી ગણતરીઓ
float32-બિટ±3.4×10³⁸દશાંશ ગણતરીઓ

વિશેષ વિચારણાઓ:

  • મેમરી કાર્યક્ષમ: સૌથી નાની યોગ્ય ડેટા ટાઇપનો ઉપયોગ કરો
  • પોર્ટ ઓપરેશન્સ: 8-બિટ પોર્ટ્સ માટે unsigned char
  • ટાઇમિંગ ગણતરીઓ: ટાઇમર મૂલ્યો માટે unsigned int

યાદ રાખવાની ટિપ: “CUIL Float” - Char, Unsigned, Int, Long, Float


પ્રશ્ન 3(બ) [4 ગુણ]
#

પોર્ટ C ના તમામ બિટ્સને 200 વખત ટૉગલ કરવા માટે C પ્રોગ્રામ લખો.

જવાબ:

#include <avr/io.h>
#include <util/delay.h>

int main() {
    DDRC = 0xFF;        // પોર્ટ C ને આઉટપુટ તરીકે સેટ કરો
    unsigned int count = 0;
    
    while(count < 200) {
        PORTC = 0xFF;   // બધા બિટ્સ high સેટ કરો
        _delay_ms(100); // વિલંબ
        PORTC = 0x00;   // બધા બિટ્સ low સેટ કરો
        _delay_ms(100); // વિલંબ
        count++;        // કાઉન્ટર વધારો
    }
    return 0;
}

પ્રોગ્રામ સમજૂતી:

  • DDRC = 0xFF: પોર્ટ C ના બધા પિન્સને આઉટપુટ તરીકે રૂપરેખાંકિત કરે છે
  • ટૉગલ ઓપરેશન: 0xFF અને 0x00 વચ્ચે ફેરબદલી કરે છે
  • કાઉન્ટર: ટૉગલ સાઇકલ્સની સંખ્યા ટ્રેક કરે છે
  • વિલંબ: ટૉગલ ઓપરેશન માટે દૃશ્યમાન ટાઇમિંગ પ્રદાન કરે છે

યાદ રાખવાની ટિપ: “DTC Loop” - DDR setup, Toggle bits, Count iterations, Loop control


પ્રશ્ન 3(ક) [7 ગુણ]
#

અ) LED PORTB ના પિન સાથે જોડાયેલ છે. LED પર 0 થી FFh સુધીની ગણતરી બતાવવા માટે AVR પ્રોગ્રામ્સ લખો બ) પોર્ટ C માંથી ડેટાનો બાઇટ મેળવવા માટે AVR C પ્રોગ્રામ લખો. જો તે 100 કરતા ઓછો હોય તો તેને પોર્ટ B પર મોકલો; નહીંતર, તેને પોર્ટ D પર મોકલો.

જવાબ:

અ) બાઇનરી કાઉન્ટર ડિસ્પ્લે:

#include <avr/io.h>
#include <util/delay.h>

int main() {
    DDRB = 0xFF;           // પોર્ટ B ને આઉટપુટ તરીકે
    unsigned char count = 0;
    
    while(1) {
        PORTB = count;     // LED પર કાઉન્ટ દર્શાવો
        _delay_ms(500);    // દૃશ્યતા માટે વિલંબ
        count++;           // કાઉન્ટર વધારો
        if(count > 0xFF)   // 255 પછી રીસેટ કરો
            count = 0;
    }
    return 0;
}

બ) શરતી ડેટા ટ્રાન્સફર:

#include <avr/io.h>

int main() {
    DDRC = 0x00;    // પોર્ટ C ને ઇનપુટ તરીકે
    DDRB = 0xFF;    // પોર્ટ B ને આઉટપુટ તરીકે
    DDRD = 0xFF;    // પોર્ટ D ને આઉટપુટ તરીકે
    
    while(1) {
        unsigned char data = PINC;  // પોર્ટ C માંથી વાંચો
        
        if(data < 100) {
            PORTB = data;           // પોર્ટ B પર મોકલો
            PORTD = 0x00;          // પોર્ટ D સાફ કરો
        } else {
            PORTD = data;           // પોર્ટ D પર મોકલો
            PORTB = 0x00;          // પોર્ટ B સાફ કરો
        }
    }
    return 0;
}

મુખ્ય પ્રોગ્રામિંગ વિભાવનાઓ:

  • પોર્ટ દિશા: DDR રજિસ્ટર્સ ઇનપુટ/આઉટપુટ રૂપરેખાંકિત કરે છે
  • ડેટા વાંચવું: PIN રજિસ્ટર્સ ઇનપુટ મૂલ્યો વાંચે છે
  • શરતી તર્ક: નિર્ણય લેવા માટે if-else નિવેદનો

યાદ રાખવાની ટિપ: “RCC Data” - Read input, Compare value, Conditional output


પ્રશ્ન 3 અથવા(અ) [3 ગુણ]
#

-3 થી +3 પોર્ટ B ની કિંમતો મોકલવા માટે AVR C પ્રોગ્રામ લખો

જવાબ:

#include <avr/io.h>
#include <util/delay.h>

int main() {
    DDRB = 0xFF;              // પોર્ટ B ને આઉટપુટ તરીકે
    signed char values[] = {-3, -2, -1, 0, 1, 2, 3};
    unsigned char i = 0;
    
    while(1) {
        PORTB = values[i];    // પોર્ટ B પર મૂલ્ય મોકલો
        _delay_ms(1000);      // 1 સેકન્ડ વિલંબ
        i++;                  // આગલું મૂલ્ય
        if(i > 6) i = 0;      // ઇન્ડેક્સ રીસેટ કરો
    }
    return 0;
}

પ્રોગ્રામ વિશેષતાઓ:

  • સાઇન ડેટા: નકારાત્મક મૂલ્યો માટે signed char નો ઉપયોગ
  • અરે સ્ટોરેજ: સરળ પહોંચ માટે અરેમાં મૂલ્યો સંગ્રહ
  • ચક્રીય ઓપરેશન: તમામ મૂલ્યો દ્વારા સતત ચક્ર

યાદ રાખવાની ટિપ: “SAC Values” - Signed char, Array storage, Cyclic operation


પ્રશ્ન 3 અથવા(બ) [4 ગુણ]
#

ASCII અક્ષરો 0,1,2,3,4,5,A,B,C અને D માટે હેક્સ મૂલ્યો પોર્ટ B પર મોકલવા માટે AVR C પ્રોગ્રામ લખો.

જવાબ:

#include <avr/io.h>
#include <util/delay.h>

int main() {
    DDRB = 0xFF;    // પોર્ટ B ને આઉટપુટ તરીકે
    
    // ASCII હેક્સ મૂલ્યો અરે
    unsigned char ascii_values[] = {
        0x30,  // '0'
        0x31,  // '1' 
        0x32,  // '2'
        0x33,  // '3'
        0x34,  // '4'
        0x35,  // '5'
        0x41,  // 'A'
        0x42,  // 'B'
        0x43,  // 'C'
        0x44   // 'D'
    };
    
    unsigned char i = 0;
    
    while(1) {
        PORTB = ascii_values[i];  // ASCII મૂલ્ય મોકલો
        _delay_ms(500);           // વિલંબ
        i++;                      // આગલો અક્ષર
        if(i > 9) i = 0;          // ઇન્ડેક્સ રીસેટ કરો
    }
    return 0;
}

ASCII મૂલ્યો ટેબલ:

અક્ષરહેક્સ મૂલ્યબાઇનરી
‘0’0x3000110000
‘1’0x3100110001
‘A’0x4101000001
‘B’0x4201000010

યાદ રાખવાની ટિપ: “HAC ASCII” - Hex values, Array storage, Cyclic transmission


પ્રશ્ન 3 અથવા(ક) [7 ગુણ]
#

ડોર સેન્સર પોર્ટ B ના બિટ 1 સાથે જોડાયેલ છે, અને LED પોર્ટ C ના બિટ 7 સાથે જોડાયેલ છે. ડોર સેન્સર પર દેખરેખ રાખવા માટે AVR C પ્રોગ્રામ લખો અને જ્યારે તે ખુલે છે (PIN HIGH છે), LED ચાલુ કરો. ફ્લો ચાર્ટ પણ દોરો.

જવાબ:

C પ્રોગ્રામ:

#include <avr/io.h>

int main() {
    DDRB = 0xFD;    // પોર્ટ B બિટ 1 ઇનપુટ તરીકે (0), અન્ય આઉટપુટ (1)
    DDRC = 0xFF;    // પોર્ટ C આઉટપુટ તરીકે
    PORTB = 0x02;   // બિટ 1 માટે પુલ-અપ સક્ષમ કરો
    
    while(1) {
        if(PINB & 0x02) {      // તપાસો કે ડોર સેન્સર HIGH છે કે
            PORTC |= 0x80;     // LED ચાલુ કરો (બિટ 7)
        } else {
            PORTC &= 0x7F;     // LED બંધ કરો (બિટ 7)
        }
    }
    return 0;
}

ફ્લો ચાર્ટ:

flowchart TD
    A[Start] --> B[Initialize Ports]
    B --> C[Configure Port B bit 1 as input]
    C --> D[Configure Port C bit 7 as output]
    D --> E{Read Door Sensor}
    E -->|HIGH| F[Turn ON LED]
    E -->|LOW| G[Turn OFF LED]
    F --> H[Continue Monitoring]
    G --> H
    H --> E

બિટ ઓપરેશન્સ:

  • ઇનપુટ વાંચવું: PINB & 0x02 બિટ 1 તપાસે છે
  • LED નિયંત્રણ: PORTC |= 0x80 બિટ 7 સેટ કરે છે
  • LED બંધ: PORTC &= 0x7F બિટ 7 સાફ કરે છે

યાદ રાખવાની ટિપ: “BIC Door” - Bit manipulation, Input monitoring, Conditional LED control


પ્રશ્ન 4(અ) [3 ગુણ]
#

ADC માટેનું ADMUX રજિસ્ટર સમજાવો

જવાબ:

ADMUX (ADC મલ્ટિપ્લેક્સર સિલેક્શન રજિસ્ટર):

બિટનામવર્ણન
બિટ 7-6REFS1:0રેફરન્સ સિલેક્શન
બિટ 5ADLARADC લેફ્ટ એડજસ્ટ રિઝલ્ટ
બિટ 4-0MUX4:0એનાલોગ ચેનલ સિલેક્શન

રેફરન્સ સિલેક્શન (REFS1:0):

  • 00: AREF, આંતરિક Vref બંધ
  • 01: AREF પિન પર બાહ્ય કેપેસિટર સાથે AVCC
  • 10: આરક્ષિત
  • 11: આંતરિક 2.56V રેફરન્સ

ચેનલ સિલેક્શન (MUX4:0):

  • 00000-00111: ADC0-ADC7 (સિંગલ-એન્ડેડ ઇનપુટ્સ)
  • અન્ય કમ્બિનેશન્સ: ગેઇન સાથે ડિફરન્શિયલ ઇનપુટ્સ

મુખ્ય કાર્યો:

  • વોલ્ટેજ રેફરન્સ: ADC માપ શ્રેણી નક્કી કરે છે
  • ચેનલ મલ્ટિપ્લેક્સિંગ: કયા એનાલોગ ઇનપુટને કન્વર્ટ કરવું તે પસંદ કરે છે
  • રિઝલ્ટ એલાઇનમેન્ટ: ડાબું અથવા જમણું જસ્ટિફાઇડ ADC પરિણામ

યાદ રાખવાની ટિપ: “RAM ADMUX” - Reference, Alignment, Multiplexer


પ્રશ્ન 4(બ) [4 ગુણ]
#

વિવિધ એલસીડી પિન સમજાવો.

જવાબ:

16x2 LCD પિન રૂપરેખાંકન:

પિનસિમ્બોલકાર્ય
1VSSગ્રાઉન્ડ (0V)
2VDDપાવર સપ્લાઇ (+5V)
3V0કોન્ટ્રાસ્ટ એડજસ્ટમેન્ટ
4RSરજિસ્ટર સિલેક્ટ (ડેટા/કમાન્ડ)
5R/Wરીડ/રાઇટ સિલેક્ટ
6Eએનેબલ સિગ્નલ
7-14D0-D7ડેટા બસ (8-બિટ)
15Aબેકલાઇટ એનોડ (+)
16Kબેકલાઇટ કેથોડ (-)

કન્ટ્રોલ પિન કાર્યો:

  • RS = 0: કમાન્ડ રજિસ્ટર પસંદ
  • RS = 1: ડેટા રજિસ્ટર પસંદ
  • R/W = 0: રાઇટ ઓપરેશન
  • R/W = 1: રીડ ઓપરેશન
  • E: એનેબલ પલ્સ ઓપરેશન ટ્રિગર કરે છે

કનેક્શન મોડ્સ:

  • 8-બિટ મોડ: બધા ડેટા પિન્સ D0-D7 જોડાયેલા
  • 4-બિટ મોડ: માત્ર D4-D7 ઉપયોગ (માઇક્રોકન્ટ્રોલર પિન્સ બચાવે છે)

યાદ રાખવાની ટિપ: “VCR EDB LCD” - Vpower, Contrast, Register select, Enable, Data Bus


પ્રશ્ન 4(ક) [7 ગુણ]
#

20µs વિલંબ સાથે PORTB ના તમામ બિટ્સને સતત ટૉગલ કરવા માટે પ્રોગ્રામ લખો. વિલંબ જનરેટ કરવા માટે Timer0, નોર્મલ મોડ અને કોઈ Prescaler નો ઉપયોગ કરો

જવાબ:

#include <avr/io.h>

void delay_20us() {
    TCNT0 = 0;          // ટાઇમર કાઉન્ટર સાફ કરો
    TCCR0 = 0x01;       // કોઈ prescaler નહીં, નોર્મલ મોડ
    while(TCNT0 < 160); // 20µs માટે રાહ જુઓ (8MHz/1 * 20µs = 160)
    TCCR0 = 0;          // ટાઇમર બંધ કરો
}

int main() {
    DDRB = 0xFF;        // પોર્ટ B આઉટપુટ તરીકે
    
    while(1) {
        PORTB = 0xFF;   // બધા બિટ્સ high સેટ કરો
        delay_20us();   // 20µs વિલંબ
        PORTB = 0x00;   // બધા બિટ્સ low સેટ કરો
        delay_20us();   // 20µs વિલંબ
    }
    return 0;
}

ટાઇમર ગણતરી:

  • ક્લોક ફ્રીક્વન્સી: 8 MHz (ધારણા)
  • ટાઇમર રીઝોલ્યુશન: 1/8MHz = 0.125µs પ્રતિ કાઉન્ટ
  • જરૂરી કાઉન્ટ્સ: 20µs / 0.125µs = 160 કાઉન્ટ્સ

Timer0 રૂપરેખાંકન:

સેટિંગમૂલ્યવર્ણન
મોડનોર્મલ0 થી 255 સુધી ગણે છે
Prescaler1કોઈ પ્રીસ્કેલિંગ નહીં
ક્લોક સ્રોતસિસ્ટમ ક્લોક8 MHz

પ્રોગ્રામ ફ્લો:

  • પ્રારંભ કરો: પોર્ટ B ને આઉટપુટ તરીકે સેટ કરો
  • ટૉગલ high: PORTB = 0xFF, 20µs રાહ જુઓ
  • ટૉગલ low: PORTB = 0x00, 20µs રાહ જુઓ
  • પુનરાવર્તન: સતત ઓપરેશન

યાદ રાખવાની ટિપ: “TNP Timer” - Timer0, Normal mode, Prescaler none


પ્રશ્ન 4 અથવા(અ) [3 ગુણ]
#

ટૂંકી નોંધ બે વાયર ઇન્ટરફેસ (TWI)

જવાબ:

TWI (બે વાયર ઇન્ટરફેસ) - I2C પ્રોટોકોલ:

મુખ્ય વિશેષતાઓ:

વિશેષતાવર્ણન
બે વાયરSDA (ડેટા) અને SCL (ક્લોક)
મલ્ટી-માસ્ટરબહુવિધ માસ્ટર્સ બસ નિયંત્રિત કરી શકે છે
મલ્ટી-સ્લેવ127 સુધી સ્લેવ ડિવાઇસ
સરનામું-આધારિત7-બિટ અથવા 10-બિટ ડિવાઇસ સરનામું
દ્વિદિશીયબંને દિશામાં ડેટા વહે છે

બસ લાક્ષણિકતાઓ:

  • ઓપન-ડ્રેઇન: પુલ-અપ રેઝિસ્ટર્સ આવશ્યક (4.7kΩ સામાન્ય)
  • સિન્ક્રોનસ: માસ્ટર દ્વારા ક્લોક પ્રદાન કરાય છે
  • સ્ટાર્ટ/સ્ટોપ કન્ડિશન્સ: કમ્યુનિકેશન માટે વિશેષ ક્રમ

સામાન્ય એપ્લિકેશન્સ:

  • EEPROMs: નોન-વોલેટાઇલ મેમરી સ્ટોરેજ
  • RTC મોડ્યુલ્સ: રીઅલ-ટાઇમ ક્લોક ડિવાઇસ
  • સેન્સર્સ: તાપમાન, દબાણ, એક્સેલેરોમીટર
  • ડિસ્પ્લે કન્ટ્રોલર્સ: OLED, LCD કન્ટ્રોલર્સ

યાદ રાખવાની ટિપ: “SDA SCL TWI” - Serial Data, Serial CLock, Two Wire Interface


પ્રશ્ન 4 અથવા(બ) [4 ગુણ]
#

ADC માટેનું ADCSRA રજિસ્ટર સમજાવો

જવાબ:

ADCSRA (ADC કન્ટ્રોલ અને સ્ટેટસ રજિસ્ટર A):

બિટનામકાર્ય
બિટ 7ADENADC એનેબલ
બિટ 6ADSCADC સ્ટાર્ટ કન્વર્ઝન
બિટ 5ADATEADC ઓટો ટ્રિગર એનેબલ
બિટ 4ADIFADC ઇન્ટરપ્ટ ફ્લેગ
બિટ 3ADIEADC ઇન્ટરપ્ટ એનેબલ
બિટ 2-0ADPS2:0ADC પ્રીસ્કેલર સિલેક્ટ

પ્રીસ્કેલર સેટિંગ્સ (ADPS2:0):

બાઇનરીવિભાજન પરિબળADC ક્લોક (8MHz)
00024 MHz
00124 MHz
01042 MHz
01181 MHz
10016500 kHz
10132250 kHz
11064125 kHz
11112862.5 kHz

કન્ટ્રોલ કાર્યો:

  • ADEN: ADC ઓપરેશન સક્ષમ કરવા માટે સેટ કરવું આવશ્યક
  • ADSC: કન્વર્ઝન શરૂ કરવા માટે સેટ કરો, પૂર્ણ થાય ત્યારે સાફ થાય છે
  • ADIF: કન્વર્ઝન પૂર્ણ થાય ત્યારે સેટ થાય છે
  • Prescaler: શ્રેષ્ઠ ચોકસાઇ માટે ADC ક્લોક 50-200 kHz હોવી જોઈએ

યાદ રાખવાની ટિપ: “EASCID ADC” - Enable, Auto-trigger, Start, Conversion, Interrupt, Divider


પ્રશ્ન 4 અથવા(ક) [7 ગુણ]
#

PORTC.3 પિન પર 16 Khz ફ્રીક્વન્સીની સ્ક્વેર વેવ જનરેટ કરવા માટે પ્રોગ્રામ લખો. ક્રિસ્ટલ ફ્રીક્વન્સી 8 Mhz ધારો

જવાબ:

#include <avr/io.h>
#include <avr/interrupt.h>

int main() {
    // PC3 ને આઉટપુટ તરીકે રૂપરેખાંકિત કરો
    DDRC |= (1 << PC3);
    
    // Timer1 CTC મોડ રૂપરેખાંકન
    TCCR1A = 0x00;                    // નોર્મલ પોર્ટ ઓપરેશન
    TCCR1B = (1 << WGM12) | (1 << CS10); // CTC મોડ, કોઈ prescaler નહીં
    
    // 16 kHz માટે OCR1A મૂલ્ય ગણતરી કરો
    // Period = 1/16000 = 62.5µs
    // Half period = 31.25µs  
    // OCR1A = (8MHz * 31.25µs) - 1 = 249
    OCR1A = 249;
    
    // Timer1 Compare A ઇન્ટરપ્ટ સક્ષમ કરો
    TIMSK |= (1 << OCIE1A);
    
    // ગ્લોબલ ઇન્ટરપ્ટ્સ સક્ષમ કરો
    sei();
    
    while(1) {
        // મુખ્ય લુપ - ઇન્ટરપ્ટ દ્વારા સ્ક્વેર વેવ જનરેટ
    }
    return 0;
}

// Timer1 Compare A ઇન્ટરપ્ટ સર્વિસ રૂટિન
ISR(TIMER1_COMPA_vect) {
    PORTC ^= (1 << PC3);    // PC3 ટૉગલ કરો
}

ફ્રીક્વન્સી ગણતરી:

પેરામીટરમૂલ્યફોર્મ્યુલા
ટાર્ગેટ ફ્રીક્વન્સી16 kHzઆપેલ
Period62.5 µs1/16000
Half period31.25 µsPeriod/2
ટાઇમર કાઉન્ટ્સ2508MHz × 31.25µs
OCR1A મૂલ્ય249કાઉન્ટ્સ - 1

ટાઇમર રૂપરેખાંકન:

  • મોડ: CTC (Clear Timer on Compare)
  • Prescaler: 1 (કોઈ પ્રીસ્કેલિંગ નહીં)
  • ઇન્ટરપ્ટ: કમ્પેર મેચ આઉટપુટ પિન ટૉગલ કરે છે

યાદ રાખવાની ટિપ: “CTC Square” - CTC mode, Timer interrupt, Compare match


પ્રશ્ન 5(અ) [3 ગુણ]
#

Polling અને Interrupt વચ્ચેનો તફાવત

જવાબ:

Polling વિ Interrupt સરખામણી:

પાસુંPollingInterrupt
CPU ઉપયોગસતત સ્ટેટસ તપાસે છેઇવેન્ટ થાય ત્યાં સુધી CPU મુક્ત
પ્રતિસાદ સમયવેરિએબલ, પોલિંગ ફ્રીક્વન્સી પર આધાર રાખે છેઝડપી, તાત્કાલિક પ્રતિસાદ
પાવર વપરાશસતત તપાસવાને કારણે વધારેઓછું, CPU સ્લીપ કરી શકે છે
પ્રોગ્રામિંગસરળ, અનુક્રમિક કોડજટિલ, ISR આવશ્યક
રીઅલ-ટાઇમનિર્ણાયક ટાઇમિંગ માટે યોગ્ય નથીરીઅલ-ટાઇમ સિસ્ટમ્સ માટે ઉત્તમ

મુખ્ય તફાવતો:

  • કાર્યક્ષમતા: ઇન્ટરપ્ટ્સ વધુ CPU કાર્યક્ષમ છે
  • ટાઇમિંગ: ઇન્ટરપ્ટ્સ નિર્ધારિત પ્રતિસાદ પ્રદાન કરે છે
  • જટિલતા: પોલિંગ અમલીકરણ અને ડિબગ કરવામાં સરળ છે

યાદ રાખવાની ટિપ: “PIE Method” - Polling inefficient, Interrupt efficient, Event-driven


પ્રશ્ન 5(બ) [4 ગુણ]
#

AVR ATmega32 સાથે LM35 ઇન્ટરફેસ સમજાવો.

જવાબ:

LM35 તાપમાન સેન્સર ઇન્ટરફેસ:

+5VLM35ToADCPin(PA0)

LM35 લાક્ષણિકતાઓ:

પેરામીટરમૂલ્યવર્ણન
આઉટપુટ10mV/°Cલિનિયર તાપમાન ગુણાંક
શ્રેણી0°C to 100°Cઓપરેટિંગ તાપમાન શ્રેણી
સપ્લાઇ4V to 30Vપાવર સપ્લાઇ શ્રેણી
ચોકસાઇ±0.5°Cતાપમાન ચોકસાઇ

ઇન્ટરફેસ કોડ:

#include <avr/io.h>

void ADC_init() {
    ADMUX = 0x40;   // AVCC રેફરન્સ, ADC0 ચેનલ
    ADCSRA = 0x87;  // ADC સક્ષમ કરો, prescaler 128
}

unsigned int read_temperature() {
    ADCSRA |= (1 << ADSC);      // કન્વર્ઝન શરૂ કરો
    while(ADCSRA & (1 << ADSC)); // પૂર્ણતા માટે રાહ જુઓ
    
    // ADC મૂલ્યને તાપમાનમાં કન્વર્ટ કરો
    // Temperature = (ADC * 5000) / (1024 * 10)
    unsigned int temp = (ADC * 5000) / 10240;
    return temp;
}

ગણતરી:

  • ADC રીઝોલ્યુશન: 10-બિટ (0-1023)
  • રેફરન્સ વોલ્ટેજ: 5V
  • LM35 સ્કેલ: 10mV/°C
  • ફોર્મ્યુલા: Temperature = (ADC_Value × 5000mV) / (1024 × 10mV/°C)

યાદ રાખવાની ટિપ: “LAC Temperature” - LM35 sensor, ADC conversion, Calculation formula


પ્રશ્ન 5(ક) [7 ગુણ]
#

AVR ATmega32 સાથે DC મોટરને ઇન્ટરફેસ કરવા માટે પ્રોગ્રામ લખો.

જવાબ:

DC મોટર ઇન્ટરફેસ સર્કિટ:

ATmePPPgDDDa56432+5VLIIE2NNN91213DMotorDOOr12iGvNeDrDCMotor

મોટર કન્ટ્રોલ પ્રોગ્રામ:

#include <avr/io.h>
#include <util/delay.h>

void motor_init() {
    DDRD |= (1 << PD4) | (1 << PD5) | (1 << PD6); // આઉટપુટ તરીકે સેટ કરો
}

void motor_forward() {
    PORTD |= (1 << PD4);   // મોટર સક્ષમ કરો
    PORTD |= (1 << PD5);   // IN1 = 1
    PORTD &= ~(1 << PD6);  // IN2 = 0
}

void motor_reverse() {
    PORTD |= (1 << PD4);   // મોટર સક્ષમ કરો
    PORTD &= ~(1 << PD5);  // IN1 = 0
    PORTD |= (1 << PD6);   // IN2 = 1
}

void motor_stop() {
    PORTD &= ~(1 << PD4);  // મોટર અક્ષમ કરો
}

int main() {
    motor_init();
    
    while(1) {
        motor_forward();    // 2 સેકન્ડ માટે આગળ
        _delay_ms(2000);
        
        motor_stop();       // 1 સેકન્ડ માટે બંધ
        _delay_ms(1000);
        
        motor_reverse();    // 2 સેકન્ડ માટે પાછળ
        _delay_ms(2000);
        
        motor_stop();       // 1 સેકન્ડ માટે બંધ
        _delay_ms(1000);
    }
    return 0;
}

L293D Truth Table:

ENIN1IN2મોટર ક્રિયા
0XXબંધ
100બંધ
101રિવર્સ
110ફોરવર્ડ
111બંધ

મુખ્ય ઘટકો:

  • L293D: ડ્યુઅલ H-બ્રિજ મોટર ડ્રાઇવર IC
  • એનેબલ પિન: મોટર પાવર નિયંત્રિત કરે છે
  • દિશા પિન્સ: IN1, IN2 રોટેશન દિશા નિયંત્રિત કરે છે
  • પ્રોટેક્શન: બેક EMF પ્રોટેક્શન માટે બિલ્ટ-ઇન ડાયોડ

યાદ રાખવાની ટિપ: “LED Motor” - L293D driver, Enable control, Direction pins


પ્રશ્ન 5 અથવા(અ) [3 ગુણ]
#

GSM આધારિત સિક્યુરિટી સિસ્ટમના બેઝિક બ્લોક ડાયાગ્રામ સમજાવો.

જવાબ:

GSM સિક્યુરિટી સિસ્ટમ બ્લોક ડાયાગ્રામ:

graph TD
    A[Sensors] --> B[ATmega32 Microcontroller]
    B --> C[GSM Module]
    C --> D[Mobile Network]
    D --> E[User Mobile Phone]
    B --> F[Alarm/Buzzer]
    B --> G[LCD Display]
    H[Power Supply] --> B
    H --> C

સિસ્ટમ ઘટકો:

ઘટકકાર્ય
સેન્સર્સPIR, દરવાજા/બારી સેન્સર્સ, ધુમાડો ડિટેક્ટર
માઇક્રોકન્ટ્રોલરસેન્સર ડેટા પ્રોસેસ કરે છે, સિસ્ટમ નિયંત્રિત કરે છે
GSM મોડ્યુલSMS અલર્ટ મોકલે છે, કોલ કરે છે
ડિસ્પ્લેસિસ્ટમ સ્ટેટસ બતાવે છે
અલાર્મસ્થાનિક ઓડિયો/વિઝ્યુઅલ અલર્ટ

કાર્યકારી સિદ્ધાંત:

  • સેન્સર મોનિટરિંગ: સુરક્ષા ઝોનની સતત દેખરેખ
  • ઇવેન્ટ ડિટેક્શન: અનધિકૃત પ્રવેશ શોધાયા પર ટ્રિગર
  • અલર્ટ જનરેશન: પૂર્વનિર્ધારિત નંબરો પર SMS મોકલવામાં આવે છે
  • સ્થાનિક અલાર્મ: તાત્કાલિક ઓડિયો/વિઝ્યુઅલ ચેતવણી

મુખ્ય વિશેષતાઓ:

  • રિમોટ મોનિટરિંગ: SMS દ્વારા રીઅલ-ટાઇમ અલર્ટ
  • બહુવિધ સેન્સર્સ: વિવિધ ઘૂસણખોરી શોધ પદ્ધતિઓ
  • બેકઅપ પાવર: પાવર નિષ્ફળતા માટે બેટરી બેકઅપ

યાદ રાખવાની ટિપ: “SGMA Security” - Sensors, GSM module, Microcontroller, Alerts


પ્રશ્ન 5 અથવા(બ) [4 ગુણ]
#

AVR ATmega32 સાથે રિલે ઇન્ટરફેસ સમજાવો.

જવાબ:

રિલે ઇન્ટરફેસ સર્કિટ:

ATmegPPaBB3012GNUDLIINNN21280OO312+12VReCNlOOaMyLALoCoaadd

રિલે ઇન્ટરફેસ કોડ:

#include <avr/io.h>
#include <util/delay.h>

void relay_init() {
    DDRB |= (1 << PB0) | (1 << PB1); // આઉટપુટ પિન્સ તરીકે સેટ કરો
}

void relay1_on() {
    PORTB |= (1 << PB0);  // રિલે 1 સક્રિય કરો
}

void relay1_off() {
    PORTB &= ~(1 << PB0); // રિલે 1 નિષ્ક્રિય કરો
}

void relay2_on() {
    PORTB |= (1 << PB1);  // રિલે 2 સક્રિય કરો
}

void relay2_off() {
    PORTB &= ~(1 << PB1); // રિલે 2 નિષ્ક્રિય કરો
}

int main() {
    relay_init();
    
    while(1) {
        relay1_on();        // રિલે 1 ચાલુ કરો
        _delay_ms(2000);
        relay1_off();       // રિલે 1 બંધ કરો
        
        relay2_on();        // રિલે 2 ચાલુ કરો
        _delay_ms(2000);
        relay2_off();       // રિલે 2 બંધ કરો
        
        _delay_ms(1000);
    }
    return 0;
}

ULN2803 વિશેષતાઓ:

વિશેષતાવર્ણન
8 ચેનલ્સઆઠ ડાર્લિંગ્ટન પેર ડ્રાઇવર્સ
હાઇ કરન્ટચેનલ દીઠ 500mA સુધી
પ્રોટેક્શનબિલ્ટ-ઇન ફ્લાયબેક ડાયોડ
ઇનપુટ વોલ્ટેજ5V TTL સુસંગત
આઉટપુટ વોલ્ટેજ50V સુધી

એપ્લિકેશન્સ:

  • હોમ ઓટોમેશન: લાઇટ, ફેન કન્ટ્રોલ
  • ઇન્ડસ્ટ્રિયલ કન્ટ્રોલ: મોટર, વાલ્વ ઓપરેશન
  • સિક્યુરિટી સિસ્ટમ્સ: દરવાજા લોક, અલાર્મ

યાદ રાખવાની ટિપ: “ULN Relay” - ULN2803 driver, Load control, Non-contact switching


પ્રશ્ન 5 અથવા(ક) [7 ગુણ]
#

ઓટોમેટિક જ્યુસ વેન્ડિંગ મશીન દોરો અને સમજાવો

જવાબ:

ઓટોમેટિક જ્યુસ વેન્ડિંગ મશીન બ્લોક ડાયાગ્રામ:

graph TD
    A[Coin Sensor] --> B[ATmega32 Controller]
    C[Keypad] --> B
    D[LCD Display] --> B
    B --> E[Pump Motors]
    B --> F[Solenoid Valves]
    B --> G[Coin Return Mechanism]
    H[Level Sensors] --> B
    I[Power Supply] --> B
    J[Juice Containers] --> E
    E --> K[Dispensing Unit]

સિસ્ટમ ઘટકો:

ઘટકકાર્ય
કોઇન સેન્સરદાખલ કરેલા સિક્કાઓ શોધે છે અને માન્ય કરે છે
કીપેડયુઝર સિલેક્શન ઇન્ટરફેસ (4x4 મેટ્રિક્સ)
LCD ડિસ્પ્લેમેનુ, કિંમત, સ્ટેટસ મેસેજ બતાવે છે
પંપ મોટર્સપસંદ કરેલ જ્યુસ વિતરિત કરે છે
સોલેનોઇડ વાલ્વજ્યુસ ફ્લો કન્ટ્રોલ કરે છે
લેવલ સેન્સર્સજ્યુસ કન્ટેનર લેવલ મોનિટર કરે છે
કોઇન રિટર્નવધારાના પૈસા પરત કરે છે

સિસ્ટમ ઓપરેશન:

  1. ઇનિશિયલાઇઝેશન: સ્વાગત સંદેશ અને જ્યુસ મેનુ દર્શાવો
  2. કોઇન ઇનપુટ: યુઝર સિક્કાઓ દાખલ કરે છે, સિસ્ટમ રકમ માન્ય કરે છે
  3. સિલેક્શન: યુઝર જ્યુસ પ્રકાર પસંદ કરવા માટે કીપેડ દબાવે છે
  4. વેલિડેશન: પૂરતા પૈસા અને જ્યુસ ઉપલબ્ધ છે કે કેમ તપાસો
  5. ડિસ્પેન્સિંગ: પસંદ કરેલ જ્યુસ માટે પંપ અને વાલ્વ સક્રિય કરો
  6. પૂર્ણતા: જો કોઈ બાકી રકમ હોય તો પરત કરો, આભાર સંદેશ દર્શાવો

કન્ટ્રોલ લોજિક:

// વેન્ડિંગ મશીન ઓપરેશન માટે સ્યુડો કોડ
void vending_machine() {
    display_menu();
    
    while(1) {
        if(coin_inserted()) {
            total_amount += validate_coin();
            update_display();
        }
        
        if(selection_made()) {
            juice_type = get_selection();
            if(total_amount >= juice_price[juice_type]) {
                if(juice_available[juice_type]) {
                    dispense_juice(juice_type);
                    return_change();
                    reset_system();
                } else {
                    display_error("Stock Nathi");
                }
            } else {
                display_error("Nakafi Rakam");
            }
        }
    }
}

મુખ્ય વિશેષતાઓ:

  • બહુવિધ જ્યુસ પ્રકારો: 4-6 વિવિધ ફ્લેવર્સ
  • ઓટોમેટિક ડિસ્પેન્સિંગ: ચોક્કસ વોલ્યુમ કન્ટ્રોલ
  • ચેન્જ રિટર્ન: ચોક્કસ બાકી રકમ ગણે છે અને પરત કરે છે
  • ઇન્વેન્ટરી ટ્રેકિંગ: જ્યુસ લેવલ મોનિટર કરે છે
  • એરર હેન્ડલિંગ: વિવિધ ફોલ્ટ કન્ડિશન્સ હેન્ડલ કરે છે

સેફ્ટી વિશેષતાઓ:

  • ઓવર-ડિસ્પેન્સિંગ પ્રોટેક્શન: ટાઇમર-આધારિત પંપ કન્ટ્રોલ
  • કોઇન વેલિડેશન: નકલી સિક્કા સ્વીકારવાનું અટકાવે છે
  • લેવલ મોનિટરિંગ: પંપના ડ્રાય રનિંગને અટકાવે છે
  • ઇમર્જન્સી સ્ટોપ: મેન્યુઅલ ઓવરરાઇડ ક્ષમતા

યાદ રાખવાની ટિપ: “CLPDV Juice” - Coin sensor, LCD display, Pump motors, Dispensing unit, Valve control


પેપર સોલ્યુશનનો અંત
#

કુલ પ્રશ્નો આવરી લીધા: 5 મુખ્ય પ્રશ્નો બધા OR વિકલ્પો સાથે કુલ ગુણ: 70 ગુણ ફોર્મેટ: ડાયાગ્રામ, ટેબલ, કોડ ઉદાહરણો અને યાદ રાખવાની ટિપ્સ સાથે સંપૂર્ણ સોલ્યુશન વિશેષ વિશેષતાઓ:

  • નબળા વિદ્યાર્થીઓ માટે વિગતવાર સમજૂતી
  • દરેક વિષય માટે મેમરી એઇડ્સ (યાદ રાખવાની ટિપ્સ)
  • પ્રાયોગિક કોડ ઉદાહરણો
  • યોગ્ય ફોર્મેટનો ઉપયોગ કરીને સર્કિટ ડાયાગ્રામ
  • સરળ સમજ માટે સંરચિત ટેબલ્સ

સંબંધિત

Embedded System & Microcontroller Application (4351102) - Winter 2023 Solution (Gujarati)
14 મિનિટ
Study-Material Solutions Embedded-System 4351102 2023 Winter Gujarati
માઇક્રોપ્રોસેસર અને માઇક્રોકન્ટ્રોલર (4341101) - સમર 2023 સોલ્યુશન
23 મિનિટ
Study-Material Solutions Microprocessor 4341101 2023 Summer Gujarati
માઇક્રોપ્રોસેસર અને માઇક્રોકન્ટ્રોલર (4341101) - વિન્ટર 2024 સોલ્યુશન
23 મિનિટ
Study-Material Solutions Microprocessor 4341101 2024 Winter Gujarati
એન્ટેના એન્ડ વેવ પ્રોપેગેશન (4341106) - વિન્ટર 2024 સોલ્યુશન
22 મિનિટ
Study-Material Solutions Antenna Wave-Propagation 4341106 2024 Winter
કન્ઝ્યુમર ઇલેક્ટ્રોનિક્સ એન્ડ મેઇન્ટેનન્સ (4341107) - વિન્ટર 2024 સોલ્યુશન
22 મિનિટ
Study-Material Solutions Consumer-Electronics 4341107 2024 Winter
ફંડામેન્ટલ્સ ઓફ ઇલેક્ટ્રોનિક્સ (4311102) - વિન્ટર 2024 સોલ્યુશન
20 મિનિટ
Study-Material Solutions Electronics 4311102 2024 Winter