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

Առանձին Arduino 3.3V W / արտաքին 8 ՄՀց ժամացույց, որը ծրագրավորվում է Arduino- ից Uno ICSP / ISP- ի միջոցով (սերիական մոնիտորինգով): 4 քայլ
Առանձին Arduino 3.3V W / արտաքին 8 ՄՀց ժամացույց, որը ծրագրավորվում է Arduino- ից Uno ICSP / ISP- ի միջոցով (սերիական մոնիտորինգով): 4 քայլ

Video: Առանձին Arduino 3.3V W / արտաքին 8 ՄՀց ժամացույց, որը ծրագրավորվում է Arduino- ից Uno ICSP / ISP- ի միջոցով (սերիական մոնիտորինգով): 4 քայլ

Video: Առանձին Arduino 3.3V W / արտաքին 8 ՄՀց ժամացույց, որը ծրագրավորվում է Arduino- ից Uno ICSP / ISP- ի միջոցով (սերիական մոնիտորինգով): 4 քայլ
Video: How measure DC Voltage and Current and build Energy meter with LCD Display | Lesson 104 2024, Նոյեմբեր
Anonim
Առանձին Arduino 3.3V W / արտաքին 8 ՄՀց ժամացույց, որը ծրագրավորվում է Arduino- ից ICSP / ISP- ի միջոցով (սերիական մոնիտորինգով)
Առանձին Arduino 3.3V W / արտաքին 8 ՄՀց ժամացույց, որը ծրագրավորվում է Arduino- ից ICSP / ISP- ի միջոցով (սերիական մոնիտորինգով)
Առանձին Arduino 3.3V W / արտաքին 8 ՄՀց ժամացույց, որը ծրագրավորվում է Arduino- ից ICSP / ISP- ի միջոցով (սերիական մոնիտորինգով)
Առանձին Arduino 3.3V W / արտաքին 8 ՄՀց ժամացույց, որը ծրագրավորվում է Arduino- ից ICSP / ISP- ի միջոցով (սերիական մոնիտորինգով)

Նպատակներ:

  • Կառուցել ինքնուրույն Arduino, որն աշխատում է 3.3 Վ լարման վրա, 8 ՄՀց արտաքին ժամացույցից:
  • Programրագրավորել այն ISP- ի միջոցով (հայտնի է նաև որպես ICSP, միացված սերիական ծրագրավորում) Arduino Uno- ից (աշխատում է 5 Վ լարման վրա)

    Bootloader ֆայլը խմբագրելու և bootloader- ը այրելու համար (ISP- ի միջոցով)

  • FTDI մալուխի միջոցով անկախ Arduino- ից սերիական տեղեկատվություն կարդալ կարողանալու համար

    Առանց FTDI մալուխի կարող եք կարդալ սերիական տեղեկատվություն անկախ Arduino- ից

Նախաբան.

Ես փորձում էի կառուցել իմ ինքնուրույն նախագիծը, բայց չտեսա որևէ համապարփակ ուղեցույց ինքնավար Arduino- ի գործարկման, ծրագրավորման և մոնիտորինգի վերաբերյալ. Ես կազմել եմ մի շարք առանձին ուղեցույցներ և փորձել եմ հղում անել, թե որտեղից եմ տեղեկատվություն ստացել ՝ վարկ տալու համար, որտեղ պետք է վարկ լինի: Այս ուղեցույցը երկար օրերի արդյունք է ՝ լուծումներ փնտրելու և դրա մասեր գտնելու ժամանակ, երբ ես կառուցում էի իմ սեփական նախագիծը: Բացի այդ, ես կապել եմ մի քանի օգտակար ապրանքների, որոնք ձեռք կբերվեն ոչ այն պատճառով, որ ես կապված եմ որևէ մեկի հետ ընկերությունները, բայց քանի որ տեղին է ներառել այն կոնկրետ կետերը, որոնց ես հղում եմ կատարում:

Ընդհանուր հարցեր նախքան սկսելը

Ինչու՞ պետք է այն ծրագրավորել ISP- ով և վերահսկել FTDI- ի միջոցով: Ինչու՞ չեք կարող այն պարզապես ծրագրավորել FTDI- ի միջոցով:

Մենք ստիպված կլինենք փոխել ապահովիչների կարգավորումները `այրելով նոր բեռնիչ, և դա չեք կարող անել սերիական հաղորդակցության միջոցով: Դուք պետք է այրեք bootloader- ը ISP- ի միջոցով: Սա նաև օգտակար է նրանց համար, ովքեր չունեն նախապես բեռնված ATMEGA328 չիպ:

Ինչու՞ ես պարզապես ISP մալուխ չեմ օգտագործում սերիական մոնիտորինգով, ինչպես այս մեկը:

Հնարավոր է, ինձ պես, դուք պարզապես պատահաբար չունեք մեկը, այլ ոչ թե սպասում եք, որ առաքվի, դուք սիրում եք օգտագործել այն, ինչ ունեք: Ես պատահաբար ունեմ FTDI մալուխ (չնայած վերջում դուք կգտնեք, որ դրա կարիքը չունեք. Այն պարզապես հեշտացնում է ձեր կյանքը):

Ինձ պե՞տք չէ Uno- ից տրամաբանական մակարդակի անցում կատարել դեպի անկախ Arduino:

Այո, դուք անում եք, բայց ես ձեզ ցույց կտամ, թե ինչպես պատրաստել ինքներդ: Ինչպես ISP մալուխի, այնպես էլ ես պատահաբար չունեմ:

Ես ուզում եմ դա սպառել արտաքին էներգիայից: Ինչպե՞ս կարող եմ դա անել:

Կան բազմաթիվ ուղեցույցներ, որոնք ցույց են տալիս, թե ինչպես կարելի է անկախ Arduino- ն մարտկոցի լիցքից անջատել: Ես կգրեմ, թե ինչպես դա արեցի և կկապեմ այստեղ [կտեղադրեմ ավելի ուշ]:

Ո GԵՈՅԸ

Քայլ 1. Ստեղծեք ինքնուրույն Arduino

Կառուցելով ինքնուրույն Arduino- ն
Կառուցելով ինքնուրույն Arduino- ն
Կառուցելով ինքնուրույն Arduino- ն
Կառուցելով ինքնուրույն Arduino- ն

1) Կառուցեք անկախ Arduino- ն այս հղումից: Ուղեցույցի միակ մասը, որն անհրաժեշտ է, «ATMEGA8/168/328 հիմունքներ» -ն է:

  • դուք կարող եք միացնել անկախ Arduino- ն 3.3V- ից Arduino Uno- ից: (Կարող եք բաց թողնել ձեռնարկի առաջին բաժինը `« Էլեկտրամատակարարման համար շրջանառության ավելացում »վերնագրով:
  • Փոխարինեք 16 ՄՀց ժամացույցը 8 ՄՀց ժամացույցով:
  • Ավելացրեք 0.1 uF կափարիչներ ՝ VCC և Gnd (երկու կողմերում) VRef և Gnd միջև:

    • Ես դրանք չունեմ նկարի մեջ, բայց ունեմ դրանք իմ նախագծերում:
    • Ես գիտեմ, որ դա լուսանկարում 16 ՄՀց տատանում է: Ես լուսանկարել եմ նախքան իմացա այն ամենը, ինչ արել եմ ուղեցույցում:

ATMEGA328p պինուտ պատկերի աղբյուրն այստեղ:

Խնդիրների վերացման ընդհանուր խորհուրդներ

  • Համոզվեք, որ VCC- ից 10k ռեզիստորի միջոցով բարձր եք վերակայել ATMEGA- ի 1 -ին կապին: Եթե քորոցը հիմնավորված է կամ լողացող, այն չի աշխատի:
  • Կրկնակի ստուգեք, որ լարերը և տատանումները ճիշտ եք մտցրել:
  • Համոզվեք, որ օգտագործում եք 22pF կոնդենսատորներ 8 ՄՀց տատանումների համար: Այլ կերպ չի ստացվի:
  • Համոզվեք, որ սարքը սնվում է:

Քայլ 2: ISP- ի լարերի միացում

ISP լարերի տեղադրում
ISP լարերի տեղադրում
ISP լարերի տեղադրում
ISP լարերի տեղադրում

2) Ստեղծեք ISP բաժինը:

Դուք այստեղ հետևելու եք այս ուղեցույցին ՝ մի փոքր, բայց շատ կարևոր քայլով:

Պատճառն այն է, որ դուք պարզապես չեք կարող հետևել ուղեցույցին, այն է, որ կարոտում եք կարևոր մասը. Դուք չեք կարող ծրագրավորել 3.3 Վ սարքը անմիջապես 5 Վ կապերից: (Համենայն դեպս, ես չէի կարող. Դա չէր աշխատի, մինչև ես դա չանեի): Դուք պետք է տեղադրեք տրամաբանական մակարդակի փոխարկիչ, որը 5V ազդանշանները UNO- ից տեղափոխում է 3.3Vstandalone Arduino:

Եթե դուք չունեք տրամաբանական մակարդակի փոխարկիչ տախտակ, կարող եք այն պատրաստել ՝ օգտագործելով դիմադրիչներ: Իրականում տրամաբանական մակարդակի ամեն ինչ փոխում է (այնքան, որքան ներքև ես իջնում) լարման բաժանարար է: Ձեզ հարկավոր կլինի 6 նույն ռեզիստոր, ոչ շատ բարձր կամ շատ ցածր: Ես օգտագործել եմ 220 օմ դիմադրողականություն, բայց վստահ եմ, որ նույնիսկ 10k դիմադրիչները կաշխատեն:

SCK (թվային կապիչ 13) և MOSI (թվային կապիչ 11) համար օգտագործեք լարման բաժանարար `լարումը մեկ երրորդով կտրելու համար: Ըստ էության, դուք կունենաք մեկ Uno SCK և MOSI, այնուհետև դիմադրություն (220 օհմ), այնուհետև SCK և MOSI միացված անկախ Arduino- ին և 2 դիմադրություն (ընդհանուր 440 օհմ) գետնին:

Այսպիսով, կարդացեք այս բաժնի սկզբում նշված ուղեցույցը, բայց ներառեք լարման բաժանարարներ SCK- ի և MOSI- ի միջև: Հիշեք, SCK- ը, MISO- ն, MOSI- ն և RESET- ը Uno- ի 13, 12, 11 և 10 կապերն են, բայց 19 -ն են:, 18, 17 և 1 ինքնուրույն Arduino- ում:

Խնդիրների վերացման ընդհանուր խորհուրդներ

  • ՍՏՈԳԵԼ ԼԱՅՐՈՄԸ

    • Եթե ծրագիր գրելիս փորձում եք ստանալ 0 -ի սարքի ստորագրությունը, ապա ձեր էլեկտրագծերը գրեթե անջատված են, կամ անկախ Arduino- ն չի սնվում:
    • Բացի այդ, համոզվեք, որ Uno- ի 10 -ից 10 -ը ստացել եք անկախ Arduino- ում
  • ՇՏԱՊԵԼ ԼԱՐԻ ԲԱIDԱՆՈՐՆԵՐԸ

    Համոզվեք, որ ունեք լարման բաժանարարներ ՝ 1: 2 հարաբերությամբ (բարձր կողմ. Ցածր կողմ) ինչպես SCK- ի, այնպես էլ MOSI- ի դիմադրիչների համար: Օրինակ ՝ 220 ռեզիստոր +5 վ կողմում, այնուհետև 220 220 օմ դիմադրություն (ընդհանուր 440 օհմ) դեպի գետնին, իսկ ազդանշանը դեպի անկախ Arduino- ի կեսին:

Քայլ 3: Խմբագրեք Bootloader ֆայլը, այրեք Bootloader- ը և վերբեռնեք ձեր ուրվագիծը

Խմբագրեք Bootloader ֆայլը, այրեք Bootloader- ը և վերբեռնեք ձեր ուրվագիծը
Խմբագրեք Bootloader ֆայլը, այրեք Bootloader- ը և վերբեռնեք ձեր ուրվագիծը
Խմբագրեք Bootloader ֆայլը, այրեք Bootloader- ը և վերբեռնեք ձեր ուրվագիծը
Խմբագրեք Bootloader ֆայլը, այրեք Bootloader- ը և վերբեռնեք ձեր ուրվագիծը

3) Խմբագրեք bootloader (boards.txt) ֆայլը և այրեք bootloader- ը անկախ Arduino- ում: Վերբեռնեք ձեր ուրվագիծը:

Bootloader ֆայլը խմբագրելը

Անկախ Arduino- ն գործարկելու համար դուք պետք է խմբագրեք bootloader- ի brownout ապահովիչի կարգավորումները: Հակառակ դեպքում, դուք կկարողանաք այրել bootloader- ը դրա վրա, բայց չեք կարողանա որևէ ուրվագիծ վարել:

Դուք կարող եք ամբողջությամբ հեռացնել շագանակագույն հայտնաբերումը, բայց ես դա խորհուրդ չեմ տա: Փոխարենը, մենք այն իջեցնելու ենք 2.7 Վ -ից (այն, ինչ լռելյայն հայտնվեց իմ չիպի վրա) և այն փոխարինեցինք 1.8 Վ -ով: Սակայն, ի վերջո, այստեղ կարող եք ընտրել, թե ինչ brownout պարամետրեր եք ցանկանում `օգտագործելով ապահովիչների հաշվիչը:

Իմ տախտակների ֆայլը հետևյալ վայրում էր.

C: / Program Files (x86) Arduino / hardware / arduino / avr

Այնուամենայնիվ, դուք կարող եք ունենալ մեկից ավելի boards.txt ֆայլ ձեր ապարատային թղթապանակում, քան /arudino /: Դուք խմբագրելու եք boards.txt ֆայլը / arduino / location- ում, քանի որ փոփոխելու եք ATMEGA328p (3.3V, 8 ՄՀց) բաժինը:

Դուք կարող եք կորցնել խմբագրված boards.txt ֆայլը, եթե նորից տեղադրեք կամ թարմացնեք Arduino IDE- ն (ըստ այս գրառման): Սա նշանակում է, որ եթե թարմացնեք Arduino IDE- ն, ստիպված կլինեք նորից փոխել այս կարգավորումները, եթե ցանկանում եք ստեղծել նույն նույն անկախ Arduino- ից մեկ այլ:

Boards.txt ֆայլում ոլորեք ներքև կամ որոնեք «Pro Mini»: Բաժինը վերնագրված է «pro.name = Arduino Pro կամ Pro Mini»: Ոլորեք ներքև դեպի «pro.menu.cpu.8MHzatmega328 = ATmega328P (3.3V, 8 ՄՀց)» ենթաբաժին:

Փնտրեք այն տողը, որն ասում է "pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _"

Փոխեք կարգավորումները xFE- ի: (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE):

Պահել և դուրս գալ:

Bootloader- ի այրում

Դա անելուց հետո կարող եք հետևել ISP ուղեցույցի «Հրահանգներ» բաժնին ՝ 1 -ից 5 -րդ քայլերից:

Որոշ բաներ հստակեցնելու համար.

  • «Arduino as ISP» էսքիզը վերբեռնելիս պետք է համոզվեք, որ ընտրել եք COM- ի ճիշտ պորտը և պրոցեսորը:

    Այս դեպքում դա նշանակում է, որ դուք ընտրել եք ձեր Arduino- ի COM նավահանգիստը Գործիքներ-> Պորտ. COM X (Arduino Uno), իսկ տախտակը ՝ Arduio Uno:

  • Ընտրեք ճիշտ ծրագրավորողը ՝ Գործիքներ-> merրագրավորող-> Arduino- ի ներքո որպես ISP:

    ՉԻ ArduinoISP կամ ArduinoISP.org

  • Բեռնախցիկն այրելուց առաջ փոխեք «Pro կամ Pro Mini» տախտակը և պրոցեսորը «ATMEGA328p (3.3V, 8 ՄՀց)»:

    Մինչև տախտակի ճիշտ տեսակը չընտրեք, չեք տեսնի պրոցեսորի բաժինը:

Այրեք բեռնախցիկը ինքնուրույն Arduino- ի վրա ԱՌԱ, երբ փորձեք էսքիզներ գրել դրա վրա:

Էսքիզը բեռնելը

Սա շատ կարեւոր է: Այժմ դուք կարող եք ծրագրավորել կամ Arduino- ն ՝ Uno- ն և Standalone- ը: Եթե դուք ճիշտ սարք չեք բեռնում, ապա պետք է կրկնել վերը նշված հատվածը և վերաշարադրել Arduino- ն որպես ISP ծրագիր Uno- ում:

Երբ էսքիզը վերբեռնում եք, համոզվեք, որ կտտացնում եք Գործիքներ -> Վերբեռնել ծրագրավորողի միջոցով կամ Կտտացրեք Ctrl+Shift+U: Կարող եք նաև պահել shift- ը և սեղմել սլաքի պատկերակին, բայց առանց կտտոցը պահելու մի սեղմեք սլաքի պատկերակին:

Խնդիրների վերացման ընդհանուր խորհուրդներ

  • Խնդիրների վերացման համար միացրեք մանրամասն ելքը:
  • «Սարքի ստորագրողը 0 -ն է»: [Այս մեկը շատ հավանական է, որ տեղի ունենա]:

    • տես ISP լարերի բաժինը: Կամ սխալ եք միացրել անկախ Arduino- ն, կամ այն միացված չէ:
    • Համոզվեք, որ ընտրել եք ճիշտ COM նավահանգիստը և տախտակը / պրոցեսորը: Երբ այրում եք բեռնախցիկը, ՊԵՏՔ է համոզվեք, որ դրա վրա այրում եք Pro Mini 3.3V 8 ՄՀց բեռնիչ, կամ ապահովիչները ճիշտ չեն տեղադրվի:
  • "Ես խմբագրել եմ boards.txt ֆայլը, բայց փոփոխությունները չեմ տեսնում"

    Համոզվեք, որ դուք խմբագրել եք ճիշտ boards.txt ֆայլը: Փորձեք թարմացնել Arduino IDE- ն, եթե խմբագրումները չեն աշխատում, կամ ժամանակավորապես հեռացրեք ձեր / սարքավորման / պանակի այլ պանակներ:

  • "Չեմ գտնում boards.txt- ի պրոֆեսիոնալ մինի հատվածը:"

    Դուք ճիշտ boards.txt ֆայլում չեք փնտրում: Ստուգեք Arduino // hardware/arduino/թղթապանակը:

Քայլ 4: Սերիական հաղորդակցություն

4) Սերիական հաղորդակցության միջոցով վերահսկել ինքնուրույն սարքը

Դուք իսկապես կարող եք դա անել 2 մեթոդի միջոցով, այնպես որ, եթե նույնիսկ չունեք FTDI մալուխ / ճեղքման տախտակ, դա աշխարհի վերջը չէ: Եվ հիշեք, որ ինքնուրույն Arduino- ում տեղադրված էսքիզը կարդալու համար պետք է ունենա Serial.print նախադասություններ: եթե այն չեք գրել ծրագրում, ոչինչ չեք տեսնի:

Եթե չունեք FTDI մալուխ

Բեռնիչն այրելուց և ձեր ուզած ծրագիրը գրելուց հետո կարող եք (շատ ուշադիր և հիշելով, թե որ կողմնորոշմամբ է այն հետ գնում) Arduino Uno- ից հանել ATMEGA328 DIP չիպը: Ես խորհուրդ եմ տալիս դրա համար օգտագործել հարթ գլուխ:

Դուք կարող եք միացնել standaloneArduino's RX- ը Uno's RX- ին և TX- ը TX- ին: Այո, սովորաբար հակառակն է, բայց դուք կարող եք Uno- ն համարել տեղեկատվությունը «փոխանցող» IDE- ի սերիական մոնիտորին: Ահա թե ինչու այս դեպքում RX- ը TX- ին չեք միացնում և TX ro RX- ը: Երբ գործարկում եք ձեր ծրագիրը, համոզվեք, որ ունեք Arduino Uno- ի COM նավահանգիստը և բացում եք սերիական հսկիչ: Դուք կկարողանաք տեսնել անկախ Arduino- ի սերիական ելքը:

(Այս լուծումն այստեղ հաշվվում է Robin2- ին):

Եթե դուք իսկապես ունեք FTDI մալուխ / տախտակ

(Ես օգտագործում եմ Sparkfun- ի FTDI տախտակը, որը ես վերածել եմ 3.3 Վ -ի ՝ օգտագործելով հետևի մասի զոդման պահոցը)

Պարզապես միացրեք բեկման տախտակի GND- ը ինքնուրույն Arduino- ի գետնին և միացրեք Breakoutboard- ի RX- ը Arduino- ի TX- ին և TX- ին `RX- ին: (Եթե դուք ուղղակի Սերիական մոնիտորինգ եք և ոչինչ չեք գրում, կարող եք պարզապես միացնել հացահատիկի RX- ը Arduino TX- ին):

Հիշեք, որ այս պահին դուք ունեք առանձին Arduino- ի սնուցման տարբերակ Uno OR FTDI մալուխի միջոցով: Մի միացրեք երկու էներգիայի աղբյուրները միաժամանակ: Նկատի ունեցեք, որ դուք պետք է փոխեք COM պորտը, քանի որ այն տարբերվելու է Arduino Uno COM պորտից:

Խնդիրների վերացման ընդհանուր խորհուրդներ

  • «Ես ոչինչ չեմ տեսնում»:

    • Ստուգեք, արդյոք դուք միացված եք ճիշտ COM պորտին:
    • Ստուգեք, արդյոք ունեք FTDI- ի ամենավերջին վարորդները:
    • ԱՊԱՀՈՎԵԼ ՀՈUԸ ՄԻԱՎԱ է:
  • «Այն, ինչ տեսնում եմ, սերիական մոնիտորի աղբի արտահոսքն է»:

    • Դուք ստանում եք մի բան, որը լավ նշան է:
    • Այնուամենայնիվ, ստուգեք FTDI տախտակի լարումը:
    • Անկախ Arduino- ն իր TX- ով թողարկում է 3.3 Վ լարման, և FTDI խորհուրդը կարող է այն չվերցնել, եթե ակնկալում է 5 վ:
    • Ստուգեք բաուդ արագությունը:
    • Համոզվեք, որ միացված եք գետնին և միացված է միայն մեկ էներգիայի աղբյուր: (Այսինքն, մի՛ միացրեք անկախ Arduino- ն Uno AND FTDI- ի տախտակից:

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