Talaan ng mga Nilalaman:

Gumawa ng Sariling Arduino Board: 8 Mga Hakbang
Gumawa ng Sariling Arduino Board: 8 Mga Hakbang

Video: Gumawa ng Sariling Arduino Board: 8 Mga Hakbang

Video: Gumawa ng Sariling Arduino Board: 8 Mga Hakbang
Video: МАСТЕР-КЛАСС по Arduino | Полный семинар по программированию за 90 минут! 2024, Hulyo
Anonim
Sariling Lupon ng Arduino
Sariling Lupon ng Arduino

Sa pamamagitan ng pagdidisenyo ng iyong sariling Arduino-Board malalaman mo ang tungkol sa ilang mga bagong bahagi at mga elektronikong circuit, kasama ang ilang mga advanced na paksa tulad ng power supply, timing circuit at paggamit ng ATmega IC (Integrated Circuit).

Tutulungan ka nito sa hinaharap sa paglikha ng iyong sariling mga proyekto tulad ng istasyon ng panahon, mga kalasag na awtomatiko sa bahay atbp.

Ang bentahe ng self-made Arduino ay mayroon itong isang mababang pagkonsumo ng enerhiya at tinitiyak na ang isang proyekto ay maaaring tumakbo nang mahabang panahon sa isang baterya.

Bilang karagdagan maaari mong palawakin ang board sa pamamagitan ng pagdaragdag ng digital o analog port expansion o ilang mga module ng komunikasyon.

Mga gamit

Ang Hardware

Upang bumuo ng isang minimalist na Arduino, kakailanganin mo ang sumusunod na hardware:

1x ATmega328P-PU microcontroller na may Arduino bootloader

1x 7805 linear voltage regulator (5v output, 35v max input)

1x breadboard (Gumagamit ako ng 830 pin board)

Iba't ibang mga wires na nagkokonekta

1x 16 MHz crystal oscillator

1x 28 pin ic socket

1x 1 μF, 25 V electrolytic capacitor

1x100 μF, 25 V electrolytic capacitor

2x 22 pF, 50 V ceramic capacitors

2x 100 nF, 50 V ceramic capacitors

2x 330 Ohms resistors (R1 at R2)

1x 10 kOhm risistor (R3)

2x LEDs na iyong pinili (LED1 at LED2)

1x push button

Opsyonal na 2x 6-pin header at 3x 8-pin header

1x PP3-type na snap ng baterya

1x 9 V na uri ng PP3 na baterya

1x FTDI Programming adapter

Hakbang 1: 7805 Linear Voltage Regulator

7805 Linear Voltage Regulator
7805 Linear Voltage Regulator
7805 Linear Voltage Regulator
7805 Linear Voltage Regulator
7805 Linear Voltage Regulator
7805 Linear Voltage Regulator

Ang isang linear voltage regulator ay naglalaman ng isang simpleng circuit na nagko-convert ng isang boltahe sa isa pa. Ang 7805 regulator ay maaaring mag-convert ng isang boltahe sa pagitan ng 7 at 30 volts sa isang nakapirming 5 volts, na may kasalukuyang hanggang sa 1 amp, na perpekto para sa aming Arduino-board.

Magsisimula kami sa paglikha ng circuit ng suplay ng kuryente na naglalaman ng isang 7805 boltahe regulator sa TO-220 form at dalawang capacitor na may 100 μF bawat isa.

Kapag tumitingin ka sa harap ng 7805 chip - ang pin sa kaliwa ay para sa input boltahe, ang center pin ay kumokonekta sa GND at ang kanang-kamay na pin ay ang koneksyon ng 5 V output. Inirerekumenda kong maglagay ng isang heat sink, dahil kapag ang circuit ay nakakakuha hanggang sa maximum na 1 amp ng kasalukuyang 7805 chip ay magiging tahimik na mainit (maaari mong sunugin ang iyong daliri tip kapag hinawakan mo ito).

Maglagay ng isang 100 μF capacitor sa pagitan ng IN ng regulator at ng lupa at a100 μF capacitor sa kanang rail sa pagitan ng lakas at ng lupa. Dapat kang mag-ingat - ang electrolytic capacitor ay polarized (ang pilak na strip sa capacitor ay nangangahulugang ground leg) at dapat na mailagay nang eksakto ayon sa eskematiko.

Magdagdag ng mga wire ng kuryente at lupa para sa kung nasaan ang iyong regulator ng boltahe, na nagkakabit ng bawat tren sa gitna at sa kanang bahagi ng board. Sa ganitong paraan mayroon kaming 5 Volt supply ng kuryente mula sa tuktok at ilalim na daang riles ng breadboard. Bukod pa rito ay magsasama kami ng isang pulang LED na naiilawan kapag nakabukas ang kuryente, sa ganitong paraan palagi nating makikita kapag pinapagana ang aming board.

Ang isang LED ay isang diode at pinapayagan lamang nitong dumaloy ang kasalukuyang elektrisidad sa isang direksyon. Ang kuryente ay dapat dumaloy sa mahabang binti at palabas ng maikling binti. Ang LEDs cathode ay mayroon ding isang bahagyang pipi, na tumutugma sa maikli, negatibong binti ng LED.

Ang aming circuit ay mayroong 5 volts power supply at ang isang pulang LED ay na-rate sa paligid ng 1.5 - 2 volts. Upang mabawasan ang boltahe dapat nating ikonekta ang risistor sa serye sa LED na naglilimita sa dami ng kuryente na dumadaloy upang maiwasan ang pagkawasak ng LED. Ang ilan sa boltahe ay gagamitin ng risistor at isang angkop na bahagi lamang nito ang inilalapat sa LED. Ipasok ang risistor sa pagitan ng maikling binti ng LED at ang hilera na naglalaman ng itim na kawad sa kanang bahagi ng maliit na tilad (GND).

Ang pula at itim na mga wire sa kaliwa ng regulator ng boltahe ay kung saan mai-plug in ang iyong supply ng kuryente. Ang pulang kawad ay para sa POWER at ang itim na kawad ay para sa lupa (GND).

TANDAAN: Maaari mo lamang maglakip ng isang supply ng kuryente na nasa pagitan ng 7-16V. Anumang mas mababa at hindi ka makakakuha ng 5V mula sa iyong regulator, at ang boltahe na mas mataas sa 17 V ay makapinsala sa iyong maliit na tilad. Ang isang 9V na baterya, 9V DC power supply, o 12V DC power supply ay angkop.

At para sa ilang mas paunang mga circuit ay maaari kang maglagay ng boltahe regulator na may naaayos na boltahe. Sa ganitong paraan maaari kang magdagdag ng ilang mga 3.3 V sensor sa board o paganahin ang isang 9 V DC motor.

Dagdag pa tungkol sa mga linear voltage regulator -

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

Hakbang 2: ATmega328P-PU Microcontroller

ATmega328P-PU Microcontroller
ATmega328P-PU Microcontroller
ATmega328P-PU Microcontroller
ATmega328P-PU Microcontroller
ATmega328P-PU Microcontroller
ATmega328P-PU Microcontroller

Upang bumuo ng isang Arduino sa breadboard kailangan mo ng isang ATmega328P-PU microcontroller na siyang utak ng aming sariling board na Arduino. Ilagay ito tulad ng ipinapakita sa mga iskema at mag-ingat - maaaring masira ang mga binti kung pipilitin mo sila, o maaari mong gamitin ang 28 pin IC socket. Ang IC ay dapat na mailagay na may isang hugis ng buwan na gupit na nakatuon sa kaliwa ng breadboard (ang mga pin ay binibilang mula 1 hanggang 28 nang pabaliktad).

TANDAAN: Hindi lahat ng ATmega IC ay naglalaman ng Arduino bootloader (ang software na pinapayagan itong bigyang kahulugan ang mga sketch na nakasulat para sa isang Arduino). Kapag naghahanap ng isang microcontroller para sa iyong sariling Arduino, tiyaking pumili ng isa na kasama na ang bootloader.

Narito ang isang piraso ng teorya ng microcontroller

Ang isang microcontroller ay isang maliit na computer na may isang processor na nagpapatupad ng mga tagubilin. Mayroon itong iba't ibang mga uri ng memorya upang humawak ng data at mga tagubilin mula sa aming programa (sketch); Ang ATmega328P-PU ay may tatlong uri ng memorya: 32kB ISP (in-system programming) flash memory kung saan nakaimbak ang mga sketch, 1kB EEPROM (electrically erasable programmable read-only memory) para sa pangmatagalang imbakan ng data at 2kB SRAM (static random-access memory) para sa pagtatago ng mga variable kapag tumatakbo ang isang sketch.

TANDAAN: Mahalagang malaman na ang data sa flash memory at EEPROM ay mananatili kapag ang kapangyarihan sa microcontroller ay tinanggal.

Ang microcontroller ay may 13 digital na pangkalahatang-layunin na input / output (GPIO) na mga linya at anim na 10-bit (mga halaga sa pagitan ng 0 at 1023) na analogue sa mga digital converter (ADC) na mga linya ng GPIO upang i-convert ang boltahe sa isang pin sa isang digital na halaga. Mayroong tatlong mga timer na may dalawang 8-bit timer na may mga halaga sa pagitan ng 0 at 255, at isang 16-bit timer na may mga halaga sa pagitan ng 0 at 65535, na ginagamit ng pagpapaandar () na pagpapaandar sa isang sketch o sa pamamagitan ng modulate ng lapad ng pulso (PWM).

Mayroong limang mapipiliang mga mode ng pag-save ng kuryente ng software at ang microcontroller ay nagpapatakbo sa pagitan ng 1.8V at 5.5V. Maaari mong gamitin ang larawan bilang isang sanggunian para sa layout ng pin ng ATmega328P-PU.

Mayroong tatlong mga grupo ng mga port: PB, PC, at PD na may 8, 7, at 8 pin ayon sa pagkakabanggit, kasama ang dalawang ground (GND) na mga pin, isang 5V pin (VCC) na may supply voltage (AVCC), at analog reference voltage (AREF) mga pin para sa analog-to-digital converter (ADC).

Hakbang 3: ATmega328P-PU Interconnection

ATmega328P-PU Pakikipag-ugnay
ATmega328P-PU Pakikipag-ugnay

Matapos mailagay ang IC, ikonekta ang mga pin na 7, 20, at 21 ng ATmega sa positibong powerpower sa breadboard, at mga pin na 8 at 23 sa mga negatibong daang-bakal, gumamit ng mga wire ng jumper upang ikonekta ang positibo at mga riles ng kuryente ng GND sa magkabilang panig ng board, tulad ng ipinakita sa Larawan.

Pin 7 - Vcc - Boltahe ng Digital Supply

Pin 8 - GND

Pin 22 - GND

Pin 21 - AREF - Analog reference pin para sa ADC

Pin 20 - AVcc - Supply boltahe para sa converter ng ADC. Kailangang konektado sa kapangyarihan kung hindi ginagamit ang ADC tulad ng sa aming halimbawa. Kung nais mong gamitin ito sa hinaharap, dapat itong pinalakas sa pamamagitan ng isang low-pass filter (upang mabawasan ang ingay).

Matapos ang lugar na iyon ang ilang labing-apat na paraan ng pin ng header - magiging katulad ito ng mga Arduino GPIO.

Hakbang 4: I-reset ang Button

I-reset ang Button
I-reset ang Button
I-reset ang Button
I-reset ang Button

Idagdag ang maliit na tactile switch upang ma-reset mo ang Arduino at ihanda ang maliit na tilad para sa pag-upload ng isang bagong programa. Ang isang mabilis na pansamantalang pagpindot ng switch na ito ay i-reset ang maliit na tilad.

Ipapasok namin ang pindutan ng pag-reset sa aming circuit tulad ng ipinakita sa figure, kapag pinindot namin ito ang electric circuit ay paikliin sa GND na bypassing isang 1kOhm risistor at ikonekta ang ATmega Pin 1 sa GND. Pagkatapos, magdagdag ng isang kawad mula sa ibabang kaliwang binti ng switch sa RESET pin ng ATmega chip at isang kawad mula sa itaas na kaliwang binti ng switch papunta sa lupa.

Bilang karagdagan, magdagdag ng isang 10 k Ohm pull-up risistor sa + 5V mula sa RESET pin upang maiwasan ang pag-reset ng maliit na tilad sa panahon ng normal na operasyon. Ang risistor na ito ay konektado sa 5 volt power supply, 'paghila up' Pin 1 hanggang 5 volts. At kapag ikinonekta mo ang Pin 1 hanggang 0V nang walang risistor, ang chip ay magre-reboot. Sa pag-reboot ng microcontroller hanapin ang isang bagong programa na nai-upload (sa power-up kung walang bagong naipadala, pinapatakbo nito ang huling program na ipinadala).

Ang risistor ay may apat na kulay na guhit. Ang pagbabasa ng Brown = 1, Itim = 0, Orange = 3 ay nagbibigay sa atin ng bilang 103. Ang paglaban sa Ohms ay nagsisimula sa '10' na may 3 zero pagkatapos - 10, 000 Ohms o 10 kilo Ohms, at ang guhit na ginto ay ang pagpapaubaya (5%).

Upang mai-upgrade ang aming circuit - maaari naming ilagay ang 'decoupling' capacitor`. Maglagay ng 100 nF (nano Farad) ceramic capacitor. Ito ay isang maliit na disc na may dalawang mga wire na may '104 pagmamarka' at ang ganitong uri ng kapasitor ay wala polarado at maaaring mailagay sa anumang orientation.

Ang capacitor ng 'decoupling' na ito ay nagpapakinis ng mga electric spike, kaya ang reboot signal na ipinadala sa Pin 1 ay mapagkakatiwalaang makita. Ang mga digit na 104 ay nagpapakita ng kapasidad nito sa pico Farad sa notasyong pang-agham. Ang huling figure na '4' ay nagsasabi sa amin kung gaano karaming mga zero ang idaragdag. Nagsisimula ang capacitance na '10' at pagkatapos ay nagpatuloy sa isang karagdagang 4 zeroes - 100, 000 pico Farads, at dahil ang 1000 pico Farads ay 1 nano Farads, mayroong 100 nano Farads (104).

Ipasok ang capacitor sa pagitan ng tuktok na kaliwang binti ng maliit na tilad (pin 1, anticlockwise mula sa hugis ng kalahating buwan)

Hakbang 5: Crystal Oscillator

Crystal Oscillator
Crystal Oscillator
Crystal Oscillator
Crystal Oscillator

Ngayon ay gagawin namin ang orasan para sa IC. Ito ay isang 16 Mhz quartz at dalawang ceramic capacitor 22pF (piko Farad) bawat isa. Lumilikha ang kristal oscillator ng isang de-koryenteng signal na may isang tumpak na dalas. Sa kasong ito, ang dalas ay 16 MHz, na nangangahulugang ang microcontroller ay maaaring magpatupad ng 16 milyong mga tagubilin sa processor bawat segundo.

Pinapayagan ng 16 MHz na kristal (pigura) ang Arduino upang makalkula ang oras, at ang mga capacitor ay nagsisilbi upang makinis ang supply boltahe.

Ang mga binti ng quartz na kristal ay pareho - hindi mo ma-wire ito paatras. Ikonekta ang isang binti ng kristal upang i-pin ang 9 sa ATmega chip, at ang isa pang binti ay i-pin 10. Ikonekta ang mga binti ng isa sa 22 pF disc capacitor sa pin 9 at GND, at iba pang disc capacitor sa pin 10 at GND, bilang ipinapakita sa Larawan.

Tandaan: ang mga disc capacitor ay hindi naka-polarize at maaaring ipasok sa anumang paraan.

Ito ay nagkakahalaga na banggitin, na ang mga haba ng kawad sa pagitan ng 22pF capacitors ay dapat na pantay ang haba at dapat na mas malapit hangga't maaari sa controller upang maiwasan ang mga pakikipag-ugnayan sa iba pang mga bahagi ng mga circuit.

Hakbang 6: Pagdaragdag ng LED sa Pin 13

Pagdaragdag ng LED sa Pin 13
Pagdaragdag ng LED sa Pin 13
Pagdaragdag ng LED sa Pin 13
Pagdaragdag ng LED sa Pin 13
Pagdaragdag ng LED sa Pin 13
Pagdaragdag ng LED sa Pin 13

Ngayon ay idaragdag namin ang berdeng LED (digital pin 13 sa Arduino).

Magpasok ng isang mahabang paa ng LED sa hilera sa ibaba ng pulang kawad (sa kanang bahagi ng maliit na tilad - kapangyarihan, o 5 Volts) at ang maikling binti sa unang walang laman na hilera sa ibaba ng microcontroller.

Ang 330 Ohm risistor na ito ay konektado sa serye ng LED, nililimitahan ang dami ng kuryente na dumadaloy upang maiwasan ang pagkasira ng LEDs.

Ipasok ang risistor sa pagitan ng maikling binti ng LED, at ang hilera na naglalaman ng itim na kawad sa kanang bahagi ng maliit na tilad (GND o 0Volts)

Ang lahat ng mga analog, digital, at iba pang mga pin na magagamit sa normal na Arduino board ay magagamit din sa aming bersyon ng breadboard. Maaari mong gamitin ang ATmega schematic at pin table bilang isang sanggunian.

Hakbang 7: USB sa Serial Connector

USB sa Serial Connector
USB sa Serial Connector
USB sa Serial Connector
USB sa Serial Connector
USB sa Serial Connector
USB sa Serial Connector
USB sa Serial Connector
USB sa Serial Connector

Nagbibigay ang ATmega 328P-PU microcontroller ng tatlong mga mode ng komunikasyon: isang serial na maipaprograma na USART (unibersal na kasabay at asynchronous na receiver-transmitter), isang SPI (Serial Peripheral Interface) na serial port, at isang two-wire serial interface. Ang USART ay kumukuha ng mga byte ng data at nagpapadala ng mga indibidwal na bit na sunud-sunod, na nangangailangan ng pagpapadala (TX) at makatanggap ng (RX) mga linya ng komunikasyon. Gumagamit ang SPI ng apat na linya ng komunikasyon: master-out slave-in (MOSI), master-in slave-out (MISO) at serial clock (SCK) na may magkakahiwalay na linya ng select ng SS (SS) para sa bawat aparato. Ang I2C komunikasyon Dalawang Wire Interface (TWI) bus ay gumagamit ng dalawang linya ng signal: serial data (SDA) at serial clock (SCL).

Upang ikonekta ang aming board sa PC gamit ang Arduino IDE para sa pag-download ng isang sketch, gagamitin namin ang isang USB sa serial UART interface tulad ng FT232R FTDI.

Kapag bumili ng isang FTDI cable siguraduhing ito ang modelo ng 5 V, dahil ang modelo ng 3.3 V ay hindi gagana nang maayos. Ang cable na ito (ipinapakita sa figure) ay may isang USB plug sa isang dulo at isang socket na may anim na mga wire sa kabilang panig.

Kapag ikinokonekta mo ang cable, tiyaking ang gilid ng socket na may itim na kawad ay kumokonekta sa GND pin sa mga header pin ng breadboard. Kapag nakakonekta ang cable, nagbibigay din ito ng kuryente sa circuit, tulad ng gagawin ng isang normal na board ng Arduino.

Pagkatapos ay ikonekta namin ang aming FTDI sa aming sariling Arduino-board; para sa sanggunian maaari mong gamitin ang talahanayan at ang eskematiko.

Ang isang 0.1μF electrolytic capacitor ay konektado sa pagitan ng DTR (Data Terminal Ready) na pin sa USB patungo sa serial UART interface at ang microcontroller Reset, na nagre-reset ng microcontroller upang maiugnay sa USB sa serial interface.

TANDAAN: Ang bahagi ng Oneclever ay ang microcontroller RX pin ay dapat na konektado sa TX ng USB sa Serial adapter at pareho sa TX ng isang aparato sa RX ng iba pa.

Ang CTS (Clear to Send) na pin sa USB sa serial UART interface ay hindi nakakonekta sa microcontroller.

Upang mag-download ng sketch sa microcontroller sa Arduino IDE mula sa Tools ➤ Port menu piliin ang nauugnay na port (COM) port at mula sa Tools ➤ Board menu piliin ang Arduino / Genuino Uno. Ang sketch ay naipon sa Arduino IDE at pagkatapos ay na-load sa microcontroller gamit ang USB sa serial UART interface. Kapag na-download ang sketch, ang berde at pula na mga LED ng USB-to-serial na UART interface TXD at RXD flicker.

Ang USB sa serial UART interface ay maaaring alisin at isang 5V power supply na konektado sa microcontroller. Ang isang LED at 220kΩ risistor ay konektado sa microcontroller pin 19, katumbas ng Arduino pin 13, upang patakbuhin ang blink sketch.

Hakbang 8: Pag-upload ng Sketch o Pag-install ng Bootloader

Pag-upload ng Sketch o Pag-install ng Bootloader
Pag-upload ng Sketch o Pag-install ng Bootloader
Pag-upload ng Sketch o Pag-install ng Bootloader
Pag-upload ng Sketch o Pag-install ng Bootloader

Kung wala kang isang USB sa serial converter - maaari kang gumamit ng isa pang Arduino (sa aking kaso Arduino UNO) upang mag-upload ng isang sketch o bootloader sa self-made board.

Ang mga microcontroller ng ATmega238P-PU ay nangangailangan ng isang bootloader para sa pag-upload at pagpapatakbo ng mga sketch mula sa Arduino IDE; kapag ang kapangyarihan ay inilapat sa microcontroller tinutukoy ng bootloader kung ang isang bagong sketch ay ina-upload, at pagkatapos ay nai-load ang sketch sa memorya ng microcontroller. Kung mayroon kang ATmega328P-PU nang walang bootloader, maaari mong i-upload ang bootloader gamit ang SPI na komunikasyon sa pagitan ng dalawang board.

Narito kung paano ka mag-upload ng isang bootloader sa ATmega IC.

Magsimula muna tayo sa pag-configure ng aming Arduino UNO bilang ISP, tapos na ito dahil nais mong i-upload ng Arduino UNO ang sketch sa ATmega IC at hindi mismo.

Hakbang 1: Pag-configure ng aming Arduino UNO bilang ISP

Huwag ikonekta ang ATmega IC habang tumatakbo ang upload sa ibaba.

  • I-plug ang arduino sa isang PC
  • Buksan ang arduino IDE
  • Piliin ang naaangkop na Board (Tools> Board> Arduino UNO) at COM Port (Tools> Port> COM?)
  • Buksan> Mga Halimbawa> ArduinoISP
  • Mag-upload ng Sketch

Pagkatapos nito maaari mong ikonekta ang iyong sariling Lupon sa Arduino UNO sa pamamagitan ng pagsunod sa circuit tulad ng ipinakita sa eskematiko. Sa yugtong ito hindi na kailangang magbigay ng kuryente sa iyong sariling board dahil ang Arduino ay magbibigay ng kinakailangang lakas.

Hakbang 2: Pag-upload ng isang Sketch o Bootloader

Sa lahat ng nakakonekta buksan ang IDE mula sa folder na iyong nilikha (ang kopya).

  • Piliin ang Arduino328 mula sa Mga Tool> Lupon
  • Piliin ang Arduino bilang ISP mula sa Mga Tool> Programmer
  • Piliin ang Burn Bootloader

Pagkatapos ng isang Matagumpay na pagkasunog makakakuha ka ng isang "Tapos na nasusunog na bootloader".

Ang bootloader ay na-load na ngayon sa microcontroller, na handa nang makatanggap ng isang sketch pagkatapos baguhin ang COM port sa menu ng Mga Tool ➤ Port.

Inirerekumendang: