Jump to content
ELFORUM - Forumul Electronistilor
TibiBzg

Arduino DIY

Recommended Posts

Va salut!

Vreau sa-mi fac si eu un Arduino, cu ATmega328p, dar vreau sa folosesc libraria liquid crystal i2c penrru un LCD 2X16, libraria va funcționa daca pcb-ul va fi pecum in video ul urmator?

 

P.S. o fac ca hobby, stiu ca sunt de cumpărat si sunt ieftine.

Share this post


Link to post
Share on other sites

Posted (edited)

Mai intai cumpara un ATMega328P (sau fara P), montezi quartz-ul de 16MHz (ca in fisierul video) si led-ul pe pinul PB5 (pin19) si programezi in uC bootloader-ul pe care ar trebui sa-l gasesti aici:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\atmega\ATmegaBOOT_168_atmega328.hex

Programarea bootloader-ului se face cu un programator AVR-ISP si cu acelasi programator se programeaza fuse-bits (informatia asta o gasesti aici: C:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt):

 

diecimila.bootloader.low_fuses=0xFF
diecimila.bootloader.unlock_bits=0x3F
diecimila.bootloader.lock_bits=0x0F

diecimila.menu.cpu.atmega328.bootloader.high_fuses=0xDA
diecimila.menu.cpu.atmega328.bootloader.extended_fuses=0xFD
 

Dupa aceea, la fel ca in fisierul video vei folosi o interfata RS232 - TTL pe care o conectezi la pinii 2 si 3 ai uC (Rx la pinul 3 si Tx la pinul 2), compilezi programul dorit si il incarci.

Daca am uitat ceva scuze,

L.E.: Daca libraria este OK si conexiunile vor fi corecte, ar trebui sa mearga si pe breadboard

Edited by nico_2010

Share this post


Link to post
Share on other sites

merge daca-i pui o interfata USB-serial sau daca folosesti pentru programare un Arduino pe care microcontrolerul este montat in soclu. Dupa ce l-ai programat, poti pune microcontrolerul unde vrei.

Share this post


Link to post
Share on other sites
Posted (edited)
Acum 22 minute, cimitavita a spus:

Dupa ce l-ai programat, poti pune microcontrolerul unde vrei.

De exemplu, in frigider!! :scarpin

Glumesc.

Edited by nico_2010

Share this post


Link to post
Share on other sites
Acum 5 ore, nico_2010 a spus:

Mai intai cumpara un ATMega328P (sau fara P), montezi quartz-ul de 16MHz (ca in fisierul video) si led-ul pe pinul PB5 (pin19) si programezi in uC bootloader-ul pe care ar trebui sa-l gasesti aici:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\atmega\ATmegaBOOT_168_atmega328.hex

Programarea bootloader-ului se face cu un programator AVR-ISP si cu acelasi programator se programeaza fuse-bits (informatia asta o gasesti aici: C:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt):

 

diecimila.bootloader.low_fuses=0xFF
diecimila.bootloader.unlock_bits=0x3F
diecimila.bootloader.lock_bits=0x0F

diecimila.menu.cpu.atmega328.bootloader.high_fuses=0xDA
diecimila.menu.cpu.atmega328.bootloader.extended_fuses=0xFD
 

Dupa aceea, la fel ca in fisierul video vei folosi o interfata RS232 - TTL pe care o conectezi la pinii 2 si 3 ai uC (Rx la pinul 3 si Tx la pinul 2), compilezi programul dorit si il incarci.

Daca am uitat ceva scuze,

L.E.: Daca libraria este OK si conexiunile vor fi corecte, ar trebui sa mearga si pe breadboard

Multunesc pentru raspuns.

Am uitat sa mentionez ca sunt la inceput:)). Oricum dupa vreo ora de cautare nu pare foarte greu si cred ca as putea sa-i dau de cap, dar daca merge   metoda colegului @cimitavita voi faca asa:))

Acum 5 ore, cimitavita a spus:

merge daca-i pui o interfata USB-serial sau daca folosesti pentru programare un Arduino pe care microcontrolerul este montat in soclu. Dupa ce l-ai programat, poti pune microcontrolerul unde vrei.

Daca imi voi comanda acest model de Arduino si cateva microcontrolare Atmega voi putea sa le programez si apoi sa le folosesc individual de Arduino? Adica dupa sa le programez doar cu interfata USB ?

Screenshot_20190724-181458_AliExpress.jpg

Share this post


Link to post
Share on other sites

Posted (edited)

Așa cum deja au spus colegii de mai sus repet și eu.

Poți programa un microcontroller (bootloader-ul sau programul aplicație) Atmega328 cu un alt arduino sau îți poți cumpăra, tot de pe aliexpress, un programator dedicat precum USBASP sau similare.

Daca vrei doar sa scrii bootloader-ul, in microcontrollerul nou, și după sa nu mai depinzi de vechiul Arduino (cel pe post de programator) îți mai trebuie ai un adaptor USB-Serial pentru a scrie programul.

Totuși la cat costa un atmega328 separat mai bine, cel puțin pentru primele proiectele, îți cumperi câteva Arduino Pro Mini + adaptor USB-Serial sau direct Arduino Nano.

Edited by Stefan

Share this post


Link to post
Share on other sites

Daca pui un microcontroler nou pe Arduino Uno din poza, trebuie incarcat cu bootloader-ul cu ajutorul unui adaptor USBASP si o mufa adaptoare 10 pini - 6 pini care se conecteaza la mufa ICSP de pe placa Arduino. Bootloadere se gasesc in Arduino\hardware\arduino\avr\bootloaders sau il citesti de pe microcontrolerul care era montat pe placa.

Tot cu programatorul USBASP trebuie sa citesti si fuse. Eu folosesc Exteme Burner AVR (nu merge la microcontrolere care au mai mult de 64K flash) iar pentru microcontrolerele cu memorie flash peste 64K folosesc Khazarma. Apoi poti incarca microcontrolerul nou exact la fel (inclusiv fuse) ca cel existent initial pe placa.

Atentie mare la fuse. Microcontrolerele ATMEGA vin din fabrica setate sa mearga pe un oscilator intern de 1MHz (nu au nevoie de cristal de cuart extern si nici de alea doua condesatoare). Trebuie sa setezi fuse ca sa mearga pe cristalul extern, dar daca programezi fuse gresit, poti bloca microcontrolerul (daca blochezi scrierea si citirea sau comuti oscilatorul pe frecventa mica). Ca sa il deblochezi, ai nevoie de un programator paralel care sa reseteze fuse. Nico_2010 ti-a scris valorile la fuse la ATMEGA328.

Daca inveti sa umbli cu AVR Studio, poti face programe care sa mearga de la zero (adresa 0000h), adica nu mai ai nevoie de bootloader si nici de Arduino. In schimb o sa le poti programa doar prin interfata USBASP.

 

Share this post


Link to post
Share on other sites
Posted (edited)

Sau ca sa nu te mai complici, poti folosi Arduino Nano. Am incercat sa fac si eu niste placi Arduino si chiar daca am reusit sa le fac, e timp pierdut. 

Edited by dj_ando_83

Share this post


Link to post
Share on other sites

Pt. aplicaţii în masă nici nu mai ai nevoie de IDE să scrii în controller, se poate compila în fişier hex apoi programezi direct cu AVRDude. Soluţia asta o folosesc pt. nişte ATTiny13 folosite ca emulatoare OneWire, am hex-urile gata compilate şi durează 2 secunde programarea.

Share this post


Link to post
Share on other sites

Salutare!

Mi-au venit chestiutele de pe Ali, dar bineinteles ca nu mi-a iesit nimica.

Dupa ce m-am familiarizat cate de cat cu treburile astea pe aici, cred ca am blocat 3 Uc-uri:)).

Am folosit o interfata USBasp (https://www.aliexpress.com/item/32647598702.html?spm=a2g0s.9042311.0.0.27424c4dC0AtF1), la un moment dat nu mai puteam sa comunic cu Uc-ul.

Am luat un Arduino UNO si intr-un final am reusit sa comunic cu el.

Dar cred ca l-am blocat, ce ziceti ca ar trebui sa fac?

1225858732_WhatsAppImage2019-09-02at16_24_56.thumb.jpeg.f791c359d7e199bac1e2dc2ebfdf213d.jpeg

 

Daca incerc sa scriu fuse pentru 8Mhz (http://www.engbedded.com/fusecalc?P=ATmega328P&V_LOW=0x00&V_HIGH=0x00&V_EXTENDED=0x00&O_HEX=Apply+values) de pe acest site imi da eroarea urmatore 

Reading | ################################################## | 100% 0.00s

avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x0000
             0x00 != 0x22
avrdude.exe: verification error; content mismatch

avrdude.exe done.  Thank you.

 

Edited by TibiBzg

Share this post


Link to post
Share on other sites

Fuse bits nu pot fi 0 (zero).

Trebuie sa scrii fuse bits cu valorile mentionate in postarea mea anterioara altfel risti sa-ti blochezi uC si o sa zici ca nu ti s-a spus.

Share this post


Link to post
Share on other sites

Domnule eu cumpar Arduino gata facut tocmai ca sa nu mai stau sa lipesc piese, placi, regulatoare de tensiune, quartzuri, etc.

Un ATmega328P cu arduino bootloader costa 4.5€, un Arduino gata facut 10€. Pentru mine nu merita diferenta daca o transform in valoarea muncii pentru a construi.

Daca te multumesti cu un breadboard atunci e ok.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.