Should I use avr for my DIY projects or should I use arduino???which one's better
Very hard to advise without knowing what projects you might want to do, or your general skill level in programming and electronics.
Have a read of https://www.avrfreaks.net/index.p...
Arduino is based on the AVR. If you use an Arduino board you can choose if you wish to use the Arduino tools, Atmel studio 6.1 or whatever you want.
Many of use use Arduino boards as they are cheap and easy to get but don't use Arduino tools. Realise that Arduino is just a layer on top of avr-gcc. You can choose if you want to do things the Arduino way or whichever way you choose.
An Arduino is just a well designed AVR board at the end of the day. I'd say yes to use it simply because it's very easy to interface to (both getting code into it and getting it do something to the outside world). If you buy standalone AVR chips you face all kinds of problems like how you supply power and a clock and how you ISP program them. All those worries evaporate when using an Arduino board as they have slick solutions for everything.
Another advantage, if you want to go that way, is that you can also use the Arduino IDE and code libraries to write the code for the board but you can just as easily write in plain Asm/C/C++ separate from the IDE and just use avrdude.exe to send the .hex files you build across to the Ardunio's bootloader to be programmed into the chip.
Suppose you do have not the tastes/skills/time to design a convenient circuit, with all its decoupling capacitors: buying an Arduino UNO will give you a working circuit, with a USB<-> serial processor preinstalled.
OTOH, if you want to make your own circuit, having a look at Arduino schematics (OR-incl.- Olimex ones) can avoid errors... You cn program a 328 on an Arduino UNO board, and remove it and put it on other cicuits if you like designing your own boards: some Atmega328 are sold with Arduino bootloader -i.e : they are ready to be plugged on an Arduino board and programmed : iknowtwo sellers near Paris who sell this kind of Atmega http://hackspark.fr/fr/atmega-32...
If you design some hardware or buy some dedicated hardware -ready to plug, once the software is written : as Arduino is popular, dedicated HW comes often with dmo code -as Olimex does- , it wonot be very complicated to change from a atmega to an arm : there is the arduino due, which has a 32 bits arm (the source code will be about the same, if you use the arduino library)....
OTOH, Arduinos code is likely to be suboptimal w/r plain C...
Arduino is like training wheels on a bicycle. Good for a total novice. Soon outgrown. Cheap enough.
The main difference between Arduino (which uses an AVR microprocessor) and doing non-Arduino AVR work, is in what tools you use. And you can "graduate" to other than C/C++ for programming. For example, there's a great structured BASIC - see ZBasic.net's website and forum.
Or you can go with Atmel AVR Studio 6 which is intimidating to a novice.
Especially if the project is going to be a one off, or if the roject is focused more at the programming than the hardware, I would suggest the Arduino.
I would also echo what has been said above. It needn't be either/or. One can get the Arduino, start working with the Arduino IDE and Libraries, then move to any other AVR development environment ( C/C++, Basic, Ada, etc. ) that can create a hex file and use avrdude to upload using the on-board bootloader. If that's not enough "low-level," one can also simply hookup a programmer ( with very slight board modifications ) and use use any regular AVR development environment and ISP.
Martin Jay McKee
As with most things in engineering, the answer is an unabashed, "It depends."
© 2022 Microchip Technology Inc.