Thanks to a generous sponsorship from element14, I’m putting together a tutorial series on using the arduino microcontroller platform! The arduino is a platform that I’ve done several projects with, and I think it is the best possible way for beginners to get acquainted with electronics. This tutorial series will be aimed at beginner users, but I’m hoping to keep it going with some more advanced topics a few episodes into the future. This first episode will get you acquainted with the arduino uno (the current “flagship” arduino), introduce the programming language, and help you get your first program running!
You can download the files associated with this episode here:
Arduino Project Contest! Start getting your projects together!
Start thinking about your arduino projects, because element14 will be sponsoring a contest where you can win a prize if your arduino project gets the most votes. More info coming soon!
Just as the comments in the program indicate, the tutorial is AWESOME as well. Long-time user of microcontrollers, just found the Arduino and have way too many things i want to do with it. Thanks for taking the time to start on a great series of videos describing a great idea! Thanks Jeremy – Keep On ECE’ing!
I got something wrong here. I run my arduino program on ubuntu 11.10, and when i try to upload your tutorial’s program to arduino board, it says:
In file included from /usr/lib/gcc/avr/4.5.3/../../../avr/include/util/delay.h:44:0,
from /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/delay.h:37,
from /home/arttu/programs/arduino/arduino-0022/hardware/arduino/cores/arduino/wiring_private.h:30,
from /home/arttu/programs/arduino/arduino-0022/hardware/arduino/cores/arduino/WInterrupts.c:34:
/usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected identifier or ‘(’ before ‘double’
/usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected ‘)’ before ‘>=’ token
I searched my system for a file called wiring.h . I have no idea what it is, but i opened it with a text editor, and took one line away inside the file by writing // before it. In the other words, i made the line into a comment, so the system skips it. It seems that there is some error on the syntax of that line.
in the file called
wiring.h
The line is:
#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
i changed the line to:
//#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
Now everything just works! Dont ask me why :)
Hope that the nerds who are responsible for maintaining this file, can fix the problem in the future…
Hey Jeremy,
great stuff so much so that I wish I had been an electrical engineering major. I’m 29 now, got excited about this. I seriously convinced my godmother to get me an arduino for christmas because of these tutorials. hope you don’t stop posting stuff after you graduate… but then life calls so won’t blame you either way.
Great tutorials you have made!!
I am curious on the RC servo code.
How can you get the servo to go with smaller steps than 1 degree steps?
Best regards and happy new year from Karl
Hi, Jeremy
I am completely new to the ARDUINO, and electronics indeed…
I have some ideas on how to work with it for some home projects.
My major concern, based on the sample projects I have seen in the internet, is that 100% of the times the items involved in the projects are packed very close together.
Is it possible to use sensors (temperature, angle/potentiometers, gas, distance, etc.) far from the ARDUINO board? how far? could you please make some comments/ideas to work in the range of 50m, with different sensor types? the signal loss, resistance of cables effects, etc..
Thank you
I wouldn’t recommend using traditional means if you want to put sensors to far away. Use twisted-pair cables like ethernet, and maybe consider using a differential protocol like RS-485. You could also consider placing the sensors remotely and transmitting data wirelessly with an XBee.
Thanks Jeremy.
I understand it may be difficult to cover different types of sensors in a single answer. I had already the idea of using CAT5 cables for cost and interference tolerance. I think it will be a matter of experimenting a little bit. One of my ideas it to use potentiometers (angle) to monitor water reservoirs levels as well as temperature sensors for the the same reservoirs (backyard and house roof). If you have any sample projects in which you used such sensors or even other with a long distance from Arduino, it would be nice to know more about it. Thanks again,
January 11, 2011 at 12:29 am
Just as the comments in the program indicate, the tutorial is AWESOME as well. Long-time user of microcontrollers, just found the Arduino and have way too many things i want to do with it. Thanks for taking the time to start on a great series of videos describing a great idea! Thanks Jeremy – Keep On ECE’ing!
January 11, 2011 at 2:24 am
So glad you like it! The arduino is a great platform – I have list of projects about a mile long… if only I had the time to do all of them!
February 12, 2012 at 4:09 am
I’m a newbie here i enjoy your tutorial hope i can learn a lot from you please give me some recommendation on how do i start
Pingback: Arduino Tutorial 02: Buttons, PWM, and Functions | Ayarafun
Pingback: Arduino Blog » Blog Archive » Must-See Beginner Tutorials For Arduino
Pingback: Must-See Beginner Tutorials For Arduino | dev.SquareCows.com
Pingback: Must-See Beginner Tutorials For Arduino | inmotion.pt
Pingback: The Arduino Has Landed : DIYfilm
Pingback: For those struggling with Arduino… | Interaction Design UmeÃ¥
Pingback: H4H Arduino Course Resources | House 4 Hack
Pingback: Arduino Introductory Course | t00bl1pp3
August 31, 2011 at 5:39 pm
hi,
good job man.
i’m new on arduino and i’m askink if this tutorials can work with arduino adk (with android)?
thanks.
October 28, 2011 at 10:20 am
Yes, although I haven’t made any videos that take advantage of the android platform yet.
October 29, 2011 at 8:48 am
I got something wrong here. I run my arduino program on ubuntu 11.10, and when i try to upload your tutorial’s program to arduino board, it says:
In file included from /usr/lib/gcc/avr/4.5.3/../../../avr/include/util/delay.h:44:0,
from /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/delay.h:37,
from /home/arttu/programs/arduino/arduino-0022/hardware/arduino/cores/arduino/wiring_private.h:30,
from /home/arttu/programs/arduino/arduino-0022/hardware/arduino/cores/arduino/WInterrupts.c:34:
/usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected identifier or ‘(’ before ‘double’
/usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected ‘)’ before ‘>=’ token
Help me??? :(
October 29, 2011 at 10:08 am
Ok i got it, there is something wrong with the ubuntu things or some files in the system. I’m not very good with linux but i found the answer in here:
http://groups.google.com/group/linux.debian.bugs.dist/browse_thread/thread/f44eb01346f9c22c
How did i fix it?
I searched my system for a file called wiring.h . I have no idea what it is, but i opened it with a text editor, and took one line away inside the file by writing // before it. In the other words, i made the line into a comment, so the system skips it. It seems that there is some error on the syntax of that line.
in the file called
wiring.h
The line is:
#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
i changed the line to:
//#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
Now everything just works! Dont ask me why :)
Hope that the nerds who are responsible for maintaining this file, can fix the problem in the future…
Pingback: Learn arduino - From noob to Ninja - video series
December 22, 2011 at 12:00 pm
Hey Jeremy,
great stuff so much so that I wish I had been an electrical engineering major. I’m 29 now, got excited about this. I seriously convinced my godmother to get me an arduino for christmas because of these tutorials. hope you don’t stop posting stuff after you graduate… but then life calls so won’t blame you either way.
December 27, 2011 at 2:47 pm
Great tutorials you have made!!
I am curious on the RC servo code.
How can you get the servo to go with smaller steps than 1 degree steps?
Best regards and happy new year from Karl
December 28, 2011 at 1:29 am
The resolution of a servo depends on the particular model. If you need high precision, I’d recommend you use a stepper motor.
January 3, 2012 at 10:30 am
Hi, Jeremy
I am completely new to the ARDUINO, and electronics indeed…
I have some ideas on how to work with it for some home projects.
My major concern, based on the sample projects I have seen in the internet, is that 100% of the times the items involved in the projects are packed very close together.
Is it possible to use sensors (temperature, angle/potentiometers, gas, distance, etc.) far from the ARDUINO board? how far? could you please make some comments/ideas to work in the range of 50m, with different sensor types? the signal loss, resistance of cables effects, etc..
Thank you
January 3, 2012 at 11:57 am
I wouldn’t recommend using traditional means if you want to put sensors to far away. Use twisted-pair cables like ethernet, and maybe consider using a differential protocol like RS-485. You could also consider placing the sensors remotely and transmitting data wirelessly with an XBee.
January 3, 2012 at 3:36 pm
Thanks Jeremy.
I understand it may be difficult to cover different types of sensors in a single answer. I had already the idea of using CAT5 cables for cost and interference tolerance. I think it will be a matter of experimenting a little bit. One of my ideas it to use potentiometers (angle) to monitor water reservoirs levels as well as temperature sensors for the the same reservoirs (backyard and house roof). If you have any sample projects in which you used such sensors or even other with a long distance from Arduino, it would be nice to know more about it. Thanks again,
January 3, 2012 at 7:06 pm
Whenever I’ve done sensors at a large distance, I’ve done it using XBee wireless.