Take the 2-minute tour ×
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It's 100% free, no registration required.

I've always loved to program, and I just recently became interested in electronics and programming microcontrollers. It is very fun, but I am wondering if I am learning something useful that can get a job in when I grow older. I am wondering whether Electrical Engineers use microcontrollers.

I know that jobs where you need to bring power to different parts of a house probably would not, but perhaps a job like this:

Your Responsibilities:

  • Design and develop new defibrillator products. Primary focus will be on new product design and current product support in the area of analog and digital design.
  • Model analog circuits using various simulation tools, such as PSPICE and MATLAB.
  • Build prototypes and prove design feasibility, functionality and performance.
  • Document all phases of the design including requirements, specifications, plans, reviews, test procedures, and test reports.
  • Support existing products. Investigate and determine root cause of product issues found in manufacturing and the field. Troubleshoot systems, PCBs, cables, and firmware. Use test equipment to analyze and resolve issues.
  • Identify, evaluate and recommend key suppliers based on electrical technical abilities, experience, history, and certifications.
  • Facilitate and maintain constant communications with key suppliers and internal stakeholders during project development.
  • Represent the EE development group as a technical team lead on projects. This would include providing technical solutions as well as project scheduling and project tracking.
  • Document the design for manufacturing (i.e. drawings, schematics, experiments, changes, test results, data, PCB layout, etc.).
  • Work with cross functional teams that include: Mechanical eng., Software eng, Clinical applications, Learning Products, Marketing, Support Engineering, Quality & Regulatory, and Supply Chain. Teams are experienced, but relatively small and members hold many development roles.

Would people who do this use Microcontrollers or something similar?

share|improve this question

closed as primarily opinion-based by Nick Alexeev Aug 6 at 2:09

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

5  
@VladimirCravero - while an arduino is not a microcontroller, it is a microcontroller development board, with or without the offered libraries and IDE. –  Chris Stratton Aug 4 at 15:56
3  
The Arduino name indicates the microcontroller has some sort of bootloader that allows it to be programmed from the computer. It isn't the libraries or the IDE that makes it an Arduino, its the bootloader. With the right atmel microcontroller, Arduino becomes a well-backed microcontroller platform –  Funkyguy Aug 4 at 16:03
5  
@Vladimir Cravero. While an Arduino is not a microcontroller. I know EE's who use Arduino development boards, or cheap PIC boards as 'break out' boards for microcontrollers. Nano's especially provide quick, cheap, easy ways to do some jobs, for example to build a test system to ensure a 'real' product or component is working. –  gbulmer Aug 4 at 16:08
5  
I second gbulmer's comment. I have used an arduino in a professional capacity. I've made test apparatuses with them to supervise long term / burn in testing. I've put them into professional looking aluminum cases and sent them to customer sites. I wasn't doing volume production with them, but when I needed something for my application and I needed fast I turned to an Arduino Mega. It worked like a champ. I didn't have to spin a PCB to meet my objectives. Furthermore, at low quantities it is cheaper to use a prefab board rather than spin your own uC board. –  Nick Aug 4 at 16:20
3  
General observation, not pointing fingers here... Is it just me or does anyone else notice that if EEs spent all their time complaining about how poorly the Arduino software is developed (libraries, IDE, etc.) actually improving it, we'd have an industrial-class library that works on many MCUs and is more efficient and easier than writing your own code for some of the functions? Sure, there are a few things that are odd (boolean vs. bool), but I think that some of those things could be removed in a derivative... –  Annonomus Penguin Aug 4 at 18:20

10 Answers 10

Q: Do Electrical Engineers Use Microcontrollers?

Yes. Absolutely. From simple toys to complex manufacturing processes and robots. It is not a skill that will hurt you to know. Learn as much about them as you can.

share|improve this answer
1  
as with everything electrical engineering though, it depends on the specs of what you are doing. –  Jeff Wurz Aug 4 at 15:07
    
who knows maybe you'll create your own job in the process. Some exoskeletons and things are starting to use the Arduino over PICs. Also, it sharpens other skills like, robotics as mentioned and circuits and basic math skill for them. –  Andrew Scott Evans Aug 4 at 23:42
1  
Agreed @JeffWurz. But having it in the toolbox for when the time arises is never a bad thing. Many people use a uC when an op amp would work even better! So during the design phase, you are 100% correct. There are many who "over-engineer" circuits. Bob Pease said "My favorite programming language is solder!" –  Enemy Of the State Machine Aug 5 at 1:44
    
@EnemyOftheStateMachine Solder can definitely be useful but, for myself, in a professional environment I always prefer a solution that builds on off-the-shelf parts. Usually for me this is a PLC rather a uC, but on rare occasion a uC is especially suited to the task. The primary benefit is ease of replacement - something that becomes obvious when your one-of-a-kind solder solution dies and you're forced to either spend a day doing board-level diagnostics or two days rebuilding a new one. If a uC or PLC dies you swap it out, reprogram, and resume making money immediately. –  J... Aug 5 at 12:16

This particular job may not, but the product would likely include a microcontroller and perhaps be controlled by a more powerful embedded system.

Note that it mentions 'troubleshooting' (but not writing) "firmware".

It's also possible this job description was written by someone (for example, an HR person) who doesn't really understand the engineering process.

In larger companies people tend to specialize, and you might have an analog person doing the high voltage design and control design, and a firmware person doing the low-level control firmware, and maybe an entire different team developing a GUI and touch panel controller. On a regulated safety-critical device like a defibrillator, you'd probably have a systems engineer defining the specifications to be met and the interfaces between the areas of responsibility.

share|improve this answer

For slower speed, low cost, smaller packages, higher reliability (because of fewer connections) and more easily maintained solutions microcontroller are often the goto solution. Even if you scan around on this web site you will see many questions where someone is being overly complex, some people automatically ask the poster "why don't you use a microcontroller) ?

share|improve this answer

The definition of EE is somewhat flexible. If you have an EE degree from a major university, you may or may not have experience with programming and microcontrollers. Many EE programs do not require programming courses. This is a reason why a lot of engineers Re choosing Computer Engineering rather than EE because they straddle the fence between hardware design and software design.

Microcontrollers can enable lower cost and shorter design cycles for the same functionality for many designs. There are some things that must be done in the analog world, and some that must be done in the digital, but generally when it comes to microcontrollers the decision isn't whether it can be done, but whether it can be done better, cheaper, faster, or offer more features and performance than a design without a microcontroller.

An EE who is not familiar with and does not use microcontrollers will limit themselves, but if they have a great depth in the analog world, or prefer working in large teams where the micro stuff can be done by others, they will do very well where their expertise and focus is needed.

share|improve this answer
    
My diploma says: "Bachelors of Electrical Engineering" and then on the next line "Computer Option". –  Nick Aug 4 at 16:29

Many EE's use microcontrollers, but there are many that don't, such as ones that specialize in analog design, RF engineering, power engineering etc.

But I would think that most EE's that do digital design these days also incorporate microcontrollers into their designs, just because it saves a lot of hardware in most cases, and makes the design more flexible. (Another way to minimize parts and keep a design easier to change is to use FPGAs, which requires a different type of programming called VHDL.) As one will see below, whether or not they get involved much with the programming of these mirocontrollers will depend upon the size of the company and its organization.

Ideally, a EE that has gotten a bachelors degree in EE has also taken a least a few programming courses. Most likely one or more of these have included C, which is used for the majority of embedded programming on microcontrollers. If not, it is relatively easy to pick up C on one's own, although if you never done any programming there will be some hurdles to get over.

Nevertheless, IMO it is is way easier for a EE to learn to program than for a programmer to learn to work with hardware. In the latter case, I wouldn't think most CS majors would to be able to learn digital or analog design on their own without any formal courses, but they should be able to learn to read schematics, use a multimeter and oscilloscope, and perhaps a logic analyzer.

As others have mentioned, if one knows they are interested into going into embedded programming and design, a degree in CE might be a good choice. I doubt you will get as much basic EE theory as one would get taking just a EE major, for example there would be less emphasis on analog design. When I got my BSEE, CE degrees didn't exist yet so I went ahead and got an MSCS degree at night while working my first job (and let the company pay for my tuition and books).

Surprisingly, working with embedded devices does involve quite a bit of analog circuitry, in order to interface with the outside world. Also one gets involved in power supply design. One of the products I was involved with had 9 different voltage rails (-6.1, 1.8, 2.5, 3.3, 3.6, 4.1, 5.0, 9.6 and 12), several of them for an LCD display.

As far as your hypothetical job description goes, in smaller companies like a start-up, as the lone engineer I have done all these roles for a single project -- wrote the spec, designed the circuit, both digital and analog, created a BOM (bill of materials), ordered parts from Digi-Key and Mouser, laid out the PCB with Eagle, ordered PCB's, debugged the hardware when it came back from the assembly house, wrote firmware in C to further test out the board, and then wrote the production firmware in C. I also wrote the necessary documentation for the FDA (this was a medical device), and provided support for the field. So in this case, it was very useful for me to have a background in both EE and CS.

But in many companies, these roles might be split up among several engineers -- most likely the hardware design would be done by one or more engineers, the PCB layout by another, and the programming and testing by a third group. In the latter case, as mentioned above, the programmer, in order to test out their firmware, would need to have a basic grounding in electronics. But the hardware designer, besides having to know how to incorporate the microcontroller into the design (which is not a trivial task -- most microcontroller datasheets run hundreds of pages long), may not get involved in the firmware at all. However at the beginning of the design, it is likely the hardware designer(s) and firmware programmer(s) would spend quite a bit of time together doing trade-offs that would minimize the hardware required while also making the design as easy for the programmers to deal with.

share|improve this answer
1  
As a software guy works in industrial automation, one thing I've found is that EEs who understand software at some level are much easier to communicate with than those who operate purely in the realm of circuits. Likewise, I try to learn enough about basic electrical systems to at least diagnose simple wiring issues without having to call the EE. Engineering is very often an interdisciplinary effort, so there is a lot of value in having enough technical overlap to effectively discuss and cooperate when it comes time to integrate. –  Dan Bryant Aug 5 at 15:43

Yes EEs use microcontrollers.

The human race produces over 20,000,000,000/year[1], about 40x more than microprocessors. Someone is designing, testing, debugging, and enhancing systems and products using those MCUs; many are used in products designed by teams including EEs.

AFAICT a UK a trend is for EEs to become embedded software developers, or get training to be embedded software developers too. So you might be ahead of that EE trend anyway. You might want to consider majoring in embedded development if looking at college, or looking at jobs recruiting 'Embedded Software Developers', to get a better idea of what skills are useful.

At least one large, famous, UK company has said that there product development life-cycle would be improved by having more, even better, embedded software developers. I suspect that is true for many other companies around the world.

[1] IIRC they were a figure for 2011. I'll try to find my original source reference. It was very hard to get up-to-date numbers, and that was the most up-to-date I have found. I think that was a value from an industry survey by one of the market analysts. In that case, it may have been approximate, maybe derived by taking, say, the top 10 manufacturers, reading and interpreting their annual reports, and scaling for overall estimates of sector revenues.

Alternatively, it may have been derived by looking at products shipped in several sectors and extrapolating. For example, AFAIK, every mobile phone contains at least one MCU, digital cameras have one, music players have one, TVs have one, hand-help games have one, wireless routers have one, cars average 17 (IIRC), etc. so if there are a figure for product volumes in large sectors, then it might be 'triangulated' that way.

I believe ST claimed over 1B ARM MCU's, or 2B MCUs, and they aren't the biggest, and there are lots of big players, so I think the value is likely realistic now. I also believe I've seem some press releases for individual manufacturers claim over 1B parts/annum, so I think it is plausible.

share|improve this answer
    
Do you have a source for that number? 20,000,000,000? –  Funkyguy Aug 4 at 16:18
    
@Funkyguy - I had a source, so please let me look around. I've moved my comment to my answer so that I can update it if I find the reference. –  gbulmer Aug 4 at 16:37

Yes!

Programming and interacting with microcontrollers can be one of the main responsibilities of an electrical engineer.

Microcontrollers represent somewhat of a middle ground for engineers and programmers. Creating proper firmware requires not only a good knowledge of programming, but also a working knowledge of the electronics that will be interacting with the program in the microcontroller.

The job description you posted doesn't seem to be about design, specifically. It sounds more like they would put you in a testing and troubleshooting position. This is still a task that an electrical engineer would do though.

share|improve this answer
3  
There are also plenty of EEs who never deal with a microcontroller whatsoever. It depends on the career path, job, industry, etc. –  ACD Aug 4 at 18:10
    
True, although this seems to be becoming increasingly rare. While I'm not the biggest fan of Arduino, many EEs who have been in the field for quite some time are picking it up since it is very simple to use. –  Funkyguy Aug 4 at 18:48
    
I've been working as an EE for about 5 years now and while I've seen microcontrollers at 3 different jobs they have never been one of my main responsibilities or even close. I also have friends that work as power engineers and never touch a PCB let alone a micro. I just wanted to point out that your second sentence was very misleading and that it can be a main responsibility for some, but isn't all inclusive. –  ACD Aug 4 at 19:00
1  
@ACD I see your point. Its true, as a power supply designer, I don't ever touch microcontrollers, just in my spare time. I've edited the post to "can be" rather than just straight up is –  Funkyguy Aug 4 at 19:16

Usually learning a microcontroller is not enough and one microcontroller cannot suitable for all application (industrial,didactic,...).learning a microcontroller maybe need long time and its maybe the microcontroller do not generate after some years.however its just a skill and its not the main of EE.but this skill is necessary for every electronic engineer.

share|improve this answer

Yes, embedded system (hardware, circuit and software to drive it) is standard in education courses at technical school and university levels.

Example: UTAustinX: UT.6.01x Embedded Systems - Course Info

share|improve this answer

Yes, and Yes! I've done the job described by your posting (almost certainly not for the same client) and many similar ones. You better believe the defib had a microcomputer in it (pedants: I'm totally aware of the difference; I just don't give it much significance in this context).

I'm an SWE with one foot in EE; there just as many are EEs with a foot in SWE. Sit wherever on that spectrum it suits you. Any product smarter than a hammer (and maybe some of those!) have a programmable controller in them. It might be an MCU, a micro-computer, or a full-on desktop mother-board, depending on what / how much it needs to do. Some laboratory instruments like HPLCs that manage and reduce a lot of data and have to present a complex GUI to the user (each of which tasks can be very compute-intensive) would fall into the latter category. The portable defibrillator an amublance crew or emergency department uses would fall somewhere in the middle. A string of holiday lights might have the cheapest, smallest MCU, if it has any at all.

Your programming skills won't go to waste if that's how you want to spend your career. Do be aware, though, that while a full set of EE, SWE, and whatever xxxE skills will come in very handy, you will almost certainly specialize - or get boxed into :-( - one of those as primary.

I got an Engineering Management degree (because it was the closest (hint: not close!) fit to SWE I had available to me at the time) knowing full well I'd suck rocks at managing people, would have hated it and run screaming from any attempt to put me in a manager's chair. But! (and there's always 'but', isn't there?) a BS in EM came with at least a 101-level course in Physics, Mechanics, Chemistry, Math (a lot more than a 101, of course), Programming (a few of which I tutored or taught or just outright screwed around with), Electronics, Analog Computing, and more. I would have been well served with a couple of life sciences courses as well, had they been offered, though I'm not sure I or the university knew that then.

But, the bottom line - and, finally, my point - is that a broad spectrum education can take you a lot places a highly specialized one might not (and, yes, vice-versa). My 101-levels put me in a position to know what I didn't know but needed to, and to ask useful questions of the brilliant specialists whose work I and my co-workers were incorporating into ever smarter, and sometimes previously unimagined, products.

share|improve this answer

protected by Nick Alexeev Aug 4 at 21:45

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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