Project ideas for electronics beginner

Hi,

i know that there are 100 project ideas around the web but most of them target beginner programmers (i am not a beginner programmer

Would be nice if you guys had ideas for projects that will cover several important aspects of electronics without being too hard for a beginner. I have made some LEDs blink (LED,resistor,transistor etc), but that is more or less it.

Thanks in advance

Make the LED on pin 13 fade up and down.

If you are just looking for projects that give programming experience the sorts of things covered by the eamples that come with the IDE and the various tutorials should be sufficient. They can all be extended and adapted.

The problem with going beyond that is the need for specialized parts that people are unlikely to have.

Then there are what I might call "useful" projects that meet some need for the developer. Browsing through the titles in this section of the Forum will give you some sense of how wide the spread of interests is. Maybe some of the things that others have asked questions about would interest you.

...R

I thought the whole idea of the beginner kit was to introduce someone to a sensor, let them turn it on, read it, study it and so forth, then introduce a motor, turn it on, study it and so forth. then put the sensor on the cart, use the motor to move it and get the two parts working together. build with building blocks.

for a great introduction, buy a robot. motors, sensors, inputs output, joy joy.

build a garden sensor and controller. sensors, solenoids, inputs, outputs, joy joy

build a weather station, add each of the sensors, data log them, store them, study them, connect to the internet.. joy joy.

blinking lights ?

beginners project ? https://www.youtube.com/watch?v=bua18A09xfQ

thinking not.

Possibly being in a similar situation (electronics novice but experienced software engineer), maybe relating my experience over the last six months or so would be useful to you (and maybe it wouldn't, but I'm going to tell you anyway :D ).

I started messing around with Arduinos a couple of years ago, and made (well, half-made) a 3-axis CNC machine by cobbling together some motor controllers and using some pre-existing code. However, apart from the mechanical parts, most of the time I spent writing the PC software to drive everything and just needed a little soldering and wiring on the electronics stuff.

This was fun and vaguely successful, but it didn't teach me much about the electronics or indeed the Arduino itself.

So, I went back to basics, bought some component kits, and flashed some LEDs and beeped some speakers etc. and then got more adventurous and bought a handful of Neopixels ( http://www.pololu.com/product/2536 ), thinking I could use my software knowledge to make some interesting animations.

By using the supplied library code, I was getting started on this, when something significant happened.

Someone kindly gave me an old development board for a different microcontroller (an 8-bit PIC - http://www.microchip.com/pagehandler/en-us/family/8bit/ ). Intrigued by this, I downloaded the free development tools and realised that this was similar to the Arduino, except much closer to the hardware and with various physical differences (clock speed, amount of memory, etc.) but with enough similarities to make me want to do something with it.

So the next few months went something like this...

First, I looked at the Arduino library code that drives the Neopixels, read the datasheets, looked at the timing charts, and then decided to implement some code on the PIC to drive the LEDs just like I'd done from the Arduino. Now, this is where it changed my experience from just copying existing stuff to really learning about the hardware (and software).

To start with, the internal clock on the PIC that I was given isn't fast enough to provide the tight timing sequences required by the Neopixels. So, I learned about using external crystals, how they are used in circuits, how they differ from resonators, and how to configure the PIC hardware to run at 20MHz instead of 4MHz. I looked at the Arduino and saw those parts of the schematic that I now vaguely recognised and understood a little more. Then I had to write the code on the PIC in assembler (still not fast enough to use C), which meant that I really had to understand the Neopixel requirements and also had to buy myself a logic analyser and learn how to use it and how to understand where the problems are when it doesn't show you what you expect.

Having got this "simple" circuit working on both the Arduino and PIC, I then looked at animating the colours. This was much easier on the Arduino because it has loads of memory (relatively), but the PIC I used only has 128 bytes (yes, bytes!). So to port that functionality, I decided to use a Serial EEPROM to hold a bunch of animation data (RGB values) and to read that on the fly.

Doing this, I learned a lot more, like: how to use I2C on the Arduino to write data to the Serial EEPROM, how to hook this up to the PC so I could read and write the animations using my own familiar environment, then how to read the EEPROM using I2C (in assembler) on the PIC, which means you really get a much better understanding of I2C in general and the Serial EEPROM devices in particular, and along the way discovered the need for bypass capacitors, which caused me no end of problems until I realised that noise in the two circuits (Arduino version and PIC version) differs due to the different characteristics of the microcontrollers.

Next, having a nice RGB animation running (on either microcontroller) I thought it would be cool to add a microphone to the circuit so I could adjust the intensity of the colours according to the ambient sound level. Again, I protoyped on the Arduino (because it's easier), and learned about electret microphones, the need for amplification before ADC, so I learned about op-amps (there's is a lot to learn there), voltage dividers (for DC bias), low-pass filters (noise suppression), peak detectors ... so many options, some using additional electronics, some using software, all very interesting. Porting that section of the circuit to the PIC taught me even more about ADC (it's similar but not exactly the same on both microcontrollers), interrupts, timers, etc. - much of which you're more protected from on the Arduino. By doing this on the PIC, I understood what's behind the Arduino's readAnalog() function a lot better.

As an aside, and getting tired of pulling the PIC out of its socket to reprogram it, I also learned about ICSP on the PIC and then understood what that ICSP header on the Arduino is for, and how it works, and how useful it is and also how the Arduino makes the programming so easy over USB, which is why I'd never used the ICSP header. I hadn't even considered this before because I was always so used to just plugging something in my PC's USB port and having it work straight away. Now I know something about what has to happen to make that seamless.

So, I have ended up (or nearly) with a probably totally pointless toy that flashes coloured lights at you while responding to sound, but I learned a lot more by using Arduinio and PIC than I ever would have done by sticking to one environment.

If anything, it's really taught me that, despite having 37 years of software development behind me, I am really really ignorant about the mechanics of how computer systems (or any electronic devices) really work and I appreciate the breadth and depth of knowledge freely given by a lot of contributors to this forum.

Thank you....

Thanks for the answer :)

I can identify, Roger. I often find myself re-inventing the wheel with Arduino applications just because it's fun to learn how it's really done at a low level instead of just #includeing someone else's library.

tylernt: I can identify, Roger. I often find myself re-inventing the wheel with Arduino applications just because it's fun to learn how it's really done at a low level instead of just #includeing someone else's library.

Yes, the only problem it leaves me with is where to go for support - Arduino forums or Microchip forums? :D

I recently put together a alarm system for my shed which was burgled a year ago. Initially an LED advertises the fact the shed is alarmed, also the LCD displays the fact that the shed is alarm protected. It is quite simple, a Reed switch acts as a detector that the door has been forced open, which triggers the Arduino Uno to display a message, that the police have been informed, and also activate a very loud siren. The system also latches the alarm siren using a cheap 2 Relay module, so that if the door was shut again, or the Reed switch were ripped out, the alarm would would still sound. I also built a power supply, using an old 12 Volt transformer from my 12V ceiling downlight system, and a 12V and 5V regulator.

The alarm is armed via remote controlled mains plug in gadget that switches the power on/off remotely arms and disarms it, with a press of a button.

My next improvement is to add a circuit that will send a signal up the mains power line to switch on a light in the main house, giving the would be burglars the impression that some one in the house is aware of their presence, and that they should make a hasty escape. I know there are sophisticated alarm systems available, but where is the fun in that???

It mainly involves electronics, from building the power supply, wiring the parts together, thinking of the logic of latching the siren on using the relay modules, a bit of code for the LCD display, and a lot of fun doing so..