0
\$\begingroup\$

I've been wanting to get into electronics for a while, I've seen loads of people say that arduino is the best way to go for starting out in electronics. After saving some money I bought a knock-off arduino board with an LCD and started programming. I found it horribly boring. It was just too easy in my opinion, I was hoping to move bits around and interact with hardware, but all I did was call a function to print to a line of text to the LCD.

I'm hoping for something a little harder, Ive got 2-3 years of C/C++ experience and was wondering if there is any 'true' electronics I could get my hands dirty with. As in actually interacting at a low level instead of using a function call.

\$\endgroup\$
  • 1
    \$\begingroup\$ An Arduino is a microcontroller on a board and in that sense just an implementation of some electronics. One can use an Arduino without being able to distinguish the function of a capacitor and a resistor. But Electronics is learning about that. So get yourself a book about resistors, capacitors and transistors and also get some of those components and a breadboard. Then start learning. The amount of people thinking that working with Arduino = understanding electronics is unfortunately very high. \$\endgroup\$ – Bimpelrekkie Aug 26 '17 at 13:42
  • \$\begingroup\$ If all you did was "call a function to print to a line of text to the LCD" then of course you found it "horribly boring" and "just too easy". The problem is not the Arduino, it's you. With that approach and attitude you will get the same results no matter what sort of "true" electronics you manage to find. \$\endgroup\$ – per1234 Aug 26 '17 at 16:25
  • \$\begingroup\$ Randomly doing projects that you find in books or on the internet won't do much for you. You need something you want to achieve that you can only accomplish using something electronic. You then look specifically for things you can build that will help you reach your goal. Build one of them, and learn how any why it works. Improve it or build something else, and you will learn more. That's the only way I know to get started. \$\endgroup\$ – JRE Aug 26 '17 at 19:20
  • \$\begingroup\$ Don't put the Arduino down just because your first project with it was boring and uninteresting. Its the project, and not the hardware. The project needs to interest you. What if instead of just going "wrote something to an LCD, whoo, how boring" you think of something you need to measure, and then use your boring LCD project to display it? Sound level, temperature, light level, RF signal strength, humidity, soil moisture, etc. \$\endgroup\$ – JRE Aug 26 '17 at 21:12
2
\$\begingroup\$

Two things:

First, if you're trying to learn electronics in general then don't start with an Arduino. Arduino is a type of embedded system and doesn't really teach you anything about electronics. Just embedded software. Start with basic circuits like the 555 timer, try configuring it in astable mode, then bistable, then monostable. Identify the differences. Also try logic gates (AND, NAND, OR, NOR, XOR, NOT) and see if you can configure the gates to perform a predetermined task. That's probably the best way to get started in electronics.

Second, if you're really set on embedded systems, then try using AVR Studio to program the Arduino, not the miserable excuse for an IDE it comes with. AVR Studio will give you much more freedom and will allow you to work more closely to the hardware level, rather than just using basic library functions. You'll be able to work with the registers directly, manipulate bits, etc. That's my recommendation if you really want to work with embedded systems first, but like I said, you'd be better off starting with discrete ICs rather than with a microcontroller.

\$\endgroup\$
  • 1
    \$\begingroup\$ To be fair, using the Arduino libraries doesn't preclude using the hardware directly, it simply adds a few caveats. \$\endgroup\$ – Ignacio Vazquez-Abrams Aug 26 '17 at 13:33
  • \$\begingroup\$ @IgnacioVazquez-Abrams True, though it also may mislead an electronics newbie into a false understanding of how the hardware works \$\endgroup\$ – DerStrom8 Aug 26 '17 at 13:34
  • \$\begingroup\$ AVR studio is arguably even worse than the Arduino IDE, but the underlying idea is sound - use avr-gcc (which all three use to do the actual work) behind your favorite editor. \$\endgroup\$ – Chris Stratton Aug 27 '17 at 1:01
  • \$\begingroup\$ Perhaps AVR Studio has the opposite problem that the Arduino IDE does. Arduino has very few features and provides the user with very little control. AVR Studio is bloated and has a lot of tools thrown in that nobody is ever going to use. \$\endgroup\$ – DerStrom8 Aug 27 '17 at 1:13
3
\$\begingroup\$

As a lifetime electronics engineer, I understand the sentiments in the other answers. The right way to learn electronics is to build simple hardware circuits. However, I don't know what you mean by electronics, and I'll wager that you don't either (yet).

If you want to make stuff that 'does things', flash LEDs, read knobs and buttons, then for all the purists cringe, an Arduino is a great way to start.

As soon as you come to drive a LED off board, or a relay, or want to read a thermistor, you'll be forced into learning at least the basics, so Ohm's Law, and with any luck, some 'proper' electronics.

Statement of interest. My first Arduino project was to change the flash rate of the on-board LED from 1Hz to 2Hz, that's the 'Hello World'. I mainly use them now as the cores of automatic bench instruments that I talk to from Python on my PC.

\$\endgroup\$
  • \$\begingroup\$ I've never used an Arduino, but my recent foray into MCUs after wanting to obstinately stay analogue was with a PIC board, first task being to just turn the LED on, then to flash it, then control the flash rate with the potentiometer... But this is still all controlling electronics rather than doing electronics. I actually moved pretty quickly to "bare" PICs and haven't used that demo board since. I think maybe the Arduino board just does too much to be interesting, if you're interested in hardware. \$\endgroup\$ – Ian Bland Aug 26 '17 at 21:22
  • \$\begingroup\$ @IanBland: Eh, most Arduino boards are fairly bland, with just the MCU, power regulation, a single controllable LED, and some sort of USB interface. Unless you get something a bit more exotic like an Esplora or one of the Lilypads or Trinkets. \$\endgroup\$ – Ignacio Vazquez-Abrams Aug 26 '17 at 21:27
0
\$\begingroup\$

Forget Arduino for now.

Instead, build lots of simple circuits. LOTS. There are key circuits that you will encounter in nearly every larger circuit. Start with voltage dividers. Build all three modes of a 555 circuit. Use a simple transistor as an amplifier. Use it as a switch. Construct some op-amp circuits and comparators. Play around with component values to understand what happens.

So get yourself a breadboard, some 22 gauge wire for jumpers, and a bunch of components and have at it.

\$\endgroup\$
  • 1
    \$\begingroup\$ When did you ever find a 555 in anything designed the last 20 years? \$\endgroup\$ – pipe Aug 26 '17 at 21:10
  • \$\begingroup\$ @pipe Actually, lots of things. Industry tends to go with the cheapest, simplest, most stable solution. There are about a billion of them manufactured every year. \$\endgroup\$ – Mike Aug 26 '17 at 21:54
0
\$\begingroup\$

The best Thing to learn electronics would be a kit of reusable devices and components together with written instruction of how to make functional experiments on it. Examples: "RadioShack Electronics Learning Lab", "Maxitronix Electronic Lab 500 in 1", etc.

\$\endgroup\$
0
\$\begingroup\$

per1234's comment is totally correct. You've focused on a programming environment as an example of electronics design. Why - because you're a beginner programmer? Countless people around the world have used the Arduino platform to learn new skills and have fun. It's a wonderful and revolutionary platform that's taken the hobby world by storm.

You need to find something that you want to build, be it a drone, micro satellite or 400V valve amplifier. There seem to be commitment /focus issues if you can't identify a piece of electronics to develop. I'm concerned with your quoting of the word true. Are you using it as a pejorative?

I read your profile. You like game development and are interested in computer science. And you want to get into electronics. Then do both and get an Arduino and develop a game for it. Don't mess with a LCD if you've mastered that. You're 14. Imagine what your CV /resume would look like with this

pong

running on one of these

scope

using this

paddle

and a whole pile of really true electronics (micro switch inputs, digital to analogue converters and oscillators.) You can get a duff scope for £50. Get your parents to buy it for school. Everything you need to help you build this is available here and other places on the internet.

You might even be able to get space invaders running. But you might not be good enough for that. Or do you think you are?

\$\endgroup\$
0
\$\begingroup\$

"Arduino" (as distinct from the Atmel ATmega328 itself) is aimed at serving artists rather than engineers, so there's more of a focus on providing lots of essentially finished example programs. In some ways that does kind of take the fun out of it, though it is less frustrating than a normal microcontroller development kit that provides little or no example code. But you don't have to use the Arduino IDE, you can dig deeper and use it as an Atmel ATmega328p development board. This is a good place to start, since you've already walked through some of the examples.

I recommend looking into the avr-objdump and avr-readelf utilities, these should already be installed along with the Arduino IDE package -- check around the Arduino's hardware\tools\avr\bin directory. These utilities let you look at the raw ATmega328 instructions generated by the compiler, and see the resulting memory usage.

Take a look at the Atmel ATmega328p datasheet -- at 442 pages, it's typical for a small microcontroller. One nice thing about this one is that everything is in this one datasheet; many others I've worked on have one manual for the CPU core instruction set, another manual for each of the peripheral modules, and yet another datasheet just for the IC itself.

When delving into a deep technical document like this, it's important to page through the entire document and skim over the major headings first. Trying to read it as the world's most boring 442-page novel is the wrong approach. Treat it like a roadmap: find the major landmarks and then navigate down to the relevant local detail.

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.