Sisukord:

Eraldiseisev Arduino 3.3V W / väline 8 MHz kell programmeeritakse Arduino Uno kaudu ICSP / ISP kaudu (jadaseirega!): 4 sammu
Eraldiseisev Arduino 3.3V W / väline 8 MHz kell programmeeritakse Arduino Uno kaudu ICSP / ISP kaudu (jadaseirega!): 4 sammu

Video: Eraldiseisev Arduino 3.3V W / väline 8 MHz kell programmeeritakse Arduino Uno kaudu ICSP / ISP kaudu (jadaseirega!): 4 sammu

Video: Eraldiseisev Arduino 3.3V W / väline 8 MHz kell programmeeritakse Arduino Uno kaudu ICSP / ISP kaudu (jadaseirega!): 4 sammu
Video: Door Alarm with Delay 80 to 120 dB, Close Door Reminder, Multi Delays 0, 5, 10, 30, 60 Seconds. 2024, November
Anonim
Eraldiseisev Arduino 3.3V W / väline 8 MHz kell programmeeritakse Arduino Uno kaudu ICSP / ISP kaudu (jadaseirega!)
Eraldiseisev Arduino 3.3V W / väline 8 MHz kell programmeeritakse Arduino Uno kaudu ICSP / ISP kaudu (jadaseirega!)
Eraldiseisev Arduino 3.3V W / väline 8 MHz kell programmeeritakse Arduino Uno kaudu ICSP / ISP kaudu (jadaseirega!)
Eraldiseisev Arduino 3.3V W / väline 8 MHz kell programmeeritakse Arduino Uno kaudu ICSP / ISP kaudu (jadaseirega!)

Eesmärgid:

  • Eraldiseisva Arduino ehitamiseks, mis töötab 3,3 V toitel 8 MHz välisel kellal.
  • Selle programmeerimiseks Interneti-teenuse pakkuja (tuntud ka kui ICSP, ahelasisene jadaprogrammeerimine) kaudu Arduino Unost (töötab 5 V juures)

    Alglaadimisfaili muutmine ja alglaaduri põletamine (Interneti -teenuse pakkuja kaudu)

  • Et oleks võimalik lugeda eraldiseisvast Arduino -st jadateavet FTDI -kaabli kaudu

    Et oleks võimalik lugeda eraldiseisvast Arduino jadateavet ilma FTDI -kaablita

Preambul:

Proovisin ehitada oma eraldiseisvat projekti, kuid ei näinud ühtegi põhjalikku juhendit iseseisva Arduino käitamise, programmeerimise ja jälgimise kohta - eriti seda, mis töötab 8Mhz välise kellaga ja 3,3V ning mille programmeeris Arduino UNO. Olen kokku pannud mitu eraldi juhendit ja püüdnud viidata sellele, kust ma selle teabe sain, et anda krediiti, kui seda tuleb tasuda. See juhend on paljude päevade tulemus, mille jooksul otsisin lahendusi ja leidsin selle osi samal ajal, kui ma oma projekti koostasin. Lisaks olen linkinud mitmeid kasulikke tooteid, mis tulevad käepärast mitte sellepärast, et olen seotud ühegi ettevõtetele, vaid seetõttu, et on asjakohane lisada konkreetsed üksused, millele ma viitan.

Tavalised küsimused enne alustamist:

Miks peate selle programmeerima Interneti -teenuse pakkujaga ja jälgima FTDI kaudu? Miks ei saa seda lihtsalt FTDI kaudu programmeerida?

Peame kaitsesätteid muutma, käivitades uue alglaaduri ja te ei saa seda teha jadaühenduse kaudu. Peate alglaaduri põletama Interneti -teenuse pakkuja kaudu. See on kasulik ka neile, kellel pole eellaaditud ATMEGA328 kiipi.

Miks ma ei kasuta lihtsalt ISP -kaablit jadaseirega, nagu see?

Võib -olla, nagu minul, sul lihtsalt ei ole seda ja selle asemel, et oodata, kuni saadetakse, meeldib sulle kasutada seda, mis sul on! Mul on juhtumisi FTDI -kaabel (kuigi leiate, et lõpuks pole seda isegi vaja: see teeb teie elu lihtsamaks).

Kas ma ei vaja loogika taseme nihutamist Unost iseseisva Arduino juurde?

Jah, sa teed, aga ma näitan sulle, kuidas seda ise teha. Nagu ISP -kaablil, pole mul seda juhtumisi.

Ma tahan selle välise toite eest ära ajada. Kuidas seda teha?

Seal on palju juhendeid, mis näitavad, kuidas iseseisvat Arduino akutoitest välja lülitada. Kirjutan, kuidas ma seda tegin, ja linkin siia [lisan hiljem].

GIID

Samm: eraldiseisva Arduino ehitamine

Eraldi Arduino ehitamine
Eraldi Arduino ehitamine
Eraldi Arduino ehitamine
Eraldi Arduino ehitamine

1) Ehitage sellest lingist eraldiseisev Arduino. Ainus juhend, mida vajate, on "ATMEGA8/168/328 põhitõed".

  • saate eraldiseisva Arduino toita Arduino Uno 3.3V -st. (Võite vahele jätta õpetuse esimese jaotise pealkirjaga "Toiteallika vooluahela lisamine".
  • Asenda 16 MHz kell 8 Mhz kellaga.
  • Lisage 0,1 uF korki: VCC ja Gnd (mõlemad pooled) VRef ja Gnd.

    • Mul pole neid pildil, kuid mul on neid oma projektides!
    • Ma tean, et see on fotol 16 MHz ostsillaator. Tegin foto enne, kui sain aru, mida kõike juhendis tegin!

ATMEGA328p pinout -pildi allikas siin.

Tavalised tõrkeotsingu näpunäited

  • Veenduge, et olete lähtestanud kõrge väärtuse 10 k takisti kaudu VCC -st ATMEGA tihvti 1 külge. Kui tihvt on maandatud või ujuv, ei tööta see.
  • Kontrollige, kas olete juhtmed ja ostsillaatori õigesti sisestanud.
  • Veenduge, et kasutate 8 MHz ostsillaatori jaoks 22pF kondensaatoreid. See ei tööta teisiti.
  • Veenduge, et seade oleks toitega.

Samm: Interneti -teenuse pakkuja juhtmestik

ISP juhtmestik
ISP juhtmestik
ISP juhtmestik
ISP juhtmestik

2) Looge Interneti -teenuse pakkuja osa

Järgite seda juhendit siin väikese, kuid väga olulise sammuga.

Põhjus, miks te ei saa lihtsalt juhendit järgida, on see, et teil on puudu oluline osa: te ei saa programmeerida 3,3 V seadet otse 5 V ühendustest. (Vähemalt ma ei suutnud: see ei tööta enne, kui ma seda tegin). Peate sisestama loogilise taseme nihke, mis nihutab 5 V signaale UNO -lt 3,3 V eraldiseisvale Arduinole.

Kui teil pole loogilise taseme käiguvahetusplaati, saate selle teha takistite abil. Kõik loogilise taseme nihutajad tegelikult on (nii kaua, kui liigute allapoole) pingejagur. Teil on vaja 6 ühesugust takistit, mitte midagi liiga kõrget ega liiga madalat. Kasutasin 220 oomi takistit, kuid olen kindel, et isegi 10k takistid toimiksid.

SCK (digitaalne tihvt 13) ja MOSI (digitaalne tihvt 11) puhul kasutage pingejaoturit, et vähendada pinget ühe kolmandiku võrra. Sisuliselt on teil üks Uno SCK ja MOSI, seejärel takisti (220 oomi), seejärel SCK ja MOSI, mis on ühendatud eraldiseisva Arduinoga, ja 2 takistit (kokku 440 oomi) maandusega.

Niisiis, lugege selle jaotise alguses lingitud juhendit, kuid lisage SCK ja MOSI vahele pingejagurid. Pidage meeles, et SCK, MISO, MOSI ja RESET on Uno tihvtid 13, 12, 11 ja 10, kuid need on tihvtid 19, 18, 17 ja 1 eraldiseisval Arduino -l!

Tavalised tõrkeotsingu näpunäited

  • Kontrollige juhtmeid

    • Kui saate programmi kirjutamisel seadme allkirja kõigi 0 -de kohta, on teie juhtmestik peaaegu kindlasti välja lülitatud või eraldiseisev Arduino ei saa voolu.
    • Veenduge ka, et teil on lähtestustraat Uno 10 -st kuni eraldiseisva Arduino 1 -ni
  • Kontrollige pingejagureid

    Veenduge, et teil on nii SCK kui ka MOSI takistite jaoks pingejagurid suhtega 1: 2 (kõrge külg: madal pool). Nt. 220 takisti +5 V küljel ja seejärel 2 220 oomi takistit (kokku 440 oomi) maapinna poole, kusjuures signaal on keskel eraldiseisva Arduino poole

Samm: redigeerige alglaaduri faili, põletage alglaadur ja laadige üles oma visand

Muutke alglaaduri faili, põletage alglaadijat ja laadige üles oma visand
Muutke alglaaduri faili, põletage alglaadijat ja laadige üles oma visand
Muutke alglaaduri faili, põletage alglaadurit ja laadige üles oma visand
Muutke alglaaduri faili, põletage alglaadurit ja laadige üles oma visand

3] Muutke alglaaduri (boards.txt) faili ja põletage alglaadur eraldiseisvaks Arduinoks. Laadige oma visand üles

Alglaaduri faili muutmine

Eraldiseisva Arduino käivitamiseks peate muutma alglaaduri pruunikaitsmete seadeid. Vastasel juhul saate sellele alglaaduri põletada, kuid ei saa visandeid käivitada.

Pruunistamise tuvastamise saate täielikult eemaldada, kuid ma ei soovita seda. Selle asemel langetame selle 2,7 V -lt (mis minu kiibil vaikimisi tuli) ja asendame selle 1,8 V -ga. Lõppkokkuvõttes saate aga siin valida kaitsmekalkulaatori abil soovitud pruunistusseaded.

Minu plaatide fail oli järgmises asukohas:

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

Siiski võib teie riistvara kaustas olla mitu faili.txt, välja arvatud /arudino /. Redigeerite faili boards.txt failis / arduino / asukohas, kuna kavatsete muuta jaotist ATMEGA328p (3.3V, 8 MHz).

Arduino IDE uuesti installimisel või värskendamisel (vastavalt sellele postitusele) võite redigeeritud faili boards.txt kaotada. See tähendab, et kui värskendate Arduino IDE -d, peate neid seadeid uuesti muutma, kui soovite luua teise sama eraldiseisva Arduino.

Kerige failis boards.txt alla või otsige sõna „Pro Mini”. Jaotise pealkiri on "pro.name = Arduino Pro või Pro Mini". Kerige alla alajaotiseni "pro.menu.cpu.8MHzatmega328 = ATmega328P (3,3 V, 8 MHz)".

Otsige rida "pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _"

Muutke seaded xFE -ks. (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE).

Salvesta ja välju.

Bootloaderi põletamine

Kui olete seda teinud, saate järgida Interneti -teenuse pakkuja juhendi jaotist „Juhised” 1. – 5.

Mõned asjad selgitamiseks:

  • Kui laadite üles visandi "Arduino kui Interneti -teenuse pakkuja", peate veenduma, et valitud on õige COM -port ja protsessor.

    Sel juhul tähendab see, et olete valinud oma Arduino COM-pordi menüüs Tööriistad-> Port: COM X (Arduino Uno) ja plaat on Arduio Uno

  • Valige õige programmeerija: Interneti-teenuse pakkujana valige Tööriistad-> Programmeerija-> Arduino.

    EI ArduinoISP ega ArduinoISP.org

  • Enne alglaaduri põletamist vahetage plaat "Pro või Pro Mini" ja protsessor asendiks "ATMEGA328p (3,3 V, 8 MHz)".

    Te ei näe protsessori sektsiooni enne, kui valite õige plaaditüübi

Põletage alglaadur eraldiseisvale Arduinole ENNE kui proovite sellele visandeid kirjutada.

Visandi üleslaadimine

See on väga oluline. Nüüd saate programmeerida kas Arduino: Uno ja Standalone. Kui te ei lae üles õigesse seadmesse, peate ülaltoodud jaotist korrata ja Arduino ISO -programmina Uno -le ümber kirjutama.

Visandi üleslaadimisel klõpsake kindlasti nuppu Tööriistad -> Laadi üles programmeerija abil VÕI klõpsake Ctrl+Tõstuklahv+U. Võite hoida all ka tõstuklahvi ja klõpsata nooleikoonil, kuid ärge klõpsake nooleikooni ilma tõstuklahvi all hoidmata.

Tavalised tõrkeotsingu näpunäited

  • Lülitage tõrkeotsinguks sisse paljusõnaline väljund.
  • "Seadme allkiri on kõik 0!" [See juhtub väga tõenäoliselt.]

    • vaadake jaotist ISP juhtmestik. Kas olete eraldiseisva Arduino juhtme valesti ühendanud või pole see sisse lülitatud.
    • Veenduge, et olete valinud õige COM -pordi ja plaadi / protsessori. Kui laadite alglaadurit, peate veenduma, et põletate sellel Pro Mini 3.3V 8 MHz alglaadurit, vastasel juhul ei tööta kaitsmed õigesti.
  • "Olen toimetanud faili boards.txt, kuid ei näe muudatusi"

    Veenduge, et olete muutnud õiget boards.txt -faili. Proovige Arduino IDE -d värskendada, kui muudatused ei tööta, või eemaldage ajutiselt oma / riistvara / kausta muud kaustad

  • "Ma ei leia board.txt -i mini -sektsiooni!"

    Te ei otsi õiget faili boards.txt. Kontrollige kausta Arduino // hardware/arduino/

4. samm: jadaühendus

4) Jälgige eraldiseisvat seadet jadaühenduse kaudu

Seda saate tõesti teha kahe meetodi abil, nii et kui teil pole isegi FTDI kaablit / katkestusplaati, pole see maailma lõpp. Ja pidage meeles, et eraldiseisvasse Arduinosse üles laaditud visandil peavad olema lugemiseks Serial.print avaldused: kui te seda programmi ei kirjutanud, ei näe te midagi!

Kui teil pole FTDI -kaablit

Pärast alglaaduri põletamist ja soovitud programmi kirjutamist saate (väga hoolikalt ja meeles pidades, millises suunas see tagasi läheb) ATMEGA328 DIP kiibi Arduino Uno -st eemaldada. Soovitan selleks kasutada lameda peaga.

Saate ühendada eraldiseisva Arduino RX Uno RX -iga ja TX -i TX -iga. Jah, tavaliselt on see vastupidi, kuid võite mõelda Unole kui teabe edastamisele IDE jadamonitorile. Sellepärast ei ühenda te sel juhul RX -i TX -ga ja TX ro RX -iga. Kui käivitate oma programmi, veenduge, et olete valinud Arduino Uno COM -pordi ja avage jadamont. Näete eraldiseisvat Arduino jadaväljundit.

(See lahendus krediteeritakse siin Robin2 -le.)

Kui teil on FTDI -kaabel / -plaat

(Ma kasutan Sparkfuni FTDI -plaati, mille olen tagaküljel oleva jootmispadja abil muundanud 3,3 V -ks)

Lihtsalt ühendage eraldusplaadi GND eraldiseisva Arduino maaga ja ühendage purunemisplaadi RX Arduino TX -ga ja TX RX -iga. (Kui jälgite JUST seeriat ja ei kirjuta midagi tagasi, võite lihtsalt ühendada leivalaua RX Arduino TX -iga).

Pidage meeles, et sel hetkel on teil võimalus eraldiseisev Arduino toita Uno või FTDI -kaabli kaudu. Ärge ühendage mõlemat toiteallikat korraga! Pange tähele, et peate muutma COM -porti, kuna see erineb Arduino Uno COM -portist.

Tavalised tõrkeotsingu näpunäited

  • "Ma ei näe midagi!"

    • Kontrollige, kas õige COM -port on lubatud.
    • Kontrollige, kas teil on uusimad FTDI draiverid.
    • KINDLUSTAGE, ET PÕHJUS ON ÜHENDATUD.
  • "Kõik, mida ma näen, on prügiväljund seeriamonitoris!"

    • Saate midagi, mis on hea märk.
    • Kontrollige siiski FTDI -plaadi pinget.
    • Iseseisev Arduino väljastab oma TX -le 3,3 V ja FTDI -plaat ei pruugi seda vastu võtta, kui see ootab 5 v.
    • Kontrollige edastuskiirust.
    • Veenduge, et maandus on ühendatud ja ühendatud on ainult üks toiteallikas! (St ärge lülitage Uno AND FTDI plaadilt sisse eraldi Arduino toiteallikat.

Soovitan: