Բովանդակություն:

INFRA RED հեռակառավարվող ռոբոկարի օգտագործումը AVR (ATMEGA32) MCU: 5 քայլ
INFRA RED հեռակառավարվող ռոբոկարի օգտագործումը AVR (ATMEGA32) MCU: 5 քայլ

Video: INFRA RED հեռակառավարվող ռոբոկարի օգտագործումը AVR (ATMEGA32) MCU: 5 քայլ

Video: INFRA RED հեռակառավարվող ռոբոկարի օգտագործումը AVR (ATMEGA32) MCU: 5 քայլ
Video: Հեռակառավարվող անջատիչ սարք 2024, Նոյեմբեր
Anonim
INFRA RED հեռակառավարվող ռոբոկար AVR (ATMEGA32) MCU օգտագործմամբ
INFRA RED հեռակառավարվող ռոբոկար AVR (ATMEGA32) MCU օգտագործմամբ

Սույն JՐԱԳԻՐԸ նկարագրում է ինֆրակարմիր (IR) հեռակառավարվող RoboCar- ի նախագծումն ու իրականացումը, որը կարող է օգտագործվել տարբեր ավտոմատացված անօդաչու կառավարման ծրագրերի համար: Ես նախագծել եմ հեռակառավարվող RoboCar- ը (ձախ-աջ/առջևի-ետ շարժում): Ամբողջ համակարգը հիմնված է միկրոկառավարիչի վրա (Atmega32), որը կառավարման համակարգը դարձնում է ավելի խելացի և հեշտ փոփոխելի այլ ծրագրերի համար: Այն հնարավորություն է տալիս օգտագործողին գործարկել կամ կառավարել RoboCar- ը և գործարկել ցանցի հոսանքի անջատիչը մոտ 5 մետր հեռավորությունից:

Բանալի բառեր ՝ IR ապակոդավորիչ, AVR (Atmega32) միկրոկառավարիչ, հեռուստատեսության հեռակառավարիչ, անլար կապ

_

Քայլ 1: Ներկարմիր հաղորդակցություն

Ներկարմիր հաղորդակցություն
Ներկարմիր հաղորդակցություն

IR հաղորդակցության սկզբունքը

ա) IR փոխանցում

IR շղթայի հաղորդիչ իր միացման ներսում, որը ինֆրակարմիր լույս է արձակում իրեն տրված յուրաքանչյուր էլեկտրական իմպուլսի համար: Այս զարկերակը գեներացվում է հեռակառավարման վահանակի վրա կոճակ սեղմելիս ՝ դրանով իսկ ավարտելով շրջանը ՝ ապահովելով LED- ի կողմնակալությունը: Կողմնորոշված LED- ն 940 նմ ալիքի երկարության լույս է արձակում որպես մի շարք իմպուլսներ ՝ համապատասխան սեղմված կոճակին: Այնուամենայնիվ, քանի որ IR LED- ի հետ մեկտեղ ինֆրակարմիր լույսի շատ այլ աղբյուրներ, ինչպիսիք են ՝ մենք ՝ մարդիկ, լամպերը, արևը և այլն, փոխանցվող տեղեկատվությունը կարող է միջամտել: Այս խնդրի լուծումը մոդուլյացիայի միջոցով է: Փոխանցվող ազդանշանը մոդուլացվում է ՝ օգտագործելով 38 ԿՀց կրիչի հաճախականություն (կամ ցանկացած այլ հաճախականություն ՝ 36 -ից 46 ԿՀց): IR LED- ն այս հաճախականությամբ տատանվում է զարկերակի տևողության համար: Տեղեկատվությունը կամ լուսային ազդանշանները մոդուլացված են զարկերակի լայնությամբ և պարունակվում են 38 ԿՀց հաճախականությունում: Ինֆրակարմիր փոխանցումը վերաբերում է էլեկտրամագնիսական ճառագայթման սպեկտրի տարածքում գտնվող էներգիային ՝ ալիքի երկարությամբ ավելի երկար, քան տեսանելի լույսի, բայց ավելի կարճ, քան ռադիոալիքների: Համապատասխանաբար, ինֆրակարմիր հաճախականություններն ավելի բարձր են, քան միկրոալիքների, բայց ավելի ցածր, քան տեսանելի լույսի: Գիտնականները ինֆրակարմիր ճառագայթման (IR) սպեկտրը բաժանում են երեք տարածաշրջանի: Ալիքի երկարությունները նշվում են միկրոններով (խորհրդանշված μ, որտեղ 1 μ = 10-6 մետր) կամ նանոմետրերով (կրճատ նմ, որտեղ 1 նմ = 10-9 մետր = 0.001 5): Մոտ IR գոտին էներգիա է պարունակում տեսանելիին ամենամոտ ալիքների երկարությունների տիրույթում ՝ մոտավորապես 0,750 -ից մինչև 1,300 5 (750 -ից մինչև 1300 նմ): Միջանկյալ IR գոտին (կոչվում է նաև միջին IR ժապավեն) բաղկացած է էներգիայից ՝ 1.300 -ից 3.000 5 (1300 -ից 3000 նմ) տիրույթում: Հեռավոր IR գոտին տարածվում է 2.000 -ից մինչև 14.000 5 (3000 նմ -ից մինչև 1.4000 x 104 նմ):

բ) IR ընդունարան

Ստացողը բաղկացած է լուսանկարիչ դետեկտորից, որը մշակում է ելքային էլեկտրական ազդանշան, քանի որ դրա վրա լույս է ընկնում: Դետեկտորի ելքը զտվում է նեղ ժապավենի ֆիլտրի միջոցով, որը դեն է նետում կրիչի հաճախականությունից ցածր կամ բարձր բոլոր հաճախականությունները (այս դեպքում 38 ԿՀց): Theտված ելքն այնուհետև տրվում է համապատասխան սարքին, ինչպիսին է միկրոկոնտրոլերը կամ միկրոպրոցեսորը, որը վերահսկում է համակարգչի կամ ռոբոտի նման սարքերը: Ֆիլտրերի ելքը կարող է միացվել նաև Օսլիլոսկոպին ՝ իմպուլսները կարդալու համար:

IR- ի դիմումները

Ինֆրակարմիրը օգտագործվում է տարբեր անլար կապերի, մոնիտորինգի և կառավարման ծրագրերում: Ահա մի քանի օրինակ.

· Տնային ժամանցի հեռակառավարման տուփեր

· Անլար (տեղական ցանցեր)

· Հղումներ նոութբուք -համակարգիչների և աշխատասեղանների միջև

· Անլար մոդեմ

· Ներխուժման դետեկտորներ

· Շարժման դետեկտորներ

· Հրդեհային տվիչներ

· Գիշերային տեսողության համակարգեր

· Բժշկական ախտորոշիչ սարքավորումներ

· Հրթիռների ուղղորդման համակարգեր

· Երկրաբանական մոնիտորինգի սարքեր

IR տվյալների փոխանցումը մեկ սարքից մյուսը երբեմն կոչվում է ճառագայթում:

Քայլ 2: IR տվիչ և NEC արձանագրություն Fromat

IR Sensor & NEC Protocol Fromat
IR Sensor & NEC Protocol Fromat
IR Sensor & NEC Protocol Fromat
IR Sensor & NEC Protocol Fromat
IR Sensor & NEC Protocol Fromat
IR Sensor & NEC Protocol Fromat
IR Sensor & NEC Protocol Fromat
IR Sensor & NEC Protocol Fromat

IR սենսորներ (Նկար 1)

TSOP1738, SFH-5110-38 (38 կՀց)

TSOP սենսորների առանձնահատկությունները

  • Նախալարացուցիչը և լուսանկարիչ դետեկտորը երկուսն էլ մեկ փաթեթում են
  • Ներքին զտիչ ՝ PCM հաճախականության համար
  • Բարելավված պաշտպանություն էլեկտրական դաշտի խախտման դեմ
  • TTL և CMOS համատեղելիություն
  • Արդյունք ակտիվ ցածր powerածր էներգիայի սպառում
  • Բարձր անձեռնմխելիություն շրջակա լույսի դեմ
  • Հնարավոր է տվյալների անընդհատ փոխանցում

NEC արձանագրություն

NEC IR փոխանցման արձանագրությունը օգտագործում է հաղորդագրության բիթերի իմպուլսային հեռավորության կոդավորումը: Յուրաքանչյուր զարկերակային պոռթկում ունի 562.5µm երկարություն, կրիչի հաճախականությամբ ՝ 38kHz (26.3μs): Տրամաբանական բիթերը փոխանցվում են հետևյալ կերպ (Նկար 2).

  • Տրամաբանական «0» - 562.5 μs զարկերակի պայթյուն, որին հաջորդում է 562.5 μs տարածք, փոխանցման ընդհանուր ժամանակը ՝ 1.125ms
  • Տրամաբանական «1». 562.5 մկ զարկերակի պայթյուն, որին հաջորդում է 1.6875 մ տարածություն, փոխանցման ընդհանուր ժամանակը `2.25 մկմ

Փոխադրիչի զարկերակը բաղկացած է 21 ցիկլից ՝ 38 կՀց հաճախականությամբ: Սովորաբար իմպուլսներն ունեն նշան/տարածություն 1: 4 հարաբերություն ՝ ընթացիկ սպառումը նվազեցնելու համար.

(Նկար 3)

Յուրաքանչյուր կոդի հաջորդականություն սկսվում է 9 մգ զարկերակից, որը հայտնի է որպես AGC զարկերակ: Դրան հաջորդում է 4.5 մ լռություն.

(Նկար 4)

Տվյալներն այնուհետև բաղկացած են 32 բիթից, 16-բիթանոց հասցեից, որին հաջորդում է 16-բիթանոց հրամանը ՝ ցուցադրված հաջորդականությամբ (ձախից աջ).

(Նկար 5)

Տվյալների բիթերի չորս բայթերը յուրաքանչյուրն առաջինը ուղարկվում է նվազագույն նշանակալի բիթ: Նկար 1 -ը պատկերում է NEC IR փոխանցման շրջանակի ձևաչափը `00h (00000000b) հասցեի և ADh (10101101b) հասցեի համար:

Հաղորդագրության շրջանակը փոխանցելու համար պահանջվում է ընդհանուր առմամբ 67.5ms: Այն պահանջում է 27 ms ՝ հասցեի 16 բիթ (հասցե + հակադարձ) և հրամանի 16 բիթ (հրաման + հակադարձ) փոխանցելու համար:

(Նկ 6)

Շրջանակը փոխանցելու համար պահանջվող ժամանակը

16 բիթ հասցեի համար (հասցե + հակադարձ) պահանջում է 27 ms ժամանակ փոխանցելու համար: քանի որ (հասցեն + հակադարձ հասցեն) կամ (հրամանը + հակադարձ հրամանը) միշտ կպարունակի 8 '0 և 8' 1 -եր, այնպես որ (8 * 1.125 մգ) + (8 * 2.25 մգ) == 27 ms. ըստ այս ընդհանուր ժամանակի, որը պահանջվում է շրջանակը փոխանցելու համար (9ms +4.5ms +27ms +27ms) = 67.5 ms.

ԿՐԿՆԵԼ ԿՈԴԵՐ. Եթե հեռակառավարման վահանակի բանալին սեղմված է պահվում, ապա կրկնօրինակ ծածկագիր է տրվում, սովորաբար զարկերակի պայթյունից մոտ 40ms հետո, որը նշանակում էր հաղորդագրության վերջը: Կրկնվող ծածկագիրը կշարունակվի ուղարկվել 108 մմ ընդմիջումներով, մինչև բանալին վերջապես ազատ արձակվի: Կրկնվող ծածկագիրը բաղկացած է հետևյալից ՝ ըստ հերթականության.

  • 9 մգ առաջատար զարկերակի պայթյուն
  • 2.25 մ տարածություն
  • 562,5 μs իմպուլս է պայթել `նշելով տարածության վերջը (և, հետևաբար, փոխանցված կրկնվող կոդի վերջը):

(Նկար 7)

Հետաձգման հաշվարկ (1 մգ):

Freամացույցի հաճախականությունը = 11.0592 ՄՀց

Մեքենայի ցիկլ = 12

Հետաձգում = 1 ms

TimerValue = 65536 - ((Delay * ClockFreq)/Machine Cycle) = 65536 - ((1ms * 11.0592Mhz)/12)

= 65536 - 921 = 0xFC67

Քայլ 3: DC շարժիչի վերահսկում L293D- ի միջոցով

DC շարժիչի հսկողություն L293D- ի միջոցով
DC շարժիչի հսկողություն L293D- ի միջոցով

DC շարժիչ

DC- շարժիչը էլեկտրական էներգիան վերածում է մեխանիկական էներգիայի, որը կարող է օգտագործվել բազմաթիվ օգտակար աշխատանքներ կատարելու համար: Այն կարող է առաջացնել մեխանիկական շարժում, ինչպիսին է Go Forward/Backword of my RoboCar- ը: DC շարժիչները գալիս են տարբեր վարկանիշներով ՝ 6V և 12V: Այն ունի երկու լար կամ կապում: Մենք կարող ենք շրջել պտույտի ուղղությունը ՝ հակադարձելով մուտքի բևեռականությունը:

Այստեղ մենք նախընտրում ենք L293D- ը, քանի որ 600 մԱ -ի գնահատականը լավ է փոքր DC շարժիչներ վարելու համար, իսկ պաշտպանական դիոդները ներառված են հենց IC- ում: Յուրաքանչյուր քորոցի նկարագրությունը հետևյալն է. Միացնել կապերը. 1 և քորոց թիվ: 9. Պին թիվ. 1-ը օգտագործվում է Half-H վարորդ 1-ի և 2.-ի վարորդը միացնելու համար (H կամուրջ ձախ կողմում): Կապում համարը 9-ը օգտագործվում է H- կամուրջի վարորդին 3 և 4. միացնելու համար (H կամուրջը աջ կողմում):

Հայեցակարգը պարզ է, եթե ցանկանում եք օգտագործել որոշակի H կամուրջ, ապա պետք է բարձր տրամաբանություն հաղորդեք համապատասխան միացման կապերին, ինչպես նաև IC- ի սնուցման աղբյուրին: Այս քորոցը կարող է օգտագործվել նաև PWM տեխնիկայի միջոցով շարժիչի արագությունը վերահսկելու համար: VCC1 (PIN 16). Էներգամատակարարման քորոց: Միացրեք այն 5 Վ լարման: VCC2 (Pin 8). Էլեկտրամատակարարում շարժիչի համար: Կիրառեք +ve լարումը դրան ՝ ըստ շարժիչի գնահատման: Եթե ցանկանում եք ձեր շարժիչը վարել 12 Վ լարման տակ, ապա կիրառեք 12 Վ լարման վրա:

Հնարավոր է նաև շարժիչն ուղղակիորեն մարտկոցով վարել, բացի այն, ինչ օգտագործվում է միացումին սնուցման համար: Պարզապես միացրեք այդ մարտկոցի +ve տերմինալը VCC2 կապին և երկու մարտկոցների GND- ն դարձեք սովորական: (MAX լարումը այս կապում 36V է ըստ իր տվյալների թերթիկի): GND (կապում 4, 5, 12, 13). Միացրեք դրանք միացման ընդհանուր GND- ին: Մուտքեր (կապում 2, 7, 10, 15):

Սրանք մուտքային կապում են, որոնց միջոցով հսկիչ ազդանշանները տրվում են միկրոկոնտրոլերների կամ այլ սխեմաների/IC- ների միջոցով: Օրինակ, եթե 2 -րդ կապի վրա (1 -ին կեսի վարորդի մուտքագրում) մենք տալիս ենք Logic 1 (5V), ապա մենք կստանանք VCC2- ի հավասար լարման 1 -ին կեսի H վարորդի համապատասխան ելքային պին, այսինքն ՝ թիվ 1 կապը: 3. Նմանապես տրամաբանության համար 0 (0V) 2 -րդ Pin- ում, 0V- ը Pin 3 -ում: Ելքեր (Pin 3, 6, 11, 14). Ըստ մուտքային ազդանշանի ելքային ազդանշանը գալիս է:

Շարժիչային շարժումներ A B

-----------------------------------------------------------------------------------------

…………… Կանգ: Lowածր. Lowածր

…… ockամացույցի սլաքի ուղղությամբ ՝ ցածր ՝ բարձր

Ժամացույցի սլաքի հակառակ ուղղությամբ `բարձր` ցածր

……………. Կանգառ. Բարձր. Բարձր

Քայլ 4. Շարժիչի վարորդի և IR սենսորի միացման սխեմաներ

Շարժիչի վարորդի և IR սենսորի սխեմաների դիագրամներ
Շարժիչի վարորդի և IR սենսորի սխեմաների դիագրամներ
Շարժիչի վարորդի և IR սենսորի միացման սխեմաներ
Շարժիչի վարորդի և IR սենսորի միացման սխեմաներ
Շարժիչի վարորդի և IR սենսորի միացման սխեմաներ
Շարժիչի վարորդի և IR սենսորի միացման սխեմաներ

ATmega32- ը ցածր էներգիայի CMOS 8-բիթանոց միկրոկառավարիչ է, որը հիմնված է AVR ուժեղացված RISCarchitecture- ի վրա: Clockամացույցի մեկ ցիկլում հզոր ցուցումներ կատարելով ՝ ATmega32- ը հասնում է 1 ՄՀց -ի մոտ 1 MIPS- ի թողունակությանը, որը թույլ է տալիս համակարգի դիզայներին օպտիմալացնել էներգիայի սպառումը ՝ համեմատած մշակման արագության հետ:

AVR միջուկը միավորում է հարուստ հրահանգների հավաքածու 32 ընդհանուր օգտագործման աշխատանքային գրանցամատյանների հետ: Բոլոր 32 գրանցամատյանները ուղղակիորեն կապված են Թվաբանական տրամաբանության միավորի հետ (ALU), ինչը թույլ է տալիս մուտք գործել երկու անկախ ռեգիստր մեկ ժամացույցի մեկ ցիկլում կատարվող մեկ հրահանգում: Ստացված ճարտարապետությունն ավելի արդյունավետ է ծածկագրերի համար, մինչդեռ արդյունահանումներին հասնում է մինչև տասն անգամ ավելի արագ, քան սովորական CISC միկրոկոնտրոլերները:

ATmega32- ն ապահովում է հետևյալ հնարավորությունները.

  • 32 Կբայթ համակարգում ծրագրավորվող Flash ծրագրի հիշողություն ՝ կարդալու-գրելու հնարավորությամբ,
  • 1024 բայթ EEPROM, 2K բայթ SRAM,
  • 32 ընդհանուր նշանակության I/O գծեր,
  • 32 ընդհանուր օգտագործման աշխատանքային գրանցամատյան,
  • JTAG ինտերֆեյս Boundaryscan- ի համար,
  • On-chip Վրիպազերծման աջակցում և ծրագրավորում, երեք ճկուն erամաչափ/հաշվիչ ՝ համեմատման ռեժիմներով, Ներքին և արտաքին ընդհատումներ, սերիական ծրագրավորվող USART, բայթերի վրա հիմնված երկալար սերիական ինտերֆեյս, 8-ալիք,
  • 10-բիթանոց ADC ՝ ընտրովի դիֆերենցիալ մուտքային փուլով ՝ ծրագրավորվող շահումով (միայն TQFP փաթեթով),
  • ծրագրավորվող Watchdog Timer ներքին տատանումով,
  • SPI սերիական նավահանգիստ, և
  • վեց ծրագրաշարի ընտրելի էներգախնայողության ռեժիմ:

    • Պարապ ռեժիմը դադարեցնում է պրոցեսորը, մինչդեռ թույլ է տալիս USART- ին,
    • Երկալար ինտերֆեյս, A/D փոխարկիչ,
    • SRAM,
    • Erամաչափ/հաշվիչներ,
    • SPI նավահանգիստ, և
    • ընդհատել համակարգը `շարունակելու աշխատանքը:
    • Power-down ռեժիմը պահպանում է գրանցամատյանի բովանդակությունը, բայց սառեցնում է Oscillator- ը ՝ անջատելով մնացած բոլոր չիպային գործառույթները մինչև հաջորդ արտաքին ընդհատումը կամ ապարատային վերականգնումը:
    • Էներգախնայողության ռեժիմում Ասինխրոն ժամաչափը շարունակում է աշխատել, ինչը թույլ է տալիս օգտվողին պահպանել ժամաչափի հիմքը, մինչ սարքի մնացած մասը քնում է:
    • ADC Աղմուկի նվազեցման ռեժիմը դադարեցնում է պրոցեսորը և բոլոր մուտքային/ելքային մոդուլները, բացառությամբ Ասինխրոն ժամաչափի և ADC- ի, ADC փոխակերպումների ժամանակ աղմուկը նվազագույնի հասցնելու համար:
    • Սպասման ռեժիմում բյուրեղյա/ռեզոնատոր տատանումն աշխատում է, մինչ սարքի մնացած մասը քնում է: Սա թույլ է տալիս շատ արագ գործարկել ՝ զուգակցված ցածր էներգիայի սպառման հետ:
    • Ընդլայնված սպասման ռեժիմում և՛ հիմնական տատանումները, և՛ ասինխրոն ժամաչափը շարունակում են աշխատել:

Բոլոր հարակից սխեմաները տրվում են այստեղ, և տրվում է նաև հիմնական միացումը (atmega32):

Քայլ 5: Avr ծրագրեր

Avr ծրագրեր
Avr ծրագրեր
Avr ծրագրեր
Avr ծրագրեր

1. «Հեռավոր ցուցիչի» համար

#ներառել #ներառել

#ներառել «հեռավոր.հ»

// Գլոբալ անկայուն անստորագիր int Time; // Հիմնական ժամաչափ, պահում է ժամանակը 10us- ում, // Թարմացվել է ISR (TIMER0_COMP) անկայուն անստորագիր char BitNo; // Հաջորդ BIT անկայուն անստորագիր char- ի դիրքերը ByteNo; // Ընթացիկ բայտի դիրքերը

անկայուն անստորագիր նշան IrData [4]; // Չորս տվյալների բայթ Ir Packet // 2-բայտ հասցե 2-բայթ Տվյալներ անկայուն անստորագիր char IrCmdQ [QMAX]; // Վերջնական հրաման ստացված (բուֆեր)

անկայուն անստորագիր char PrevCmd; // Օգտագործվում է կրկնելու համար

// Փոփոխականներ, որոնք օգտագործվում են կրկնել սկսելու համար միայն բանալին որոշակի ժամանակ սեղմելուց հետո

անկայուն անստորագիր char Կրկնել; // 1 = այո 0 = ոչ անկայուն անստորագիր char RCount; // Կրկնել հաշվարկը

անկայուն ածուխ QFront = -1, QEnd = -1;

անկայուն անստորագիր char պետություն; // Ստացողի վիճակը

անկայուն անստորագիր char Edge; // Ընդհատման եզր [RISING = 1 OR FALLING = 0]

անկայուն անստորագիր int stop;

/********************************************** ***************************************** / /*FUNCTIONSSTARTS* / / ******************************************** ******************************************/

անվավեր RemoteInit () {

char i; համար (i = 0; i <4; i ++) IrData = 0;

կանգառ = 0; Նահանգ = IR_VALIDATE_LEAD_HIGH; Եզր = 0; Կրկնել = 0;

// Կարգավորման ժամանակաչափ 1 // ------------ TCCR0 | = ((1 <

TIMSK | = (1 <

OCR0 = TIMER_COMP_VAL; // Սահմանել Համեմատել արժեքը

անստորագիր char GetRemoteCmd (char char) {անստորագիր char cmd;

եթե (սպասել) մինչ (QFront ==-1); այլապես, եթե (QFront ==-1) վերադարձ (RC_NONE);

cmd = IrCmdQ [QFront];

եթե (QFront == QEnd) QFront = QEnd = -1; այլ {if (QFront == (QMAX-1)) QFront = 0; այլ QFront ++; }

վերադարձ cmd;

}

2. հիմնական ():

int հիմնական (անվավեր) {

uint8_t cmd = 0; DDRB = 0x08;

DDRD = 0x80;

DDRC = 0x0f; PORTC = 0x00;

while (1) // Infinite Loop to active IR-sensor {

cmd = GetRemoteCmd (1);

անջատիչ (սմդ) {

case xx: {// BOT Առաջ է շարժվում // Ch+ btn առաջ շարժիչ ();

ընդմիջում; // Երկու շարժիչներն էլ ՝ առաջընթաց ուղղությամբ

}

………………………………………………….

………………………………………………….

………………………………………………….

կանխադրված ՝ PORTC = 0x00; ընդմիջում; // Ձախ և աջ շարժիչները կանգ են առնում}

}

}/*Հիմնականի ավարտը//

……………………………………………………………………………………………………………………

// Դա հիմնական մոդել է, բայց ես կարող եմ այն օգտագործել PWM ռեժիմում:

//…………………………………………….. Զվարճանալ……………………………………………………//

Խորհուրդ ենք տալիս: