INHOUDSOPGAWE:

Selfgemaakte Arduino-bord: 8 stappe
Selfgemaakte Arduino-bord: 8 stappe

Video: Selfgemaakte Arduino-bord: 8 stappe

Video: Selfgemaakte Arduino-bord: 8 stappe
Video: A possible solution for "error occurred while uploading the sketch" on your Arduino 2024, Julie
Anonim
Selfgemaakte Arduino-bord
Selfgemaakte Arduino-bord

Deur u eie Arduino-bord te ontwerp, leer u meer oor nuwe komponente en elektroniese stroombane, insluitend gevorderde onderwerpe soos kragtoevoer, tydsberekening en die gebruik van ATmega IC (Integrated Circuit).

Dit sal u in die toekoms help met die skep van u eie projekte soos weerstasie, tuisautomatiseringsskerms, ens.

Die voordeel van die selfgemaakte Arduino is dat dit 'n lae energieverbruik het en verseker dat 'n projek lank op 'n battery kan werk.

Boonop kan u die bord uitbrei deur digitale of analoge poortuitbreiding of 'n paar kommunikasiemodules by te voeg.

Voorrade

Die hardeware

Om 'n minimalistiese Arduino te bou, benodig u die volgende hardeware:

1x ATmega328P-PU mikrokontroller met Arduino-laaiprogram

1x 7805 lineêre spanningsreguleerder (5v uitset, maksimum ingang 35v)

1x broodbord (ek gebruik 830 -penbord)

Verskeie verbindingsdrade

1x 16 MHz kristal ossillator

1x 28 -pins yskas

1x 1 μF, 25 V elektrolitiese kondensator

1x 100 μF, 25 V elektrolitiese kondensator

2x 22 pF, 50 V keramiek kondensators

2x 100 nF, 50 V keramiek kapasitors

2x 330 Ohm weerstande (R1 en R2)

1x 10 kOhm weerstand (R3)

2x LED's van u keuse (LED1 en LED2)

1x drukknop

Opsioneel 2x 6-pen kop en 3x 8-pen kop

1x PP3-tipe battery snap

1x 9 V PP3-tipe battery

1x FTDI programmeringsadapter

Stap 1: 7805 Lineêre spanningsreguleerder

7805 Lineêre spanningsreguleerder
7805 Lineêre spanningsreguleerder
7805 Lineêre spanningsreguleerder
7805 Lineêre spanningsreguleerder
7805 Lineêre spanningsreguleerder
7805 Lineêre spanningsreguleerder

'N Lineêre spanningsreguleerder bevat 'n eenvoudige stroombaan wat een spanning na 'n ander omskakel. Die 7805-reguleerder kan 'n spanning tussen 7 en 30 volt na 'n vaste 5 volt omskakel, met 'n stroom tot 1 ampère, wat perfek is vir ons Arduino-bord.

Ons begin met die skep van die kragtoevoerstroombaan met 'n 7805 spanningsreguleerder in TO-220-vorm en twee kapasitors met 100 μF elk.

As u na die voorkant van die 7805 -chip kyk - die pen aan die linkerkant is vir die ingangsspanning, die middelste pen kan met GND verbind word, en die regterpen is die 5 V -uitsetverbinding. Ek sou aanbeveel om 'n koellichaam te plaas, want as die stroombaan 'n maksimum van 1 amp stroom bereik, sal die 7805 -chip baie warm wees (u kan u vingerpunt brand as u daaraan raak).

Plaas 'n 100 µF kondensator tussen die IN van die reguleerder en die grond en 'n 100 µF kondensator op die regter spoor tussen krag en die grond. U moet versigtig wees - die elektrolitiese kondensator is gepolariseer (die silwer strook op die kondensator dui die grondbeen aan) en moet presies volgens die skema geplaas word.

Voeg krag- en aarddrade by waar u spanningsreguleerder sal wees, en verbind elke spoor in die middel en aan die regterkant van die bord. Op hierdie manier het ons 'n 5 Volt -kragtoevoer vanaf die boonste en onderste relings van die broodbord. Boonop bevat ons 'n rooi LED wat brand as die krag aan is, sodat ons altyd kan sien wanneer ons bord aangeskakel is.

'N LED is 'n diode en laat slegs elektriese stroom in een rigting vloei. Elektrisiteit moet in die lang been en uit die kort been vloei. Die LED -katode het ook 'n effens afgeplatte kant, wat ooreenstem met die kort, negatiewe been van die LED.

Ons kring het 'n 5 volt -kragtoevoer en 'n rooi LED het 'n nominale waarde van 1,5 - 2 volt. Om die spanning te verminder, moet ons die weerstand in serie verbind met die LED wat die hoeveelheid elektrisiteit stroom wat beperk word om die vernietiging van die LED te voorkom. 'N Gedeelte van die spanning word deur die weerstand opgebruik, en slegs 'n geskikte deel daarvan word oor die LED toegepas. Steek die weerstand tussen die kort been van die LED en die ry met die swart draad aan die regterkant van die skyfie (GND).

Die rooi en swart drade links van die spanningsreguleerder is waar u kragtoevoer ingeprop sal word. Die rooi draad is vir die KRAG en die swart draad vir die grond (GND).

LET WEL: U kan slegs 'n kragtoevoer tussen 7-16V aansluit. As u laer is, kry u nie 5V uit u reguleerder nie, en spanning hoër as die 17V beskadig u chip. 'N 9V -battery, 9V DC -kragbron of 12V DC -kragbron is geskik.

En vir nog meer stroombane kan u 'n spanningsreguleerder met verstelbare spanning plaas. Op hierdie manier kan u 'n paar 3.3 V -sensors op die bord voeg of 'n 9 V DC -motor aanskakel.

Meer oor lineêre spanningsreguleerders -

www.instructables.com/id/Introduction-to-Linear-Voltage-Regulators

Stap 2: ATmega328P-PU mikrobeheerder

ATmega328P-PU mikrokontroleerder
ATmega328P-PU mikrokontroleerder
ATmega328P-PU mikrokontroleerder
ATmega328P-PU mikrokontroleerder
ATmega328P-PU mikrokontroleerder
ATmega328P-PU mikrokontroleerder

Om 'n Arduino op die broodbord te bou, benodig u 'n ATmega328P-PU mikrokontroleerder, wat die brein is van ons selfgemaakte Arduino-bord. Plaas dit soos aangedui in die skemas en wees versigtig - die bene kan breek as u dit in dwing, of u kan 'n 28 -pins IC -aansluiting gebruik. IC moet geplaas word met 'n maanvorm wat links van die broodbord gerig is (penne word van 1 tot 28 teen die kloksgewys genommer).

OPMERKING: Nie alle ATmega IC bevat die Arduino -laaiprogram nie (die sagteware waarmee dit sketse wat vir 'n Arduino geskryf is, kan interpreteer). As u op soek is na 'n mikrobeheerder vir u selfgemaakte Arduino, moet u een kies wat reeds die selflaaiprogram bevat.

Hier is 'n bietjie mikrobeheerderteorie

'N Mikrokontroleerder is 'n klein rekenaar met 'n verwerker wat instruksies uitvoer. Dit het verskillende soorte geheue om data en instruksies uit ons program te bewaar (skets); ATmega328P-PU het drie tipes geheue: 32 kB ISP (in-stelsel programmering) flitsgeheue waar sketse gestoor word, 1 kB EEPROM (elektries uitwisbare programmeerbare leesalleen geheue) vir langtermyn data stoor en 2 kB SRAM (statiese ewekansige geheue)) vir die stoor van veranderlikes wanneer 'n skets aan die gang is.

LET WEL: Dit is belangrik om te weet dat data in die flitsgeheue en EEPROM behou word wanneer die krag na die mikrobeheerder verwyder word.

Die mikrobeheerder het 13 digitale invoer/afvoer (GPIO) lyne vir algemene doeleindes en ses 10-bis (waardes tussen 0 en 1023) analoog aan die digitale omskakelaar (ADC) GPIO-lyne om die spanning op 'n pen na 'n digitale waarde om te skakel. Daar is drie timers met twee 8-bit timers met waardes tussen 0 en 255, en een 16-bit timer met waardes tussen 0 en 65535, wat gebruik word deur die delay () funksie in 'n skets of deur pulswydte modulasie (PWM).

Daar is vyf kragbesparingsmetodes wat deur sagteware gekies kan word, en die mikrobeheerder werk tussen 1.8V en 5.5V. U kan die prent as verwysing gebruik vir die penuitleg van die ATmega328P-PU.

Daar is drie groepe hawens: PB, PC en PD met onderskeidelik 8, 7 en 8 penne, plus twee aardpenne (GND), 'n 5V -pen (VCC) met voedingsspanning (AVCC) en analoog verwysingspanning (AREF)) penne vir die analoog-na-digitale omskakelaar (ADC).

Stap 3: ATmega328P-PU-verbinding

ATmega328P-PU-verbinding
ATmega328P-PU-verbinding

Nadat u IC geplaas het, koppel penne 7, 20 en 21 van die ATmega aan die positiewe kragrail op die broodbord, en penne 8 en 23 aan die negatiewe kragrails, gebruik jumperdrade om die positiewe en GND -kragrails aan weerskante van die bord, soos in die figuur getoon.

Speld 7 - Vcc - Digitale toevoerspanning

Speld 8 - GND

Speld 22 - GND

Speld 21 - AREF - Analoog verwysingspen vir ADC

Speld 20 - AVcc - Voedingsspanning vir die ADC -omskakelaar. Moet aan die krag gekoppel word as ADC nie gebruik word soos in ons voorbeeld nie. As u dit in die toekoms wil gebruik, moet dit deur 'n laepassfilter aangedryf word (om geraas te verminder).

Plaas daarna 'n veertienrigtingkoppen-dit sal soortgelyk wees aan die Arduino GPIO's.

Stap 4: knoppie Herstel

Herstelknoppie
Herstelknoppie
Herstelknoppie
Herstelknoppie

Voeg die klein aanraakskakelaar by sodat u die Arduino kan herstel en die chip voorberei vir die oplaai van 'n nuwe program. As u hierdie skakelaar kort druk, sal die chip teruggestel word.

Ons plaas die reset -knoppie in ons stroombaan soos in die figuur getoon. As ons daarop druk, word die elektriese stroombaan tot die GND verkort deur 'n 1kOhm -weerstand te omseil en die ATmega -pen 1 aan die GND te koppel. Voeg dan 'n draad van die linker onderbeen van die skakelaar by die RESET -pen van die ATmega -chip en 'n draad van die linker boonste been van die skakelaar na die grond.

Voeg ook 'n optrekweerstand van 10 k Ohm by tot +5V van die RESET-pen om te voorkom dat die chip tydens normale werking herstel. Hierdie weerstand sal aan die 5 volt -kragtoevoer gekoppel word en Pin 1 tot 5 volt optrek. En as u Pin 1 sonder 'n weerstand aan 0V koppel, sal die chip weer begin. Op die herlaai-mikrobeheerder, kyk of 'n nuwe program opgelaai word (as die program nie opstuur nie, word die laaste program gestuur).

Die weerstand het 'n vierkleurige streep. Lees Brown = 1, Swart = 0, Oranje = 3 gee ons die getal 103. Die weerstand in ohm begin '10' met 3 nulle na - 10, 000 ohm of 10 kilo ohm, en die goue streep is die toleransie (5 %).

Om ons stroombaan op te gradeer - kan ons 'ontkoppel' -kondensator' plaas. Plaas 'n 100 nF (nano Farad) keramiek kondensator. Dit is 'n klein skyf met twee drade met '104 merk' en hierdie tipe kondensator is nie gepolariseer nie en kan in enige rigting geplaas word.

Hierdie 'ontkoppeling' -kondensator maak elektriese spykers glad, sodat die herlaai -sein wat na pen 1 gestuur word, betroubaar opgespoor word. Die syfers 104 toon sy kapasiteit in pico Farad in wetenskaplike notasie. Die laaste figuur '4' vertel ons hoeveel nulle ons moet byvoeg. Die kapasitansie begin '10' en gaan dan voort met nog 4 nulle - 100 000 pico Farads, en aangesien 1000 pico Farads 1 nano Farads is, is daar 100 nano Farads (104).

Steek die kapasitor tussen die boonste linkerbeen van die chip (pen 1, linksom van die halfmaanvorm)

Stap 5: Kristal ossillator

Kristal ossillator
Kristal ossillator
Kristal ossillator
Kristal ossillator

Nou maak ons die horlosie vir die IC. Dit is 'n 16 Mhz kwarts en twee keramiek kondensators 22pF (piko Farad) elk. Die kristal ossillator skep 'n elektriese sein met 'n baie akkurate frekwensie. In hierdie geval is die frekwensie 16 MHz, wat beteken dat die mikrobeheerder 16 miljoen verwerkingsinstruksies per sekonde kan uitvoer.

Die 16 MHz -kristal (figuur) laat die Arduino toe om tyd te bereken, en die kondensators dien om die voedingspanning gelyk te maak.

Die kwarts kristalbene is dieselfde: u kan dit nie agteruit dra nie. Koppel die een been van die kristal aan pen 9 op die ATmega -chip en die ander been aan pen 10. Koppel die bene van een van die 22 pF -skyfkapasitors aan pen 9 en GND, en die ander skyfkapasitor aan pen 10 en GND, soos getoon in Figuur.

Let wel: skyfkapasitors is nie-gepolariseer en kan op enige manier ingevoeg word.

Dit is die moeite werd om te noem dat die draadlengtes tussen die 22pF -kapasitors ewe lank moet wees en so na as moontlik aan die kontroleerder moet wees om interaksies met ander dele van die stroombane te vermy.

Stap 6: Voeg LED by Pin 13

Voeg LED by Pin 13
Voeg LED by Pin 13
Voeg LED by Pin 13
Voeg LED by Pin 13
Voeg LED by Pin 13
Voeg LED by Pin 13

Nou voeg ons die groen LED (digitale pen 13 op Arduino) by.

Plaas 'n LED's lang been in die ry onder die rooi draad (aan die regterkant van die chip - krag, of 5 volt) en die kort been in die eerste leë ry onder die mikrobeheerder.

Hierdie weerstand van 330 Ohm word in serie met die LED gekoppel, wat die hoeveelheid elektrisiteit beperk om die vernietiging van die LED's te voorkom.

Steek die weerstand tussen die kort been van die LED en die ry met die swart draad aan die regterkant van die chip (GND of 0Volts)

Al die analoog-, digitale en ander penne wat op die normale Arduino -bord beskikbaar is, is ook beskikbaar in ons broodbordweergawe. U kan die ATmega -skematiese tabel en pen -tabel as verwysing gebruik.

Stap 7: USB na seriële aansluiting

USB na seriële aansluiting
USB na seriële aansluiting
USB na seriële aansluiting
USB na seriële aansluiting
USB na seriële aansluiting
USB na seriële aansluiting
USB na seriële aansluiting
USB na seriële aansluiting

Die ATmega 328P-PU mikrokontroleerder bied drie kommunikasie-modusse: 'n seriële programmeerbare USART (universele sinchrone en asynchrone ontvanger-sender), 'n SPI (Serial Peripheral Interface) seriële poort en 'n tweedraads seriële koppelvlak. USART neem grepe data en stuur die individuele stukkies opeenvolgend oor, wat transmissie (TX) en ontvang (RX) kommunikasie lyne vereis. SPI gebruik vier kommunikasie lyne: master-out slave-in (MOSI), master-in slave-out (MISO) en seriële klok (SCK) met 'n aparte slave select (SS) lyn vir elke toestel. Die I2C -kommunikasie Two Wire Interface (TWI) -bus gebruik twee seinlyne: seriële data (SDA) en seriële klok (SCL).

Om ons bord met die Arduino IDE aan te sluit vir die aflaai van 'n skets, gebruik ons 'n USB -na -seriële UART -koppelvlak, soos die FT232R FTDI.

As u 'n FTDI -kabel koop, moet u seker maak dat dit die 5V -model is, want die 3.3V -model sal nie behoorlik werk nie. Hierdie kabel (in figuur getoon) het 'n USB -aansluiting aan die een kant en 'n aansluiting met ses drade aan die ander kant.

As u die kabel aansluit, moet u seker maak dat die kant van die aansluiting met die swart draad aansluit by die GND -pen op die penne van die broodbord. Sodra die kabel gekoppel is, verskaf dit ook stroom aan die stroombaan, net soos 'n normale Arduino -bord sou doen.

Dan sal ons ons FTDI verbind met ons selfgemaakte Arduino-bord; As verwysing kan u die tabel en die skematiese gebruik.

'N Elektrolitiese kondensator van 0.1μF is verbind tussen die DTR (Data Terminal Ready) -pen op die USB na die seriële UART -koppelvlak en die mikrobeheerder Reset, wat die mikrobeheerder herstel om met die USB na die seriële koppelvlak te sinchroniseer.

OPMERKING: 'n Slim punt is dat die mikrobeheerder -RX -pen gekoppel moet wees aan die TX van die USB na die seriële adapter en dieselfde met die TX van die een toestel na die RX van die ander.

Die CTS (Clear to Send) -pen op die USB na die seriële UART -koppelvlak is nie aan die mikrobeheerder gekoppel nie.

Om 'n skets na die mikrobeheerder in die Arduino IDE af te laai, kies die relevante kommunikasie (COM) poort in die menu Tools Gereedskap ➤ Poort en kies Arduino/Genuino Uno in die menu Tools Gereedskap. Die skets word in die Arduino IDE saamgestel en dan met die USB na die mikrokontroleerder na die seriële UART -koppelvlak gelaai. As die skets afgelaai word, flikker die groen en rooi LED's van die USB-na-seriële UART-koppelvlak TXD en RXD.

Die USB na die seriële UART -koppelvlak kan verwyder word en 'n 5V -kragtoevoer kan aan die mikrobeheerder gekoppel word. 'N LED en 220kΩ weerstand is gekoppel aan die mikrobeheerderpen 19, gelykstaande aan Arduino -pen 13, om die knipskets uit te voer.

Stap 8: Laai Sketch op of installeer die Bootloader

Laai Skets op of installeer die selflaaiprogram
Laai Skets op of installeer die selflaaiprogram
Laai Skets op of installeer die selflaaiprogram
Laai Skets op of installeer die selflaaiprogram

As u nie 'n USB-na-reeksomskakelaar het nie-kan u 'n ander Arduino (in my geval Arduino UNO) gebruik om 'n skets of selflaaiprogram na die selfgemaakte bord te laai.

Die ATmega238P-PU mikrobeheerders benodig 'n selflaaiprogram vir die oplaai en uitvoer van sketse van die Arduino IDE; As die mikrobeheerder krag ontvang, bepaal die selflaaiprogram of 'n nuwe skets opgelaai word, en laai die skets dan in die geheue van die mikrobeheerder. As u die ATmega328P-PU sonder 'n selflaaiprogram het, kan u die selflaaiprogram laai met behulp van SPI-kommunikasie tussen twee borde.

Hier is hoe u 'n selflaaiprogram laai na die ATmega IC.

Laat ons eers begin met die konfigurasie van ons Arduino UNO as ISP, dit word gedoen omdat u wil hê dat die Arduino UNO die skets moet oplaai na die ATmega IC en nie self nie.

Stap 1: Stel ons Arduino UNO op as ISP

Moenie die ATmega IC verbind terwyl die onderstaande oplaai uitgevoer word nie.

  • Koppel die arduino aan op 'n rekenaar
  • Maak die arduino IDE oop
  • Kies die toepaslike bord (gereedskap> bord> Arduino UNO) en COM -poort (gereedskap> poort> COM?)
  • Open> Voorbeelde> ArduinoISP
  • Laai Skets op

Daarna kan u u eie bord aan die Arduino UNO koppel deur die stroombaan te volg, soos op die skema aangedui. In hierdie stadium hoef u nie u eie bord te voorsien nie, aangesien die Arduino die nodige krag sou voorsien.

Stap 2: Laai 'n skets of selflaaiprogram op

Met alles verbind, maak die IDE oop uit die gids wat u pas geskep het (die kopie).

  • Kies Arduino328 uit Tools> Board
  • Kies Arduino as ISP by Tools> Programmer
  • Kies Brand Bootloader

Na 'n suksesvolle verbranding kry u 'n "klaargemaakte laaiprogram".

Die selflaaiprogram word nou op die mikrobeheerder gelaai, wat gereed is om 'n skets te ontvang nadat die COM -poort in die menu Tools Gereedskap ➤ Poort verander is.

Aanbeveel: